초기화: 클래스 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비과정(생성자 정의)
/*
init(매개변수: 타입,...) {
//프로퍼티 초기화
// 인스턴스 생성시 필요한 설정을 해주는 코드 작성
*/
//클래스 선언
class User {
var nickname: String
var age: Int
//생성자 a
init(nickname: String, age: Int){
self.nickname = nickname
self.age = age
}
//생성자 b
init(age: Int){
self.nickname = "sue"
self.age = age
}
//소멸자
deinit{
print("deinit user")
}
}
//생성자 a 사용
var user = User(nickname: "harry", age: 23)
user.nickname // "harry"
user.age // 23
//생성자 b 사용
var user2 = User(age: 25)
user2.nickname // "sue"
user2.age // 25
//소멸자 사용
var user3: User? = User(age: 23)
user3 = nil //값이 없으면 인스턴스가 필요없다고 판단해 deinit호출
------------------------------
deinit user
End