Sobes.tech
Junior

Cum se realizează încapsularea în Kotlin?

sobes.tech AI

Răspuns de la AI

Încapsularea în Kotlin se realizează prin intermediul modificatorilor de acces și proprietăților.

Modificatori de acces:

  • public: accesibil de oriunde (implicit).
  • internal: accesibil în cadrul aceluiași modul.
  • protected: accesibil în propria clasă și în subclasele sale.
  • private: accesibil doar în interiorul clasei în care este declarat.

Proprietățile sunt utilizate pentru a controla accesul la datele clasei. Ele pot avea un getter și un setter, care pot fi suprascrise pentru a adăuga logică la citirea sau scrierea valorii.

class Person {
    // Câmp privat, accesibil doar în interiorul clasei
    private var _name: String = ""

    // Proprietate cu getter public și setter privat
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Funcție publică pentru setarea numelui, controlând intrarea
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Numele nu poate fi gol")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Folosim metoda controlată pentru schimbare
    println(person.name)    // Citim valoarea prin getter
    // person.name = "Bob"   // Eroare de compilare, setterul este privat
}