📱 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.
- edad de tipo Int
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