생성자(Initializer)

w0308h 1월 30일 AM 10:13 2 0
w0308h Profile Image Level 9
2 #TIL

  • init()

    • 인스턴스 초기화 목적
    • 인스턴스가 만들어지면서 자동 호출됨
      • init을 직접 만들면 default initializer 사용 불가
    • 함수임. func 없는 함수.
    • 예시
    class Human {
    	var age: Int = 10
    	var weight: Double = 35.8 //init이 있으면 초기값 필요 X
    
    	func display() {
    		print("나이: \(age), 몸무게: \(weight)")
    	}
    
    	init(yourAge: Int, yourWeight: Double) {
    		age = yourAge
    		weight = yourWeight
    	}
    }
    
    var kim: Human = Human() //오류
    //이유: init을 만들면 default initializer 사용 불가
    
    var lee: Human = Human(yourAge: 40, yourWieght: 49.2)
    lee.display()
    
  • designated initializer
    • 모든 프로퍼티(예시에서 age, weight)를 초기화시키는 생성자
댓글