swift λ¬Έλ²π€ (36) μΈλ€μΌν 리μ€νΈν [SWIFT] μμ±μ 1οΈβ£κ΅¬μ‘°μ²΄ μμ±μ - μ¬λ¬κ°μ μ§μ μμ±μλ₯Ό ꡬν - μ€λ²λ‘λ© μ§μ 2οΈβ£ν΄λμ€ μμ±μ πμ§μ μμ±μ(designated) (class, struct, enum) - init(..)νν - λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°ν ν΄μΌν¨ (μ΅μ λ κ°λ₯) - λ°λμ μ¬μ μν΄μΌν¨ πνΈμμμ±μ(convenience) (only class) - λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°ν ν νμκ° μμ - κ°λ°μκ° νΈλ¦¬νκ² κ°μ²΄λ₯Ό λ§λ€μ΄ λΌ μ μλλ‘ ν΄μ£Όλ μ₯μΉ - μ μ₯μμ±μ κΈ°λ³Έκ°μ μ€μ ν μ μλ€ (λͺ¨λ μ μ₯ μμ±μ μ€μ νμ§ μμλ λλ€) - μμμ΄ λμ§ μλλ€ νΈμ μμ±μλ‘ λ§λλ κ²μ΄ 볡μ‘λλ μ€μλ₯Ό μ€μΌ μ μλ€ κ°λ₯ν μ§μ μμ±μμ κ°―μλ₯Ό μ€μ΄κ³ , νΈμμμ±μμμ μ§μ μμ±μλ₯Ό νΈμΆνλλ‘ νλ κ²μ΄ μ’λ€ μμ±μμ μμ - μμ±μλ λͺ¨λ .. [SWIFT] μ΄κΈ°ν μ΄κΈ°ν ? βμΈμ€ν΄μ€λ₯Ό μμ±νλ κ³Όμ βμ μ₯μμ±μ λν μ΄κΈ°κ°μ μ€μ ν΄μ μΈμ€ν΄μ€λ₯Ό μ¬μ©κ°λ₯ν μνλ‘ λ§λλ κ² λ°©λ² ? βμ μ₯μμ±μ μ μΈκ³Ό λμμ κ°μ μ μ₯ βμ μ₯μμ±μ μ΅μ λλ‘ μ μΈ (varλ‘ μ μΈν΄μΌν¨) βμμ±μμμ κ°μ μ΄κΈ°ν μ»΄νμΌλ¬λ κΈ°λ³Έ μμ±μλ₯Ό μλμΌλ‘ μμ±ν¨ ꡬ쑰체λ μ μ₯μμ±μ΄ κΈ°λ³Έκ°μ΄ μλλΌλ μΆκ°μ μΌλ‘ Memberwise μ΄λμ λΌμ΄μ λ₯Ό μλμΌλ‘ μ κ³΅ν¨ βλ©€λ²μμ΄μ¦ μ΄λμ λΌμ΄μ β - λ©€λ²μ κ΄λ ¨λ μμ±μ - λͺ¨λ μ μ₯ μμ± κ°λ₯ν μμ±μ [SWIFT] ν΄λμ€μ μμ μμ? λΆλͺ¨ν΄λμ€μ λ©€λ²(μμ±, λ©μλ)λ₯Ό μ¬μ©ν μ μκ² λ§λλ λ¬Έλ² μ¬μ μ (overrriding) ? λΆλͺ¨ν΄λμ€μ μλ μμ± λ° λ©μλλ₯Ό μ¬μ μ νλ €λ©΄ overriding ν€μλ μ¬μ©ν΄μΌ ν¨ μ μ₯μμ± βμμΉμ μΌλ‘ λΆκ°λ₯ ( κ³ μ μ λ©λͺ¨λ¦¬ 곡κ°μ΄ μκΈ° λλ¬Έ) β λ©μλ ννλ‘ μΆκ°λ λ°©μμ μ¬μ μλ κ°λ₯ - κΈ°λ₯ μΆμλ λΆκ°λ₯ (μ½κΈ°/ μ°κΈ°μμ -> μ½κΈ° λΆκ°λ₯) β μμ±κ°μμλ₯Ό μΆκ° κ°λ₯ κ³μ°μμ± βμ€μ§μ λ©μλμ βλ©μλ ννλ‘μ μ¬μ μ κ°λ₯ - κΈ°λ₯ μΆμλ λΆκ°λ₯ μμ±μ β μμλμ§ μκ³ μ¬μ μνλ κ²μ΄ μμΉ (μμ±μλ λͺ¨λ μ μ₯μμ±μ μ΄κΈ°ννκΈ° λλ¬Έμ μλΈν΄λμ€μ λν μ΅μ νκ° μλ¨) λ©λͺ¨λ¦¬ ꡬ쑰 ) μ μ₯μμ± πμλΈν΄λμ€μ μ μ₯μμ±μ μμ μ μ₯μμ±μ μ°Έμ‘°νκ³ μκΈ°λλ¬Έμ μ¬μ μλ λΆκ°λ₯νκ³ λ°μ΄.. [SWIFT] μ μ₯μμ± , κ³μ° μμ± , νμ μμ± , μμ±κ°μμ import UIKit import Foundation struct Human { // 1. μ μ₯μμ± // μλ μ½λμμλ κΈ°λ³Έκ°μ΄ μ€μ μλμ΄μμ var name : String var height : Double var weight : Double // 1.1 μ§μ°μ μ₯μμ± // μμ° μ μ₯ μμ±μΌλ‘ μ μΈλλ μμ±μ΄ λ€λ₯Έ μ μ₯ μμ±μ μ΄μ©ν΄μΌ ν λΌ // μ΄κΈ°ν μμ μ΄ λ λ¦μΌλ―λ‘, λ¨Όμ μ΄κΈ°νλλ μ μ₯ μμ±μ μ¬μ© κ°λ₯ lazy var bmi = weight * pow(height, 2) / 10000 // 2. κ³μ° μμ± // μμ±μ ννλ₯Ό κ°μ§ λ©μλ (μΌλ°μ μΌλ‘ λ€λ₯Έ μ μ₯ μμ±μ μμ‘΄ν κ²°κ³Όλ‘ λμ€κΈ° λλ¬Έ) var bmi2 : Double { // νλ‘κ·Έλλ¨Έ μ μ₯μμ κ°μ λ°λ κ² get{ retu.. μ΄μ 1 2 3 4 5 λ€μ