Sobes.tech
Junior

Ko vari pastāstīt par īpašībām un arī get un set metodēm Kotlin?

sobes.tech AI

Atbilde no AI

Kotlin īpašības ir kombinācija starp lauku un atbilstošo ģeneratoru un iestatītāju.

Īpašības definīcija:

class MyClass {
    var mutableProperty: String = "default"
    val immutableProperty: Int = 10
}

Šeit mutableProperty ir maināma īpašība ar noklusējuma ģeneratoru un iestatītāju. immutableProperty ir nemaināma īpašība tikai ar ģeneratoru.

Skaidra ģeneratora un iestatītāja definīcija:

class MyClass {
    var customProperty: String = ""
        get() = field.toUpperCase() // Lietotāja ģenerators
        set(value) {
            field = value.toLowerCase() // Lietotāja iestatītājs
        }

    val computedProperty: Int
        get() = (1..10).random() // Aprēķināma īpašība, bez lauka
}
  • field - atsauce uz īpašības lauku ģeneratora un iestatītāja iekšienē. To izmanto tikai maināmām īpašībām (var).
  • Ģeneratori un iestatītāji var būt pielāgoti, veicot papildu loģiku piekļuvei vai izmaiņām.
  • Aprēķināmās īpašības (computedProperty) nav ar savu lauku un vienmēr aprēķina vērtību pie piekļuves.

Galvenie punkti:

  • Kotlin nav nepieciešams skaidri izveidot ģeneratorus un iestatītājus katram laukam, kā Java. Tie tiek automātiski ģenerēti.
  • Īpašības ir pieejamas caur punktu notāciju (instance.propertyName).
  • Skaidra ģeneratora un iestatītāja definīcija ļauj pievienot papildu loģiku.
  • val īpašībām ģenerators vienmēr jāatgriež to pašu tipu.
  • var īpašību iestatītājs pieņem to pašu tipu.

Salīdzinājums īpašībām Kotlin un laukiem + metodēm Java:

Kotlin īpašība Java lauks + metodes Apraksts
var myProperty: Tips private Tips myProperty; + public Tips getMyProperty() + public void setMyProperty(Tips value) Maināma īpašība ar automātisku ģeneratoru un iestatītāju.
val myProperty: Tips private Tips myProperty; + public Tips getMyProperty() Nemaināma īpašība tikai ar ģeneratoru.
Pielāgots ģenerators/iestatītājs Rokā rakstīts loģika Papildu loģikas pievienošana piekļuvei vai izmaiņām.
Aprēķināma īpašība Metode, kas atgriež vērtību Vērtība tiek aprēķināta katru piekļuvi.