본문 바로가기
Android/안드로이드 스터디(Kotlin)

Kotlin] 10. getter, setter

by 김마리님 2020. 12. 7.

자바와 다르게 코틀린은 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