Ahora continuaremos con un ejemplo, para dejar en claro el mecanismo de encapsulación, que en palabras simples permite ocultar código/estados de un objeto al resto de los objetos (clases).
Pasos:
1.- Con el IDE que trabajen creen un nuevo proyecto java. En eclipse es File --> New --> Java Proyect
luego, creen dos clases, quedando la estructura de la siguiente manera:2.-
En la clase Manzana.java, creen dos atributos:
nombre de tipo String
cantidad de tipo in
En la Clase Encapsulacion.java, se crea el método static void main(String [] args), que permite hacer debug en cualquier clase java y dentro del método, se crea un objeto de tipo Manzana, con la sentencia
new y se define el tipo.
3.- Ahora agregaremos los métodos set/get dependiendo de lo que queramos probar en nuestro ejemplo
3.1.- Modificaremos la clase Manzana.java, verificando que todos sus atributos sean private (privados) y creamos sus accesores gets/sets:
En este caso, en la clase Encapsulacion.java al crear el objeto man de tipo Manzana, si intentamos ver las opciones del objeto, no podemos ni accesar ni settear un objeto de dicha clase. Está completamente oculto en nuestro ámbito.
3.2.- Segunda prueba, modificaremos la clase Manzana.java, verificando que todos sus atributos sean public (públicos) y creamos sus accesores gets/sets:
En este caso, nos damos cuenta al establecer como públicos los atributos del objeto Manzana, al crear un nuevo objeto en una clase externa, como en Encapsulacion.java se puede acceder a los accesores sin problema, pudiendo settear u obtener cualquier atributo, en cualquier momento durante la ejecución de un programa.
3.3.- Última opción, modificaremos la clase Manzana.java, verificando que todos sus atributos sean private (privados) y creamos sus accesores gets/sets. Sólo debes modificar cualquier gets dejandolo como público:
Al hacer esto, nos damos cuenta que sólo podemos acceder al valor de un atributo del objeto sin modificarlo. Esta es la gran ventaja de la encapsulación, puedes dar "acceso" a los atributos de tus objetos según los permisos que otros objetos merezcan. Es mucho mejor restringir el acceso a todos y brindarlo de a poco que viceversa. Así evitas que "alguien" cambie el valor de un objeto mientras está en ejecución un programa y obtengas un error no manejado.
Eso ha sido todo por hoy, espero haber aclararo las dudas y haber sido lo más claro posible.
Saludos...




No hay comentarios:
Publicar un comentario