Junior
Šta možeš reći o svojstvima, kao i o metodama get i set u Kotlinu?
sobes.tech АИ
Одговор од АИ
U Kotlin, svojstva predstavljaju kombinaciju polja i odgovarajućeg gettera i settera.
Definicija svojstva:
class MyClass {
var mutableProperty: String = "default"
val immutableProperty: Int = 10
}
Ovde je mutableProperty promenjivo svojstvo sa podrazumevanim getterom i setterom. immutableProperty je nepromenjivo svojstvo samo sa podrazumevanim getterom.
Jasno definisanje gettera i settera:
class MyClass {
var customProperty: String = ""
get() = field.toUpperCase() // Korisnički getter
set(value) {
field = value.toLowerCase() // Korisnički setter
}
val computedProperty: Int
get() = (1..10).random() // Izračunljivo svojstvo, nema polje
}
field- povratna referenca na polje svojstva unutar gettera i settera. Koristi se samo za promenjiva svojstva (var).- Getteri i setteri mogu biti prilagođeni, izvršavajući dodatnu logiku pri pristupu ili promeni svojstva.
- Izračunljiva svojstva (
computedProperty) nemaju sopstveno polje i uvek računaju vrednost pri pristupu.
Ključne tačke:
- U Kotlinu nije potrebno eksplicitno kreirati gettere i settere za svako polje, kao u Javi. Oni se automatski generišu.
- Svojstva su dostupna putem tačke notacije (
instance.propertyName). - Eksplicitno definisanje gettera i settera omogućava dodavanje logike pri pristupu ili promeni svojstva.
- Getteri za
valsvojstvo uvek moraju vraćati vrednost istog tipa. - Setteri za
varsvojstvo prihvataju parametar istog tipa.
Poređenje svojstava u Kotlinu i polja + metode u Javi:
| Kotlin svojstvo | Java polje + metode | Opis |
|---|---|---|
var myProperty: Tip |
private Tip myProperty; + public Tip getMyProperty() + public void setMyProperty(Tip value) |
Promenjivo svojstvo sa automatskim getterom i setterom. |
val myProperty: Tip |
private Tip myProperty; + public Tip getMyProperty() |
Nepromenjivo svojstvo samo sa automatskim getterom. |
| Prilagođeni getter/setter | Ručno napisana logika | Dodavanje korisničke logike pri pristupu ili promeni. |
| Izračunljivo svojstvo | Javni metod koji vraća vrednost | Vrednost svojstva se računa pri svakom zahtevu. |