maxresdefault 26 1

Encapsulamiento y métodos accesores en Kotlin (Curso de Kotlin desde cero [61])

Ahora vamos a arender el encapsulamiento y métodos accesores en Kotlin. El principio de encapsulación de la POO determina que los atributos de los objetos deben ser siempre privados: no deben ser accesibles desde fuera del objeto, sino que sólo el objeto tiene la libertad de para escribirlos o leerlos. Lo que debe hacerse es crear métodos públicos que sustituyan una u otra operación, o ambas, cada vez que la situación lo requiera. Estos métodos se denominan en ciertos lenguajes “accesores” y en otros “setter”s y “getter”s:

  • Un método “setter” sirve para “cargar un valor” (asignar un valor a una variable).
  • Un método “getter” sirve para “retornar el valor” (solo devolver la información del atributo para quién la solicite).

Para entender mejor este principio de getters y setters vamos hacer el siguiente ejercicio:

  • Crearemos una clase llamada Empleado la cual tendrá dos atributos:
    • edad de tipo Int
      • Su método set validará que el empleado tenga un rango de edad entre 18 y 80 años.
      • Su método get le sumará 1 año (Porque no se me ocurrió otra cosa)
    • nombre de tipo String
      • Su método set validará que el nombre tenga texto.
      • Su método get retorna el nombre en mayúsculas.
Encapsulamiento y métodos accesores en Kotlin

Código: https://github.com/programadornovato/CursoKotlin/commit/7649ac2e4af1ad297a3eda56f4fdf5317275f2a0

// src/Empleado.kt 

class Empleado {
    var edad=0
        get() = field+1
        set(value) {
            if(value>=18 && value<=80){
                field = value
            }else{
                println("Semi Dios Estupido la edad debe de estar en un rango entre 18 y 80 años")
            }
        }
    var nombre:String?=null
        get() = field?.toUpperCase()
        set(value) {
            if(value!!.isEmpty()) {
                println("El nombre debe de tener texto")
            }else{
                field = value
            }
        }
    /*
    public fun setEdad(_edad:Int){
        if(_edad>=18 && _edad<=80){
            edad=_edad
        }else{
            println("Semi Dios Estupido la edad debe de estar en un rango entre 18 y 80 años")
        }
    }
    public fun getNombre(_nombre:String){
        if(_nombre?.isEmpty()){
            println("El nombre debe de tener texto")
        }else{
            nombre=_nombre
        }
    }
    */
} 


// src/main.kt 
import javax.swing.JOptionPane
import Matematicas.Basicas
fun main(args:Array<String>){
    var e1=Empleado()
    e1.edad=20
    println(e1.edad)
    e1.nombre="juan"
    println(e1.nombre)
}

🎦 Mismo tutorial pero en Java: https://youtu.be/8yxBe6igRbU

🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF
🎦 [CURSO] PYTHON PARA PRINCIPIANTES🐍: https://www.youtube.com/playlist?list=PLCTD_CpMeEKRppvi86Dy8CPYZ8-XzN2qu

🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com
🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato
🎦 Canal de youtube: https://www.youtube.com/c/programadornovato

<<Anterior tutorial Siguiente tutorial >>

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)