馃摫 [Curso] Desarrollo en Android de 0 a 100

馃摫 Encapsulamiento y m茅todos accesores en en Android Studio [60]

El principio de encapsulaci贸n de la Programaci贸n Orientada a Objetos 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 鈥渁ccesores鈥 y en otros 鈥渟etter鈥漵 y 鈥済etter鈥漵:

  • Un m茅todo 鈥渟etter鈥 sirve para 鈥渃argar un valor鈥 (asignar un valor a una variable).
  • Un m茅todo 鈥済etter鈥 sirve para 鈥渞etornar 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.

C贸digo: https://github.com/programadornovato/AndroidStudio/commit/8abd62b0b7708d6ba972d0e6f48c23b2891111a6

package com.programadornovato.myapplication
/*
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.
*/class Empleado {
    var edad=0
        get() = field+1
        set(value) {
            if(value>=18 && value<=80) {
                field = value
            }else{
                println("Semi dios estupido te pedi una edad entre 18 y 80 a帽os")
            }
        }
    var nombre:String?=null
        get() = field!!.toUpperCase()
        set(value) {
            if(value!!.isEmpty()){
                println("El nombre debe tener texto")
            }else{
                field = value
            }
        }

    /*
    private var edad:Int=0
    private var nombre:String?=null
    public fun setEdad(_edad:Int){
        if(_edad>=18 && _edad<=80){
            edad=_edad
        }else{
            println("Semi dios estupido te pedi una edad entre 18 y 80 a帽os")
        }
    }
    public fun getEdad():Int{
        if(edad==0){
            return 0
        }else{
            return edad+1
        }
    }
    public fun setNombre(_nombre:String){
        if(_nombre.isEmpty()){
            println("El nombre debe tener texto")
        }else{
            nombre=_nombre
        }
    }
    public fun getNombre():String{
        return nombre!!.toUpperCase()
    }
    */}
package com.programadornovato.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.programadornovato.myapplication.Matematicas.Basicas

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var e1=Empleado()
        e1.edad=20
        println(e1.edad)
        e1.nombre=""
        println(e1.nombre)
        /*
        var e1=Empleado()
        e1.setEdad(17)
        println(e1.getEdad())
        e1.setNombre("juan")
        println(e1.getNombre())
        */    }
}

馃帵 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
馃帵 Lista de reproducci贸n de este curso: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT9pb9J-89j1SPtqHzU7sF
馃帵 [Curso] Kotlin de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKSjzbsW_zmVNz23GyOVsdbS
馃帵 [Curso] Java Netbeans Completo鈽: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF

馃敆 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

#kotlin #java #Android

Eugenio Chaparro

Entradas recientes

Enviar mensajes de Whatsapp automaticamente [Twilio tutorial en Espa帽ol 2022]

Enviar mensajes de Whatsapp automaticamente [Twilio tutorial en Espa帽ol 2022]

Twilio es una p谩gina web que nos permite enviar mensajes de texto v铆a Whatsapp. El…

4 semanas hace
馃摫 Crear un cronometro de cuenta regresiva 2da parte en Android Studio [30]

馃摫 Crear un cronometro de cuenta regresiva 2da parte en Android Studio [30]

En este tutorial vamos a terminar de hacer nuestro cron贸metro y le agregaremos horas minutos…

1 mes hace
馃摫 Crear un cronometro de cuenta regresiva en Android Studio [29]

馃摫 Crear un cronometro de cuenta regresiva en Android Studio [29]

En este tutorial vamos a crear un cronometro que cuent de un tiempo inicial a…

1 mes hace
馃摫 Colocar un progressbar WebView en Android Studio [28]

馃摫 Colocar un progressbar WebView en Android Studio [28]

En este tutorial vamos colocar un progressbar (Barra de progreso) a nuestro WebView para ver…

1 mes hace
馃摫 Detectar error al cargar WebView en Android Studio [27]

馃摫 Detectar error al cargar WebView en Android Studio [27]

En este tutorial vamos a detectar si nuestra p谩gina web cargo exitosamente o tuvo alg煤n…

1 mes hace
馃摫 Cargar una pagina web con WebView en Android Studio [26]

馃摫 Cargar una pagina web con WebView en Android Studio [26]

En este tutorial vamos a cargar una p谩gina web dentro de nuestro activity con la…

1 mes hace