60

📱 Encapsulamiento y métodos accesores en en Android Studio [60]

En este tutorial aprenderemos a usar el Encapsulamiento y métodos accesores en en Android Studio.

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 “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 en Android Studio

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())
        */
    }
}
import javax.swing.JOptionPane

var fil=JOptionPane.showInputDialog("Humano ingresa la cantidad de filas de tu matriz").toInt()
var col=JOptionPane.showInputDialog("Humano ingresa la cantidad de columnas de tu matriz").toInt()
var matriz=Array(fil){IntArray(col)}
for (i in 0 until fil){
    for (j in 0 until col){
        matriz[i][j]=JOptionPane.showInputDialog("Matriz[${i+1}][${j+1}]").toInt()
    }
}
var sumaFil=0
for (i in 0 until fil){
    sumaFil=0
    for (j in 0 until col){
        sumaFil=sumaFil+matriz[i][j]
    }
    println("La suma de la fila ${i+1}=$sumaFil")
}
var sumaCol=0
for (j in 0 until col){
    sumaCol=0
    for (i in 0 until fil){
        sumaCol=sumaCol+matriz[i][j]
    }
    println("La suma de la columna ${j+1}=$sumaCol")
}

🎦 [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

Anterior tutorial Siguiente tutorial

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *