English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 예제를 통해 Kotlin에서 getter와 setter를 사용하는 방법을 배우게 됩니다.
getter와 setter를 배우기 전에, Kotlin 클래스와 객체에 대해 잘 알고 계셔야 합니다.Kotlin 클래스와 객체.
프로그래밍에서 getter는 속성의 값을 가져오기 위해 사용됩니다. 마찬가지로 setter는 속성의 값을 설정하기 위해 사용됩니다.
Kotlin에서 getter와 setter는 선택적입니다. 프로그램에서 getter와 setter를 생성하지 않으면 자동으로 생성됩니다.
Kotlin의 다음 코드
class Person { var name: String = "defaultValue" }
равносильно
class Person { var name: String = "defaultValue" // getter get() = field // setter set(value) { field = value } }
Person 클래스의 객체를 인스턴스화하고 name 속성을 초기화할 때, setter 매개변수 값이 전달되어 field가 value로 설정됩니다.
val p = Person() p.name = "jack"
이제, 객체의 name 속성에 접근할 때, 코드 get()=field로 인해 field를 얻게 됩니다.
println("${p.name}")
이것은 작동 예제입니다:
fun main(args: Array<String>) { val p = Person() p.name = "jack" println("${p.name}") } class Person { var name: String = "defaultValue" get() = field set(value) { field = value } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
jack
기본적으로, 이것이 getter와 setter의 작동 방식입니다. 하지만, getter와 setter를 사용하여 속성 값을 변경할 수 있습니다(값 변경).
fun main(args: Array<String>) { val maria = Girl() maria.actualAge = 15 maria.age = 15 println("마리아: 실제 연령 = ${maria.actualAge}") println("마리아: 가상 연령 = ${maria.age}") val angela = Girl() angela.actualAge = 35 angela.age = 35 println("안고로: 실제 연령 = ${angela.actualAge}") println("안고로: 가상 연령 = ${angela.age}") } class Girl { var age: Int = 0 get() = field set(value) { field = if (value < 18) 18 else if (value >= 18 && value <= 30) value else value-3 } var actualAge: Int = 0 }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
마리아: 실제 연령 = 15 마리아: 가상 연령 = 18 안고로: 실제 연령 = 35 안고로: 가상 연령 = 32
여기서 ActialAge 속성은 예상대로 작동합니다.
그러나, 설정 프로그램의 setter는 age 속성 값을 변경할 수 있는 다른 로직도 있습니다.