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

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. :)