Sobes.tech
Junior

Kā tiek īstenota inkapsulācija Kotlin?

sobes.tech AI

Atbilde no AI

Kotlin iekapsulēšana tiek panākta, izmantojot piekļuves modifikatorus un īpašības.

Piekļuves modifikatori:

  • public: pieejams no jebkuras vietas (noklusējums).
  • internal: pieejams tajā pašā modulī.
  • protected: pieejams savā klasē un tās apakšklasēs.
  • private: pieejams tikai tajā klasē, kurā tas ir deklarēts.

Īpašības tiek izmantotas, lai pārvaldītu piekļuvi klases datiem. Tām var būt getter un setter, kurus var pārrakstīt, lai pievienotu loģiku, lasot vai rakstot vērtību.

class Person {
    // Privāts lauks, pieejams tikai klasē
    private var _name: String = ""

    // Īpašība ar publisku getter un privātu setter
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Publiska funkcija vārda iestatīšanai, kontrolē ievadi
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Vārds nevar būt tukšs")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Izmanto kontrolētu metodi izmaiņām
    println(person.name)    // Lasīt vērtību caur getter
    // person.name = "Bob"   // Kompilācijas kļūda, setter ir privāts
}