코틀린에서의 클래스 멤버변수
- 코틀린에서는 클래스의 멤버변수를 프로퍼티라고 부른다.
- 접근자인 getter와 setter가 내장되어있다.
코틀린에서 프로퍼티의 getter와 setter는 기본적으로 제공하기 때문에 따로 선언할 필요가 없다.
그런데 프로퍼티에 값을 할당할 때 따로 규칙을 적용하고 싶거나
외부에서 프로퍼티에 접근할 때 수행하고 싶은 기능이 있다면
getter와 setter를 생략하지 않고 선언해주면 된다.
var는 getter(get())와 setter(set()) 모두를 선언해줄 수 있지만
val는 getter만 선언해줄 수 있다.
getter와 setter는 프로퍼티 선언 자리 바로 밑에다가 선언해준다.
field
field는 프로퍼티에 저장된 값 자체를 지칭하는 예약어이다.
getter와 setter 내에서만 사용 가능하다.
var currentChannelNumber: Int = 0
set(value) { // currentChannelNumber함수에 value를 할당할 때 호출되는 함수
field = value
if(field > 2){
field = 0
}
if(field < 0){
field = 2
}
}
get() { // currentChannel이 밖에서 사용될 때 호출되는 함수
println("호출되었습니다.")
return field
}