not bad 한 개발

Swift - 인스턴스 초기화하기 본문

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

'Swift' 카테고리의 다른 글

Swift - property(프로퍼티)  (0) 2021.10.23
Swift - self  (0) 2021.10.23
Swift - class(클래스)  (0) 2021.10.23
Swift - closure(클로저)  (0) 2021.10.09
Swift - first class object(1급 객체)  (0) 2021.10.09
Comments