09 Nov 2017
|
static
Swift
νμ
λ©μλ
νμ
λ©μλλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ μ¬μ©ν μ μλ λ©μλλ₯Ό λ§νλ€. (μλ°λ‘ μΉλ©΄ staticλ©μλ)
structμ νμ
λ©μλλ static ν€μλλ₯Ό λΆμΈλ€.
struct Square {
static func numberOfSides() -> Int{
return 4
}
}
classμ νμ
λ©μλμλ class ν€μλλ₯Ό λΆμΈλ€.
class Zombie: Monster {
class func makeNoise() -> String {
return "Brains..."
}
}
νμ
λ©μλλ₯Ό μ¬μ©νκΈ° μν΄μλ νμ
μ체μ λ€μμ²λΌ νΈμΆνλ©΄ λλ€.
let sides = Square.numberOfSides()
let noise = Zombie.makeNoise()
μλΈν΄λμ€μμμ μ€λ²λΌμ΄λ
μλΈν΄λμ€λ ν΄λμ€λ©μλλ₯Ό μ체μ μΌλ‘ ꡬν (μ€λ²λΌμ΄λ)ν μ μλ€.
class GiantZombie: Zombie {
override class func makeNoise() -> String {
return "rrrr...!!"
}
}
μ¬κΈ°μ GiantZombieλ Zombieμ μλΈν΄λμ€μ΄λ©°, classλ©μλμ μ€λ²λΌμ΄λλ₯Ό μ 곡νκ³ μλ€. (makeNoise()) λ§μ½ classλ©μλκ° μ€λ²λΌμ΄λλμ§ μλλ‘ νκ³ μ’λΉκ° λͺ¨λ κ°μ μ리λ₯Ό λΈλ€κ³ νλ©΄ μ΄λ»κ² μ²λ¦¬ν΄μΌν κΉ?
//Zombie ν΄λμ€μ ν΄λΉ λ©μλλ₯Ό staticν€μλ μ²λ¦¬ν΄μ£Όλ©΄ λλ€.
class Zombie: Monster {
static func makeSpookyNoise() -> String {
return "Brains..."
}
}
static ν€μλλ₯Ό μ§μ νλ©΄ makeSpookyNoise() λ©μλμ μλΈν΄λμ€ λ²μ μ μ 곡νμ§ μκ² λ€λ λ»μ΄ λλ€! static λμ final classλ₯Ό μ¬μ©ν΄λλλ€.
νμ
λ©μλμ μμ€ (μμΌ?)
νμ
λ©μλλ νμ
μμ€μ κ°μ μ²λ¦¬ν μ μλ€. λ€λ₯Έ νμ
λ©μλλ₯Ό νΈμΆ ν μ μμΌλ©°, νμ
νλ‘νΌν°λ μ²λ¦¬ν μ μλ€. νμ§λ§ νμ
λ©μλλ μΈμ€ν΄μ€μ κ°μ μ²λ¦¬ν μλ μλ€. νμ
λ©μλλ μΈμ€ν΄μ€λ©μλλ₯Ό νΈμΆ ν μ μμΌλ©°, μΈμ€ν΄μ€ νλ‘νΌν°λ μ²λ¦¬ν μ μλ€. (μΈμ€ν΄μ€κ° νμ
λ³΄λ€ λ narrowνκ³ strictνκΈ°λλ¬Έμ νμ
μμ€μμ μ²λ¦¬ ν μ μμ - νμ
μμ€μ μΈμ€ν΄μ€κ° μμ΄λ μ κ·Όμ΄ κ°λ₯νλ° μΈμ€ν΄μ€λ μΈμ€ν΄μ€κ° λ°λμ νμνκΈ° λλ¬Έ.)