클래스, 구조체, 열거형(enum) 인스턴스가 생성되는 시점에서 해야 할 초기화 작업
인스턴스가 만들어지면서 자동 호출됨
init 메서드(생성자)
init() {
}
designated initializer
- 모든 프로퍼티(age, weight)를 다 초기화시키는 생성자
init()을 하나라도 직접 만들면 기본적으로 만들어지는 눈에 안보이는 default initializer는 사라짐
소멸자
-인스턴스가 사라질 때 자동 호출
-deinit{}
class Man{
var age : Int //init()이 있기 때문에 초기값 생략 가능
var weight : Double //init이 호출 되면서 값이 초기화됨
func display() { //인스턴스 메소드, 앞에 아무것도 붙지 않음
print("나이=\(age), 몸무게=\(weight)")
}
init(yourAge: Int, yourWeight : Double){
age = yourAge
weight = yourWeight
} //designated initializer
}
//var lee : Man = Man() //오류
//init()을 하나라도 직접 만들면 default initializer는 사라짐
var lee : Man = Man(yourAge:23, yourWeight:95)
lee.display() //나이-23, 몸무게=95.0
init() 안에 변수명을 같게 할 경우 self를 사용
현재 클래스 내 메서드나 프로퍼티를 가리킬 때 메서드나 프로퍼티 앞에 self.을 붙임
'Swift' 카테고리의 다른 글
Swift 정리 : computed property의 setter (1) | 2022.11.01 |
---|---|
Swift 정리 : stored property(저장 프로퍼티)와 computed property(계산 프로퍼티) (0) | 2022.11.01 |
Swift 정리 : 클래스 메소드 (0) | 2022.10.18 |
Swift 정리 : 프로퍼티(Property) (0) | 2022.10.18 |
Swift 정리 : 클래스 (0) | 2022.10.18 |