Junior
Kotlinдеги мүнөздөмөлөр жана ошондой эле get жана set ыкмалары жөнүндө эмне айта аласыз?
sobes.tech AI
AIден жооп
Котлинде мүлктөр талаа жана ага тиешелүү геттер жана сеттердин айкалышын билдирет.
Мүлктүн аныктамасы:
class MyClass {
var mutableProperty: String = "default"
val immutableProperty: Int = 10
}
Бул жерде mutableProperty — өзгөрүлмө мүлк, анын геттер жана сеттери автоматтык түрдө берилет. immutableProperty — өзгөртүлгүс мүлк, гана геттер менен.
Ачык аныктоо геттер жана сеттер:
class MyClass {
var customProperty: String = ""
get() = field.toUpperCase() // Колдонуучу геттер
set(value) {
field = value.toLowerCase() // Колдонуучу сеттер
}
val computedProperty: Int
get() = (1..10).random() // Эсептелүүчү мүлк, талаа жок
}
field— геттер жана сеттер ичинде мүлктүн шилтемеси. Ал өзгөрмө мүлк үчүн гана колдонулат (var).- Геттерлер жана сеттерлер кошумча логика иштетип, мүлкке кирүү же өзгөртүүдө колдонулушу мүмкүн.
- Эсептелүүчү мүлктөр (
computedProperty) өзүнүн талаасы жок жана ар дайым маанини эсептейт.
Негизги учурлар:
- Kotlinде ар бир талаа үчүн геттер жана сеттер түзүү зарыл эмес, Java сыяктуу. Алар автоматтык түрдө түзүлөт.
- Мүлктөр нотация аркылуу жеткиликтүү (
instance.propertyName). - Ачык аныктоо геттер жана сеттер логика кошууга мүмкүндүк берет.
valмүлк үчүн геттер ар дайым ошол эле түрдө маанини кайтарат.varмүлк үчүн сеттер ошол эле түрдөгү параметрди кабыл алат.
Кыскача салыштыруу:
| Kotlin мүлк | Java талаа + методдор | Түшүндүрмө |
|---|---|---|
var myProperty: Type |
private Type myProperty; + public Type getMyProperty() + public void setMyProperty(Type value) |
Өзгөрүлмө мүлк, автоматтык геттер жана сеттер менен. |
val myProperty: Type |
private Type myProperty; + public Type getMyProperty() |
Өзгөртүлбөс мүлк, гана геттер менен. |
| Колдонуучу геттер/сеттер | Кол менен жазылган логика | Колдонуучу логика кошуу мүмкүнчүлүгү. |
| Эсептелүүчү мүлк | Метод, маанини кайтарат | Мүлктүн мааниси ар дайым эсептелет. |