Kotlin Getters un Setters (ar piemēru)

Šajā rakstā jūs uzzināsiet, kā ar piemēru izmantot Kotlinas getters un seterus.

Pirms uzzināt par getters un seteriem, noteikti pārbaudiet Kotlin klasi un objektus.

Programmēšanā īpašuma vērtības iegūšanai izmanto getters. Līdzīgi, iestatītājus izmanto īpašuma vērtības noteikšanai.

Kotlinā getters un seters nav obligāti, un tie tiek automātiski ģenerēti, ja jūs tos neveidojat savā programmā.

Kā darbojas getters un seters?

Šis kods Kotlīnā

 klases persona (main name: String = "defaultValue")

ir ekvivalents

 klase Persona (var nosaukums: String = "defaultValue" // getter get () = lauks // setera kopa (vērtība) (lauks = vērtība))

Instantējot Personklases objektu un inicializējot nosaukuma rekvizītu, tas tiek nodots iestatītāju parametra vērtībai un lauka vērtība tiek iestatīta.

 val p = Persona () p.name = "domkrats"

Tagad, piekļūstot objekta nosaukuma īpašumam, koda dēļ jūs saņemsit lauku get() = field.

 println ("$ (p.name)")

Šis ir piemērs:

 fun main(args: Array) ( val p = Person() p.name = "jack" println("$(p.name)") ) class Person ( var name: String = "defaultValue" get() = field set(value) ( field = value ) )

Palaidot programmu, izeja būs:

 džeks 

Šādi pēc noklusējuma darbojas getters un seters. Tomēr jūs varat mainīt rekvizīta vērtību (modificēt vērtību), izmantojot getters un seters.

Piemērs: rekvizīta vērtības mainīšana

 fun main(args: Array) ( val maria = Girl() maria.actualAge = 15 maria.age = 15 println("Maria: actual age = $(maria.actualAge)") println("Maria: pretended age = $(maria.age)") val angela = Girl() angela.actualAge = 35 angela.age = 35 println("Angela: actual age = $(angela.actualAge)") println("Angela: pretended age = $(angela.age)") ) class Girl ( var age: Int = 0 get() = field set(value) ( field = if (value = 18 && value <= 30) value else value-3 ) var actualAge: Int = 0 )

Palaidot programmu, izeja būs:

 Marija: faktiskais vecums = 15 Marija: izliktais vecums = 18 Angela: faktiskais vecums = 35 Angela: izliktais vecums = 32

Šeit faktiskaisAge īpašums darbojas kā paredzēts.

Tomēr, lai mainītu vecuma īpašuma vērtību, ir papildu loģika.

Interesanti raksti...