class Man{
var age : Int
var weight : Double
}
-> 오류 : 초기 값이 있어야함
프로퍼티는 초기값이 있거나 옵셔널 변수(상수)로 선언
class Man{
var age : Int = 20 //stored property는 초기값이 있어야 함
var weight : Double = 43.5
}
class Man{
var age : Int? //stored property는 초기값이 있어야 함, nil
var weight : Double!
}
메서드 정의
인스턴스 메서드, 클래스 또는 타입 메서드
인스턴스 메서드는 인스턴스에서 동작
class Man{
var age : Int = 20
var weight : Double = 43.5
func display(){ //인스턴스 메서드
print("나이=(age), 몸무게=(weight)")
}
}
class Man{
var age : Int = 20
var weight : Double = 43.5
func display(){
print("나이= (age), 몸무게= (weight)")
}
}
var kim : Man = Man()
kim.display() //인스턴스 메서드는 인스턴스가 호출
print(kim.age)
출력 :
나이= 20, 몸무게= 43.5
20
class Man{
var age : Int = 20
var weight : Double = 43.5
func display(){
print("나이= (age), 몸무게= (weight)")
}
class func cM(){
print("cM은 클래스 메서드입니다.")
}
static func scM(){
print("scM은 클래스 메서드(static)")
}
}
var kim : Man = Man()
kim.display() //인스턴스 메서드는 인스턴스가 호출
Man.cM() //클래스 메서드는 클래스가 호출
Man.scM() //클래스 메서드는 클래스가 호출
출력 :
나이= 20, 몸무게= 43.5
cM은 클래스 메서드입니다.
scM은 클래스 메서드(static)
class Man{
var age : Int
var weight : Double // designated initializer 때문에 초기값 안 줘도 됨 (생략 가능)
func display(){
print("나이= (age), 몸무게= (weight)")
}
init(yourAge: Int, yourWeight : Double){
age = yourAge
weight = yourWeight
} //designated initializer
}
//var kim : Man = Man() //오류
//init()을 하나라도 직접 만들면 default initializer는 사라짐
var kim : Man = Man(yourAge:20, yourWeight:40.5)
kim.display()
출력 : 나이= 20, 몸무게= 40.5
class Man{
var age : Int
var weight : Double
func display(){
print("나이= (age), 몸무게= (weight)")
}
init(age: Int, weight : Double){
self.age = age //프로퍼티 = 매개변수
self.weight = weight
}
}
var kim : Man = Man(age:20, weight:40.5)
kim.display()
출력 : 나이= 20, 몸무게= 40.5
< 인덕대학교 'iOS 프로그래밍 기초' 한성현 교수님 강의 자료 참고 >