코틀린에서는 기본적으로 프로퍼티를 사용하여 필드를 정의하고, 이 프로퍼티에 대한 getter와 setter를 자동으로 생성합니다.
따라서, 별도로 getter를 정의하지 않고도 프로퍼티를 호출하여 값을 가져올 수 있습니다.
예를 들어, 다음과 같이 프로퍼티를 정의할 수 있습니다.
class Person(val name: String, var age: Int)
위의 Person 클래스에서 name은 읽기 전용 프로퍼티(기본적으로 getter만 생성됨)이고, age는 읽기/쓰기 가능한 프로퍼티(기본적으로 getter와 setter가 생성됨)입니다.
이 프로퍼티들은 다음과 같이 사용할 수 있습니다
val person = Person("Alice", 30)
println(person.name) // getter 호출, 출력: Alice
println(person.age) // getter 호출, 출력: 30
person.age = 31 // setter 호출
println(person.age) // 출력: 31
따라서 코틀린에서는 프로퍼티를 통해 필드에 접근할 수 있으며, getter와 setter를 명시적으로 정의하지 않아도 기본적으로 제공됩니다.
필요에 따라 커스텀 getter와 setter를 정의할 수도 있습니다.
class Person(var age: Int) {
var isAdult: Boolean
get() = age >= 18
set(value) {
age = if (value) 18 else 0
}
}
isAdult 프로퍼티는 커스텀 getter와 setter를 가지고 있습니다.