init메서드를 사용하여 인스턴스를 초기화 하는 방법을 알아보겠습니다.
class의 용어정리 - https://chozjjae.tistory.com/43
class의 property와 method정리 - https://chozjjae.tistory.com/44
class의 instance 생성 후 프로퍼티와 메서드 접근 - https://chozjjae.tistory.com/45
init 이란 ?
인스턴스를 초기화 하는 두번째 방법으로 인스턴스가 생성되는 시점에서 해야할 초기화 작업입니다.
init 메서드 = 생성자
init ( ) = { }
class hap{
var x : Int = 10
var y : Int = 20
init(sqx : Int, sqy: Int){
x = sqx
y = sqy
} //designated initializer
func math(){
print("값1 = \(x), 값2 = \(y)")
}
}
var cho : hap = hap(sqx:50,sqy:60)
cho.math() // 값1 = 50, 값2 = 60
init 메서드에 새로운 이름과 자료형으로 생성 후
인스턴스에서 불러올때 넣어줄 값을 [var cho : hap = hap(sqx:50,sqy:60)] 넣어준다면 초기값이 아닌 초기화 된 값을 불러오게 됩니다.
*위와같이 init 메서드를 사용해준다면 초기값을 작성해 주지 않아도 오류가 발생하지 않습니다.
designated initializer - 모든 프로퍼티 (x, y)를 다 초기화 시키는 생성자를 의미합니다.
소멸자 - 인스턴스가 사라질 때 자동으로 호출됩니다. // deinit{ }
init 메서드 속 self 사용
self는 init 메서드 안에서 프로퍼티와 같은 이름을 사용해줄때 구분하기 위해 사용합니다.
class hap{
var x : Int = 10
var y : Int = 20
init(x : Int, y: Int){
self.x = x
self.y = y
}
func math(){
print("값1 = \(x), 값2 = \(y)")
}
}
var cho : hap = hap(x:50,y:60)
cho.math() // 값1 = 50, 값2 = 60
*self의 내용과 init의 내용을 구별하기 쉽게 색상을 입혀보겠습니다.
class hap{
var x : Int = 10
var y : Int = 20
init(x : Int, y: Int){
self.x = x
self.y = y
}
func math(){
print("값1 = \(x), 값2 = \(y)")
}
}
var cho : hap = hap(x:50,y:60)
cho.math() // 값1 = 50, 값2 = 60
참고영상 :
https://www.youtube.com/watch?v=4MPMtkxwS24&list=PLJqaIeuL7nuEEROQDRcy4XxC9gU6SYYXb&index=25
https://www.youtube.com/watch?v=MGiQK77PT30&list=PLJqaIeuL7nuEEROQDRcy4XxC9gU6SYYXb&index=26
'iOS_Swift > 문법 정리' 카테고리의 다른 글
Swift - 클래스 생성자 중첩(method overloading) (0) | 2022.02.07 |
---|---|
Swift - 클래스 calculated property (0) | 2022.02.07 |
Swift - 클래스 instance생성 후 프로퍼티와 메서드 접근 (0) | 2022.02.06 |
Swift - 클래스 property와 method (0) | 2022.02.06 |
Swift - 클래스(class) 속 용어정리 (0) | 2022.02.06 |