자바와 다르게 코틀린은 getter, setter을 선언해줄 필요가 없다. 그러나, 선언하고 임의로 값을 변경할 수도 있다.
fun main(args: Array<String>): Unit {
val person = Person()
person.age = -30
println(person.age)
}
class Person{
var age : Int = 0
get() {
return field
}
set(value) {
field = if(value >= 0) value else 0
}
}
기존이라면,
class Person{
var age : Int = 0
get() {
return field
}
set(value) {
field = value
}
}
가 생략된 값이 있는 것이다. 여기서 field는 프로퍼티 값이 저장된 특수한 필드이다.
set을 설정하면 받아온 값을 내부함수 처리해서 넣을 수 있다.
본 함수에서는 값을 구분해서 음수면 0 처리한다.
결과 :
0
Process finished with exit code 0
물론 한 줄로도 정의 가능하다.
get() = age * 2
반응형
'Android > 안드로이드 스터디(Kotlin)' 카테고리의 다른 글
Kotlin] 12. 번호 붙은 접은 연산자 (0) | 2020.12.07 |
---|---|
Kotlin] 11. 연산자 오버로딩 (0) | 2020.12.07 |
Kotlin] 9. 생성자 (0) | 2020.12.07 |
Kotlin] 8. 객체 (0) | 2020.12.04 |
Kotlin] 7. 가변인수 (0) | 2020.12.04 |