Hola y bienvenidos a esta elección.
A continuación vamos a ver el tema de encapsulamiento en IAVA están listos.
Vamos bien lo primero que vamos a hacer es cerrar nuestro proyecto el proyecto anterior damos derecho
Claws y vamos a crear un nuevo proyecto en Finnair Project.
Ya va width Maybe y ya va application.
Damos clic en Next y el nombre del proyecto se va a llamar encapsulamiento y lo depositamos en la carpeta
de cursos diagonal IAVA quitamos el nombre del paquete y dejamos los demás valores por default.
Ahora vamos a crear una nueva clase damos clic derecho nio Java class y el nombre de la clase va a ser
persona.
Dejamos los demás valores por default y damos siguen finalizar quitamos los comentarios y esta clase
va a tener los siguientes atributos.
Vamos a definir un atributo llamado nombre otro atributo de tipo doble llamado sueldo y definimos otro
atributo de tipo bullían llamado eliminado para simular si esta persona ha sido eliminada.
Esos son los atributos que tenemos en nuestra clase.
Vamos a crear un constructor que reciba los tres argumentos así que definimos un constructor de tipo
público llamado Persona y recibe los tres argumentos string nombre posteriormente recibe un argumento
de tipo doble llamado sueldo y finalmente un atributo de tipo bullían llamado eliminado y con esos argumentos
iniciales seamos cada uno de los atributos de nuestra clase usamos disputo nombre para acceder al atributo
de nuestra clase y le asignamos el valor del argumento que estamos recibiendo.
Posteriormente escribimos disputo sueldo y le asignamos el valor de sueldo que estamos recibiendo como
argumento y finalmente el valor de eliminado inconexo ya estamos inicializar.
Cada uno de los atributos de nuestra clase al momento en que se manda llamar este constructor que recibe
los tres argumentos vamos a crear una clase de prueba damos un derecho nio ya da clase y se va a llamar
prueba persona dejamos los demás valores por default y damos sigue en finalizar
y vamos a agregar un método main public void main damos derecho formato y vamos a crear un nuevo objeto
de tipo personal así que vamos a crear la variable persona de tipo persona y le asignamos un nuevo objeto
de tipo persona debido a que no hemos agregado el constructor vació en esta clase persona sino únicamente
un constructor con tres argumentos entonces no podemos utilizar simplemente esta llamada debido a que
recordemos el compilador ya no agrega el constructor vacío debido a que ya hemos agregado un constructor
con tres argumentos así que debemos de pasar los valores de los tres argumentos.
En este caso el nombre basamos el valor de Juan el sueldo pasamos el valor de 5000 e indicamos si este
objeto ha sido borrado o no y de momento pasamos el valor de falso así escribimos Foss ahora para mandar
a imprimir los valores de este objeto a consola podemos mandarlo de varias formas pero vamos a ver una
de las más comunes podríamos acceder a cada uno de los atributos y poner por ejemplo nombre persona
dos puntos e ir accediendo a los valores del objeto persona.
Por ejemplo poner persona punto nombre y si guardamos estos cambios y ejecutamos Podemos que podemos
acceder sin ningún problema al atributo de nombre y accedemos al valor de Juan.
Sin embargo existen mejores prácticas para hacer esto y de hecho en este tema lo que vamos a ver aparte
del tema de encapsulamiento vamos a ver también una de las mejores prácticas para mandar a imprimir
el estado del objeto en cualquier momento así que esto no es una práctica recomendable no es recomendable
acceder directamente a los atributos de nuestra clase si estamos en otra clase.
Este tipo de código de acceder directamente a los atributos únicamente debe de ser dentro de la misma
clase y podemos observar que utilizamos para ello Díez para acceder a los atributos de nuestra clase
siempre y cuando estemos dentro de nuestra misma clase.
Si estamos desde otra clase vamos a hacer lo siguiente Para evitar esto.
La idea es que no tengamos este tipo de código y para evitar ese tipo de prácticas lo que vamos a hacer
lo siguiente no es atributo de nombre.
Vamos a agregar el modificador de acceso privado.
Así decidimos Privat la palabra reservada playboys y esto lo anteponemos a la definición del tipo y
la definición del nombre de nuestra variable así que es lo primero que debe de aparecer este modificador
de acceso.
Existen otros modificadores de acceso que vamos a ver posteriormente pero para el concepto de encapsulamiento
el más importante es el modificador de acceso privé de esta manera cuando queremos acceder directamente
al atributo nombre desde otra clase.
En este caso de la clase prueba persona ya no es posible acceder a este atributo.
Podemos observar que nos manda el mensaje que el atributo de nombre tiene modificador de acceso privado
en la clase de persona y por lo tanto ya no podemos acceder directamente a este atributo de esta manera.
Ahora cómo vamos a poder acceder a este valor entonces lo que vamos a hacer es crear lo que se conoce
como métodos Guédez y cederse G.T significa obtener y ZET significa modificar o colocar.
Así que por un lado con los métodos G.T asociados a un atributo de nuestra clase vamos a obtener el
valor del atributo y con los métodos Zet vamos a modificar el valor de estos atributos así que vamos
a empezar a trabajar con el atributo de nombre y vamos a agregar su método Jet Set respectivo.
Así que escribimos lo siguiente Vamos a definir el método G.T para obtener el valor del nombre del atributo
de nombre así escribimos Public string ya que va a regresar el nombre que es una cadena y el nombre
debe de ser G.T nombre así que el concepto de Get está en poner el prefijo de Get al nombre del atributo
y posteriormente el nombre del atributo debe de comenzar con mayúscula así que podemos observar que
por cada atributo que tengamos vamos a crear un método GET y posteriormente el atributo que queremos
crear su método GET.
En este caso la N se convierte en mayúscula debido a que debemos utilizar la notación de altas y bajas
o notación de camello para generar estos métodos jet set así que escribimos JEET nombre no recibe ningún
argumento ya que su único objetivo es regresar el valor del atributo nombre abrimos el cuerpo de este
método y este método únicamente se va a encargar de regresar el valor del atributo nombre.
Así que para ello utilizamos diez para acceder al atributo punto nombre.
De igual manera recordemos que no es necesario.
Esto podría funcionar también pero por buena práctica al poner diez sabemos que es el atributo de nuestra
clase.
Y desde la clase prueba persona en lugar de intentar acceder directamente al atributo nombre lo que
vamos a hacer es mandar a llamar.
El método ket nombre incluso podemos observar que después de poner punto ya no nos aparece el atributo
de nombre ya desapareció de los elementos que podemos seleccionar.
Ahora para acceder al atributo de nombre entonces mandamos a llamar.
El método GET nombre guardamos cambios y ejecutamos y de esta manera podemos ver que ya estamos accediendo
al valor de Juan.
Así que básicamente lo que estamos haciendo es que tenemos nuestra clase de tipo persona
se crea un objeto de tipo Persona pero internamente ya lo que estamos haciendo es que el atributo de
nombre ya es de tipo privado así que ya no lo podemos acceder desde otras clases directamente sino que
ahora lo que tenemos que hacer es acceder a través de lo que se conoce como el método GET o set para
el atributo respectivo Goeth para obtener el valor del atributo y set para modificar el valor del atributo
en un momento más vamos a de agregar el método set para estos atributos pero entonces básicamente ya
no podemos acceder directamente al atributo sino que ahora va a ser a través de los métodos jet set
y como en este caso estamos en otra clase en la clase prueba persona.
Entonces la variable persona que estamos creando esta es la variedad que se está creando en este momento
apunta al objeto persona pero ya no puede acceder directamente al atributo de nombre sino que ahora
tiene que utilizar el método G.T nombre para acceder indirectamente al atributo de nombre.
Así que en cuanto ponemos el modificador de acceso privado a los atributos se encapsulan estos atributos.
Por lo tanto ya no son accesibles directamente sino únicamente son accesibles a través de los métodos
públicos en este caso el método público jet o set por ello es que podemos observar que el atributo de
nombre es privado pero el método GET es público todo lo que sea público lo vamos a poder acceder desde
otras clases y todo lo que sea privado ya no lo vamos a poder acceder desde otras clases.
Y si queremos modificar el valor del atributo de nombre entonces vamos a hacer lo siguiente vamos a
agregar un método público no va a regresar nada ya que únicamente su función es modificar el valor del
atributo de nombre y se vaya Marset.
Vamos a poner el prefijo de C.T y posteriormente el nombre del atributo que va a modificar.
Abrimos y cerramos paréntesis y va a recibir un argumento en este caso el valor del atributo que queremos
modificar.
En este caso definimos el argumento de nombre y con ese argumento que estamos recibiendo entonces podemos
modificar el atributo de nombre que es privado.
Así que vamos a poner a prueba esto en esta línea vamos a modificar el valor del nombre así que ponemos
persona punto y mandamos a llamar.
Ahora el método Zet nombre y en lugar de Juan ahora le vamos a cambiar el valor por Carlos y volvemos
a imprimir.
Copiamos esta línea y mandamos a imprimir de nueva cuenta el valor del atributo de nombre guardamos
cambios y ejecutamos y podemos ver que ya hemos cambiado el valor de Juan a Carlos pero esto lo tuvimos
que hacer a través de mandar a llamar.
El método el nombre.
Si quisiéramos hacer lo siguiente persona punto nombre y asignarle un nuevo valor por ejemplo Carla
podemos llevar que aquí nos está marcando un error y básicamente el error es el mismo que el nombre
tiene un tipo privado en la clase de persona por lo tanto ya no podemos acceder directamente a los atributos
de la clase y ya no podemos modificar su valor directamente sino que tiene que ser a través de los métodos
Jet Set que estamos definiendo así que esto lo vamos a hacer para cada uno de los atributos podemos
utilizar élida también para ayudarnos y hacer más rápido esto
prácticamente cualquier idea tiene la funcionalidad de generar los métodos que encapsulan a cada uno
de los atributos de nuestra clase.
Primero vamos a convertirlos a tipos privados y posteriormente aquí vamos a agregar los métodos que
se van a generar de manera automática.
Podemos escribirlos manualmente o podemos apoyarnos en este caso de Lide para generarlos más rápidamente
así que damos clic derecho seleccionamos la opción de insertar COV y posteriormente observamos que tenemos
varias opciones.
En este caso vamos a seleccionar la opción de querer acceder para generar los métodos jet set para cada
uno de los atributos restantes y podemos observar que nos muestra los atributos de eliminado ese tipo
bullían y de sueldo que es de tipo doble así que vamos a seleccionarlos y con esto vamos a encapsular
estos atributos y debido a que ya marcamos nuestros atributos como privados esta opción exactamente
igual podemos marcarla o no ya que es únicamente encapsula los atributos quiere decir que los convierte
en privado.
Así que generamos los métodos jet set para esos atributos damos clic en Janeway y podemos ver que ya
nos agregó los métodos en este caso para el atributo de sueldo agregó.
El método Guez sueldo que regresa un tipo doble ya que únicamente se encarga de regresar el valor del
atributo Podemos se va que no está utilizando dis pero nosotros podemos modificarlo para que utilice
dice y de igual manera el sueldo generó el método set sueldo recibe el argumento de sueldo y se encarga
de modificar el valor del atributo de sueldo.
En este caso se utilizó dice debido a que tenemos ambigüedad entre el nombre del argumento y el nombre
del atributo así que en automático élide utiliza el operador dis para hacer esta diferencia entre el
argumento y el atributo de la clase.
Y ahora podemos observar el método G.T para el atributo de tipo bullían.
Sin embargo podemos observar que para los tipos bullían no se utiliza la palabra Goeth como prefijo
sino se utiliza la palabra ish debido a que el tipo bullían no es más una pregunta así que en este caso
pregunta es eliminado más que la traducción obtener eliminado sería eliminado utilizá es eliminado y
debido a que es un tipo volia no es más un tipo pregunta Esto de por sí ya es una práctica que se realiza
en Java para cada atributo de tipo Juliano en lugar de generar su método guetto se va a utilizar ish
y posteriormente el nombre del atributo.
Por ello en este caso es eliminado en lugar de G.T eliminado solamente.
Esto va a aplicar a los tipos bullían y por otro lado se generó también el método ser eliminado.
Aquí no hay ningún problema es exactamente igual que en los casos anteriores.
Así que con esto ya podríamos también imprimir no solamente el nombre
sino también por ejemplo podríamos imprimir el sueldo
y accederemos al método
G.T sueldo y por último podríamos imprimir por ejemplo también si este objeto ha sido borrado o no así
que podríamos persona borrada y podemos saber que es más bien un tipo pregunta persona borrada y mandaría
a llamar.
El método es en lugar de gheto es eliminado.
Guardamos cambios y ejecutamos y podemos llevar que en este caso ya nos está mandando a imprimir cada
uno de los valores de nuestra clase.
Estos valores los hemos asignado en el constructor y la salida obtenemos los valores de nombre igual
a Juan sueldo de la persona igual a 5 000 persona borrada en este caso no es una persona borrada ya
que podemos ver que el valor se inicializar con Fox y con esto ya estamos observando que podemos acceder
a cada uno de los atributos de nuestra clase y de esta misma forma si queremos modificar algún otro
valor de nuestro objeto de tipo persona podemos hacerlo siguientes persona punto set y podemos seleccionar
alguno de los métodos para modificar el atributo deseado.
Por ejemplo podemos modificar el sueldo y en lugar de 5000 podemos pasarlo por ejemplo a 3 000
y también por ejemplo el valor de eliminado en lugar de falso podemos pasarlo a tu sin embargo aquí
tendríamos que volver a imprimir cada uno de los valores así que podemos copiar estas líneas
y mandar a imprimir de nueva cuenta cada uno de los valores.
Damos formato guardamos cambios y ejecutamos y podemos observar que los primeros valores es Juan €5000
y falso y posteriormente una vez que hemos modificado los valores del objeto tenemos en los valores
de Carlos III 0:00 y el valor de Chubb así que de esta manera estamos encapsulan los atributos de nuestra
clase persona utilizando el modificador de acceso privado y creando los métodos Jet Set respectivos.
Usamos el método G.T para obtener la información de un atributo y set para modificar la información
de un atributo y únicamente la excepción en el método GET es si es un tipo booleano en lugar de utilizar
G.T vamos a utilizar el prefijo Isa bien así que con esto hemos puesto en práctica el concepto de encapsulamiento.
En Java nos vemos en la siguiente elección.
Saludos.