Junior
Co můžeš říct o vlastnostech a také o metodách get a set v Kotlinu?
sobes.tech AI
Odpověď od AI
V Kotlinu představují vlastnosti kombinaci pole a odpovídajícího getteru a setteru.
Definice vlastnosti:
class MyClass {
var mutableProperty: String = "default"
val immutableProperty: Int = 10
}
Zde je mutableProperty měnitelná vlastnost s výchozím getterem a setterem. immutableProperty je neměnitelná vlastnost pouze s výchozím getterem.
Explicitní definice getteru a setteru:
class MyClass {
var customProperty: String = ""
get() = field.toUpperCase() // Vlastní getter
set(value) {
field = value.toLowerCase() // Vlastní setter
}
val computedProperty: Int
get() = (1..10).random() // Vypočítávaná vlastnost, nemá pole
}
field- odkaz na pole vlastnosti uvnitř getteru a setteru. Používá se pouze pro měnitelné vlastnosti (var).- Gettery a settery mohou být přizpůsobeny, provádějící dodatečnou logiku při přístupu nebo změně vlastnosti.
- Vypočítávané vlastnosti (
computedProperty) nemají vlastní pole a vždy počítají hodnotu při přístupu.
Klíčové body:
- V Kotlinu není nutné explicitně vytvářet gettery a settery pro každé pole, jsou generovány automaticky.
- Vlastnosti jsou přístupné přes tečkovou notaci (
instance.nazevVlastnosti). - Explicitní definice getteru a setteru umožňuje přidat logiku při přístupu nebo změně.
- Gettery pro
valvlastnosti musí vždy vracet hodnotu stejného typu. - Settery pro
varvlastnosti přijímají parametr stejného typu.
Porovnání vlastností v Kotlinu a polí+metod v Javě:
| Kotlin vlastnost | Java pole + metody | Popis |
|---|---|---|
var mojeVlastnost: Typ |
private Typ mojeVlastnost; + public Typ getMojeVlastnost() + public void setMojeVlastnost(Typ hodnota) |
Měnitelná vlastnost s automatickým getterem a setterem. |
val mojeVlastnost: Typ |
private Typ mojeVlastnost; + public Typ getMojeVlastnost() |
Neměnitelná vlastnost pouze s automatickým getterem. |
| Přizpůsobený getter/setter | Ručně psaná logika | Přidání vlastní logiky při přístupu nebo změně. |
| Vypočítávaná vlastnost | Explicitní metoda vracející hodnotu | Hodnota vlastnosti se počítá při každém požadavku. |