Sobes.tech
Junior

¿Cómo se realiza la encapsulación en Kotlin?

sobes.tech AI

Respuesta de la IA

La encapsulación en Kotlin se logra mediante modificadores de acceso y propiedades.

Modificadores de acceso:

  • public: accesible desde cualquier lugar (por defecto).
  • internal: accesible dentro de un mismo módulo.
  • protected: accesible en su clase y en sus subclases.
  • private: accesible solo dentro de la clase donde se declara.

Las propiedades se utilizan para gestionar el acceso a los datos de la clase. Pueden tener un getter y un setter, que se pueden sobrescribir para agregar lógica al leer o escribir el valor.

class Person {
    // Campo privado, accesible solo dentro de la clase
    private var _name: String = ""

    // Propiedad con getter público y setter privado
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Función pública para establecer el nombre, controlando la entrada
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("El nombre no puede estar en blanco")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Usamos el método controlado para cambiar
    println(person.name)    // Leemos el valor a través del getter
    // person.name = "Bob"   // Error de compilación, el setter es privado
}