Junior
Mida sa saad rääkida omadustest ning samuti get ja set meetoditest Kotlinis?
sobes.tech AI
Vastus AI-lt
Kotlin omadused on kombinatsioon väli ja sellele vastavast getterist ja setterist.
Omaduse määratlus:
class MyClass {
var mutableProperty: String = "default"
val immutableProperty: Int = 10
}
Siin on mutableProperty muudetav omadus, millel on vaikimisi getter ja setter. immutableProperty on muutumatu omadus ainult vaikimisi getteriga.
Selge getteri ja setteri määratlus:
class MyClass {
var customProperty: String = ""
get() = field.toUpperCase() // Kasutaja getter
set(value) {
field = value.toLowerCase() // Kasutaja setter
}
val computedProperty: Int
get() = (1..10).random() // Arvutatav omadus, ilma väluta
}
field- viide omaduse välile getteris ja setteris. Kasutatakse ainult muudetavate omaduste (var) puhul.- Getterid ja setterid võivad olla kohandatud, lisades täiendavat loogikat omaduse ligipääsul või muutmisel.
- Arvutatavad omadused (
computedProperty) ei oma oma välja ja arvutatakse iga pääsuga.
Peamised punktid:
- Kotlinis ei ole vaja iga välja jaoks selgelt luua getterit ja setterit, nagu Java-s. Need genereeritakse automaatselt.
- Omadused on kättesaadavad punktnotatsiooniga (
instance.propertyName). - Selge getteri ja setteri määratlus võimaldab lisada täiendavat loogikat.
valomaduste getterid peavad alati tagastama sama tüüpi väärtuse.varomaduste setterid võtavad vastu sama tüüpi parameetri.
Omaduste võrdlus Kotlinis ja väljade + meetodite Java-s:
| Kotlin omadus | Java väli + meetodid | Kirjeldus |
|---|---|---|
var myProperty: Tüüp |
private Tüüp myProperty; + public Tüüp getMyProperty() + public void setMyProperty(Tüüp väärtus) |
Muudetav omadus automaatse getteri ja setteri abil. |
val myProperty: Tüüp |
private Tüüp myProperty; + public Tüüp getMyProperty() |
Muutumatu omadus ainult getteriga. |
| Kohandatud getter/setter | Käsitsi kirjutatud loogika | Lisab kasutaja määratud loogika ligipääsul või muutmisel. |
| Arvutatav omadus | Meetod, mis tagastab väärtuse | Väärtus arvutatakse iga taotluse korral. |