Swift
Swift - 인스턴스 초기화하기
leebean
2021. 10. 23. 13:53
(인덕대학교 컴퓨터소프트웨어학과 iOS 프로그래밍 기초(21-2학기) 한성현 교수님 강의 내용을 변형 및 요약했습니다.)
init() 인스턴스 초기화
- 클래스, 구조체, 열거형(enum) 인스턴스가 생성되는 시점에서 해야 할 초기화 작업입니다.
- init()은 인스턴스가 만들어지면서 자동으로 호출됩니다.
- init 메서드 생성하는 방법
-
init(){ //프로퍼티를 넣어줍니다. }
-
- designated initializer라고 하여 모든 프로퍼티를 초기화시키는 생성자입니다, designated initializer 는 기본적으로 코드상에는 안 보이지만 init()를 하나라도 만들면 designated initializer 는 사라집니다.
(init() 예제 코드 1)
class woMan {
var age1 :Int = 30
var weight2 :Double = 60.0
func disPlay (){
print ("나이:\(age1), 무게:\(weight2)")
}
init (myAge :Int , myWeight :Double ){
age1 = myAge
weight2 = myWeight
}//designated initailizer
}
//var Lee : woMan = woMan()
//init()호출 : 오류
//init()을 하나라도 만들면 안보이는 default initializer은 사라집니다.
var Lee : woMan = woMan (myAge :30 , myWeight :60.5 )
Lee.disPlay () //나이:30, 무게:60.5
(init() 예제 코드 2 : init() 예제 코드 1에서 초기값 30, 60.0은 생략할 수 있는가?)
class woMan{
var age1 :Int
var weight2 :Double
func disPlay(){
print("나이:\(age1), 무게:\(weight2)")
}
init(myAge :Int, myWeight :Double){
age1 = myAge
weight2 = myWeight
}//designated initailizer
}
//var Lee : woMan = woMan()
//init()을 하나라도 만들면 안보이는 default initializer은 사라집니다.
var Lee : woMan = woMan(myAge:30, myWeight:60.5)
Lee.disPlay()
//있어도 상관이 없고 없어도 initializer가 있으면 값을 무조건 넣어야
//돌아가기 때문에 생략해도 문제는 없습니다.
//결과
//나이:30, 무게:60.5