ν΄λμ€λΌλ κ°λ μ λͺ©μ μ λ°μ΄ν°λ₯Ό μΊ‘μννκ³ μΊ‘μνν λ°μ΄ν°λ₯Ό λ€λ£¨λ μ½λλ₯Ό ν 주체 μλ κ°λλ κ²μ΄λ€.
μλ°μμλ λ°μ΄ν°λ₯Ό νλμ μ μ₯νλ©°, λ©€λ² νλμ κ°μμ±μ λ³΄ν΅ λΉκ³΅κ°λ€.
ν΄λμ€λ μμ μ μ¬μ©νλ ν΄λΌμ΄μΈνΈκ° κ·Έ λ°μ΄ν°μ μ κ·Όνλ ν΅λ‘λ‘ μΈ μ μλ μ κ·Όμ λ©μλλ₯Ό μ 곡νλ€.
보ν΅μ νλλ₯Ό μ½κΈ° μν κ²ν°(getter)λ₯Ό μ 곡νκ³ νλλ₯Ό λ³κ²½νκ² νμ©ν΄μΌ ν κ²½μ° μΈν°(setter)λ₯Ό μΆκ° μ 곡ν μ μλ€.
νλ‘νΌν° property
μλ°μμλ νλμ μ κ·Όμλ₯Ό νλ° λ¬Άμ΄ νλ‘νΌν°λΌκ³ λΆλ₯΄λ©°, νλ‘νΌν°λΌλ κ°λ μ νμ©νλ νλ μμν¬κ° λ§λ€.
μ½νλ¦°μ νλ‘νΌν°λ₯Ό μΈμ΄ κΈ°λ³Έ κΈ°λ₯μΌλ‘ μ 곡νλ©°, μ½νλ¦° νλ‘νΌν°λ μλ°μ νλμ μ κ·Όμ λ©μλλ₯Ό μμ ν λμ νλ€.
ν΄λμ€μμ νλ‘νΌν°λ₯Ό μ μΈν λλ λ³μλ₯Ό μ μΈνλ λ°©λ²κ³Ό λ§μ°¬κ°μ§λ‘ valμ΄λ varλ₯Όμ¬μ©νλ€.
valλ‘ μ μΈν νλ‘νΌν°λ μ½κΈ° μ μ©μ΄λ©°, varλ‘ μ μΈν νλ‘νΌν°λ λ³κ²½ κ°λ₯νλ€.
ν΄λμ€ μμμ λ³κ²½ κ°λ₯ν νλ‘νΌν° μ μΈνκΈ°
class Person(
// μ½κΈ° μ μ© νλ‘νΌν°.
// μ½νλ¦°μ (λΉκ³΅κ°) νλλ₯Ό μ½λ λ¨μν (곡κ°) κ²ν°λ₯Ό λ§λ€μ΄λΈλ€.
val name: String,
// μΈ μ μλ νλ‘νΌν°
// μ½νλ¦°μ (λΉκ³΅κ°) νλ, (곡κ°) κ²ν°, (곡κ°) μΈν°λ₯Ό λ§λ€μ΄λΈλ€.
var isMarried: Boolean
)
κΈ°λ³Έμ μΌλ‘ μ½νλ¦°μμ νλ‘νΌν°λ₯Ό μ μΈνλ λ°©μμ νλ‘νΌν°μ κ΄λ ¨μλ μ κ·Όμλ₯Ό μ μΈνλ κ²μ΄λ€.(μ½κΈ° μ μ© νλ‘νΌν°μ κ²½μ° κ²ν°λ§ μ μΈνλ©° λ³κ²½ν μ μλ νλ‘νΌν°μ κ²½μ° μΈν°μ κ²ν°λ₯Ό λͺ¨λ μ μΈνλ€.)
μ½νλ¦°μ κ°μ μ μ₯νκΈ° μν λΉκ³΅κ° νλμ κ·Έ νλμ κ°μ μ μ₯νκΈ° μν μΈν°, νλμ κ°μ μ½κΈ° μν κ²ν°λ‘ μ΄λ€μ§ κ°λ¨ν λν΄νΈ μ κ·Όμ ꡬνμ μ 곡νλ€.
val person = Person("Bob", true)
// νλ‘νΌν° μ΄λ¦μ μ§μ μ¬μ©ν΄λ μ½νλ¦°μ΄ μλμΌλ‘ κ²ν°λ₯Ό νΈμΆν΄μ€λ€.
println(person.name)
println(person.isMarried)
κ²ν°λ₯Ό νΈμΆνλ λμ νλ‘νΌν°λ₯Ό μ§μ μ¬μ©νμμ μ μν΄μΌ νλ€. μλ°μμ λ³΄λ€ μ½λκ° λ κ°κ²°ν΄μ‘λ€.
λ³κ²½ κ°λ₯ν νλ‘νΌν°μ μΈν°λ λ§μ°¬κ°μ§ λ°©μμΌλ‘ λμνλ€.
μλ°μμλ person.setMarried(false)λ‘ μ΄λ€ μ¬λμ΄ μ΄νΌνλ€λ μ¬μ€μ κΈ°λ‘νμ§λ§, μ½νλ¦°μμλ person.isMarried = falseλ₯Ό μ΄λ€.
λλΆλΆμ νλ‘νΌν°μλ κ·Έ νλ‘νΌν°μ κ°μ μ μ₯νκΈ° μν νλκ° μλ€. μ΄λ₯Ό νλ‘νΌν°λ₯Ό λ·λ°μΉ¨νλ νλλΌκ³ λΆλ₯Έλ€. νμ§λ§ μνλ€λ©΄ νλ‘νΌν° κ°μ κ·Έλ κ·Έλ κ³μ°(μλ₯Ό λ€μ΄ λ€λ₯Έ νλ‘νΌν°λ€λ‘λΆν° κ°μ κ³μ°ν μλ μλ€.)ν μλ μλ€.
ν
μλ°μμ μ μΈν ν΄λμ€μ λν΄ μ½νλ¦° λ¬Έλ²μ μ¬μ©ν΄λ λλ€.
μ½νλ¦°μμλ μλ° ν΄λμ€μ λ°μ΄ν°λ₯Ό val νλ‘νΌν°μ²λΌ μ¬μ©ν μ μκ³ , κ²ν°/μΈν° μμ΄ μλ κ²½μ°μλ var νλ‘νΌν°μ²λΌ μ¬μ©ν μ μλ€.
μλ₯Ό λ€μ΄ setNameκ³Ό getNameμ΄λΌλ μ κ·Όμλ₯Ό μ 곡νλ μλ° ν΄λμ€λ₯Ό μ½νλ¦°μμ μ¬μ©ν λλ nameμ΄λΌλ νλ‘νΌν°λ₯Ό μ¬μ©ν μ μλ€. μλ° ν΄λμ€κ° isMarriedμ setMarried λ©μλλ₯Ό μ 곡νλ€λ©΄ κ·Έμ μμνλ μ½νλ¦° νλ‘νΌν°μ μ΄λ¦μ isMarriedλ€.
컀μ€ν μ κ·Όμ
νλ‘νΌν°μ μ κ·Όμλ₯Ό μ§μ μμ±νλ λ°©λ²μ΄λ€.
μ§μ¬κ°ν ν΄λμ€μΈ Rectangleμ μ μνλ©΄μ μμ μ΄ μ μ¬κ°νμΈμ§ μλ €μ£Όλ κΈ°λ₯μ λ§λ€μ΄λ³΄μ.
μ§μ¬κ°νμ΄ μ μ¬κ°νμΈμ§λ₯Όλ³λμ νλμ μ μ₯ν νμκ° μλ€. μ¬κ°νμ λλΉμ λμ΄κ° κ°μμ§ κ²μ¬νλ©΄ μ μ¬κ°ν μ¬λΆλ₯Ό μ μ μλ€.
class Rectangle(val height: Int, val width:Int){
val isSquare: Boolean
get() { // νλ‘νΌν° κ²ν° μ μΈ
return height == width
}
}
isSquare νλ‘νΌν°μλ μ체 κ°μ μ μ₯νλ νλκ°νμ μλ€. μ΄ νλ‘νΌν°μλ μ체 ꡬνμ μ 곡νλ κ²ν°λ§ μ‘΄μ¬νλ€. ν΄λΌμ΄μΈνΈκ° νλ‘νΌν°μ μ κ·Όν λλ§λ€ κ²ν°κ° νλ‘νΌν° κ°μ λ§€λ² λ€μ κ³μ°νλ€.
λΈλ‘μ λ³Έλ¬ΈμΌλ‘νλ 볡μ‘ν ꡬ문μ κΌ μ¬μ©νμ§ μμλ λλ€. μμ κ°μ κ²½μ° get() = height == width λΌκ³ ν΄λ λλ€. 컀μ€ν κ²ν°λ₯Ό μ¬μ©νλ νλ‘νΌν°λ μμμ μ΄ν΄λ³Έ νλ‘νΌν°μ λ§μ°¬κ°μ§λ°©μμΌλ‘ μ¬μ©ν μ μλ€.
'π Development > Kotlin' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ½νλ¦° Kotlin μ΄λ? (1) | 2023.05.17 |
---|