swift
swift - Initializer and Deinitializer #1 (Initializer)
행복하게사는게꿈
2021. 1. 12. 15:13
Initializer
열거형, 구조체, 클래스는 모두 설계도
설계도를 기반으로 생성한것이 Instance
새로운 instance를 생성하는 것이 초기화 (Initialization) -> 모든 속성이 기본값을 가지고 있다.
Initialization
// 초기화 방식
class Position {
// 1. 선언과 동시에 기본값 저장
// 2. initializaion에서 초기화
var x = 0.0
var y: Double
var z: Double? // Optional 속성은 기본값을 저장하지 않으면 자동으로 nil로 초기화 되기 때문에 init필요 없음
init() {
y = 0.0
}
}
class Position2 {
// 이렇게 기본값을 다 넣어주고 init을 선언하지 않으면 자동으로 기본 default initization이 암묵적으로 생성된다.
var x = 0.0
var y = 0.0
var z: Double? = nil
}
let p = Position2()
class SizeObj {
var width = 0.0
var height = 0.0
init(width: Double, height: Double) {
self.width = width
self.height = height
}
convenience init(value: Double) {
// width = value
// height = value
// init delegate
self.init(width: value, height: value)
}
}
Memberwise Initializer
// 구조체는 memberwise initializer 지원
struct SizeValue {
var width = 0.0
var height = 0.0
}
let s = SizeValue()
// init을 직접구현 하지 않으면 밑에 init을 자동으로 제공한다.
SizeValue(width: 1.2, height: 3.4)