ꡬ쑰체, ν΄λμ€, μ΄κ±°νμ λν μΈμ€ν΄μ€λ₯Ό μμ±ν λ μ μ₯ μμ±μ λν μ΄κΈ°κ°μ μ€μ ν΄μΌ νλ€.
Why?
μ΄κΈ°κ°μ΄ μ€μ λμ΄ μμ§ μμΌλ©΄ μ μ₯ μμ±μ μ μ₯νκΈ° μν κ³ μ μ λ°μ΄ν° μ μ₯ 곡κ°μ΄ μκΈ°λλ° μ΄λ μ΄λ ν κ°λ λ€μ΄ μμ§ μλ€λ©΄ μ€λ₯κ° λ°μνκΈ° λλ¬Έμ΄λ€.
(μ΄κ±°νμ κ²½μ° λ©λͺ¨λ¦¬ 곡κ°μ΄ νμν μ μ₯ μμ±μ μ μΈν μ μλ€.)
Q) κ·ΈλΌ κ³μ° μμ±μ μ΄κΈ°νλ₯Ό μν΄μ€λ λλκ°?
A) YES --> κ³μ° μμ±μ λ©μλλ‘ μ·¨κΈ
μ΄κΈ°ν λ©μλλ ν¨μμ΄λ€. init()
μ΄λΌλ λ©μλλ₯Ό μ¬μ©νλ€. λ©μλλ funcλ₯Ό μμ λΆνμ€μΌ νλκ±° μλκ° μΆμ§λ§ μ€μννΈμ μ½μμΌλ‘ init()
λ§ κ΅¬νν΄μ£Όλ©΄ λλ€.
-
ꡬ쑰체μ κ²½μ° -->
init()
+ λ©€λ²μμ΄μ¦ μ΄λμ λΌμ΄μ μ 곡 -
ν΄λμ€μμ λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°νκ° μ‘΄μ¬νλ κ²½μ°
// μ μ₯ μμ±μ μ΄κΈ°κ°μ΄ μλ κ²½μ° init()μ ꡬννμ§ μμλ λλ€. (μλ μμ±) class Aclass { let a = 3 let b = 4 //init() { } ---> μλ΅ } let a = Aclass() // class Aclass { let a : Int let b : Int var c : Int { return a + b } init(a: Int, b: Int) { self.a = a self.b = b } } let a = Aclass(a: 3, b: 4) print(a.c) // 7
init()
ννλ₯Ό κ°μ§λ μμ±μλ₯Ό μ§μ μμ±μλΌκ³ νλ€.
μ§μ μμ±μλ λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°νν΄μΌ νλ€. λͺ¨λ μμ±μλ μ€λ²λ‘λ©μ΄ κ°λ₯νλ€.
μ€λ²λ‘λ©μ΄λ?
λμΌν ν¨μλͺ μ κ°μ§κ³ νΈμμ λͺ©μ μ μν΄ νλΌλ―Έν°μ λ€μν ννλ‘ μμ±νλ κ²
λ¨, μ€λ²λ‘λ©μ κ²½μ°μλ λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°νν΄μΌ νλ€λ μμΉμ λ³νμ§ μλλ€.
μ§μ μμ±μλ³΄λ€ μ μ νλΌλ―Έν°λ₯Ό κ°μ§κ³ νΈλ¦¬νκ² μμ±νκΈ° μν μμ±μμ΄λ€.
νΈμλΌλ λ§μ΄ λΆμ κ²μ²λΌ μ΄κΈ°νλ₯Ό νΈλ¦¬νκ² νκΈ° μν¨μ΄ λͺ©μ μ΄λ€. λͺ¨λ μμ±μ μ΄κΈ°νν νμκ° μλ€.
μ§μ μ΄κΈ°ν λ©μλλ₯Ό μ€λ²λ‘λ©ν μ μμΌλ νΈμ μμ±μλ‘ λ§λλ κ²μ΄ κ°λ°μμ μ€μλ₯Ό μ€μΌ μ μλ λ°©λ²μ΄λ€.
λ€λ§, νΈμ μμ±μλ μ§μ μμ±μμκ² μμ‘΄νκΈ° λλ¬Έμ νΈμ μμ±μ λ΄λΆμλ
λ°λμ μκΈ° λ¨κ³μ μ§μ μμ±μλ₯Ό νΈμΆνλ μ½λκ° μ‘΄μ¬ν΄μΌ νλ€. μ΄λ μ§μ μμ±μλ₯Ό μ΄λ―Έ νΈμΆνλ λ€λ₯Έ νΈμ μμ±μλ₯Ό νΈμΆν΄λ κ°λ₯νλ€.
λ€λ₯Έ λͺ©μ μ μμμ ν κ²½μ°μ μλΈν΄λμ€μμ overrideλ₯Ό νμ§ λͺ»νλ λͺ©μ μ΄ μλ€.(μμΉ)
class Bird {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
convenience init() {
self.init(name: "μ", age: 1)
}
}
let aBird = Bird(name: "μ", age: 1)
let bBird = Bird()
// λμΌν κ²°κ³Όμ΄λ€.
μμ±μλ κΈ°λ³Έμ μΌλ‘ μμλμ§ μκ³ μ¬μ μκ° μμΉμ΄λ€.
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) wheel(s)"
}
}
let vehicle = Vehicle()
print("Vehicle: \(vehicle.description)")
// Vehicle: 0 wheel(s)
class Bicycle: Vehicle {
override init() {
super.init()
numberOfWheels = 2
}
}
class Hoverboard: Vehicle {
var color: String
init(color: String) {
self.color = color
// super.init() implicitly called here
}
override var description: String {
return "\(super.description) in a beautiful \(color)"
}
}
let hoverboard = Hoverboard(color: "silver")
print("Hoverboard: \(hoverboard.description)")
// Hoverboard: 0 wheel(s) in a beautiful silver
νΈμ μμ±μλ μ¬μ μκ° λΆκ°ν κ²μ΄ μμΉμ΄λ€.
μ°Έκ³
https://zeddios.tistory.com/141
https://docs.swift.org/swift-book/LanguageGuide/Initialization.html