Junior
Kotlin'da xususiyatlar va shuningdek get va set metodlari haqida nima deyish mumkin?
sobes.tech AI
AIdan javob
Kotlin'da xususiyatlar maydon va unga mos keladigan getter va setterlarning kombinatsiyasidir.
Xususiyatni ta'rifi:
class MyClass {
var mutableProperty: String = "default"
val immutableProperty: Int = 10
}
Bu yerda, mutableProperty o'zgaruvchan xususiyat bo'lib, standart getter va setter bilan. immutableProperty esa faqat standart getter bilan o'zgarmas xususiyat.
Getter va setterlarni aniq belgilash:
class MyClass {
var customProperty: String = ""
get() = field.toUpperCase() // Maxsus getter
set(value) {
field = value.toLowerCase() // Maxsus setter
}
val computedProperty: Int
get() = (1..10).random() // Hisoblangan xususiyat, maydon yo'q
}
field- getter va setter ichida xususiyat maydoniga murojaat. Faqat o'zgaruvchan xususiyatlar (var) uchun ishlatiladi.- Getterlar va setterlar, kirish yoki o'zgarishda qo'shimcha mantiq bajarish uchun moslashtirilishi mumkin.
- Hisoblangan xususiyatlar (
computedProperty) o'z maydoniga ega emas va har doim kirishda qiymatni hisoblaydi.
Asosiy nuqtalar:
- Kotlin'da, har bir maydon uchun aniq getter va setter yaratish shart emas, ular avtomatik ravishda yaratiladi.
- Xususiyatlar nuqta notatsiyasi (
instance.propertyName) orqali kirish mumkin. - Aniq belgilangan getter va setter, kirish yoki o'zgartirishda mantiq qo'shishga imkon beradi.
valxususiyatlar uchun getter har doim shu turdagi qiymatni qaytarishi kerak.varxususiyatlar uchun setter, shuningdek, shu turdagi parametrni qabul qiladi.
Kotlin'dagi xususiyatlar va Java'dagi maydonlar+metodlar taqqoslamasi:
| Kotlin Xususiyati | Java Maydon + Metodlar | Tavsif |
|---|---|---|
var meningXususiyatim: Tip |
private Tip meningXususiyatim; + public Tip getMeningXususiyatim() + public void setMeningXususiyatim(Tip qiymat) |
O'zgaruvchan xususiyat, avtomatik getter va setter bilan. |
val meningXususiyatim: Tip |
private Tip meningXususiyatim; + public Tip getMeningXususiyatim() |
O'zgarmas xususiyat, faqat avtomatik getter bilan. |
| Maxsus getter/setter | Aniq yozilgan mantiq | Kirish yoki o'zgartirishda maxsus mantiq qo'shish. |
| Hisoblangan xususiyat | Qiymatni qaytaruvchi aniq metod | Xususiyat qiymati har doim kirishda hisoblanadi. |