Java, como un lenguaje orientado a objetos, implementa la encapsulación. Este concepto consiste en la ocultación del estado o de los datos miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos definidos para dicho objeto.
Cada objeto está aislado del exterior, de forma que la aplicación es un conjunto de objetos que colaboran entre sí mediante el paso de mensajes invocando sus operaciones o métodos. De esta forma, los detalles de implementación permanecen "ocultos" a las personas que usan las clases, evitando así modificaciones o accesos indebidos a los datos que almacenan las clases.
Además, el usuario de la clase no se tiene que preocuparse de cómo están implementados los métodos y propiedades, concentrándose sólo en cómo debe usarlos.
La encapsulación es una de las principales ventajas que proporciona la programación orientada a objetos
APLICACION DE ENCAPSULAMIENTO
El encapsulamiento es la forma de ocultar informacion. Imaginemos que tenemos una clase llamada Fecha;
Fecha:
dia: int
mes: int
anio: int
public class Fecha{
public int dia;
public int mes;
public int anio;
}
Esta clase es correcta, definimos el dia, mes y el año. Mediante el objeto podremos tener acceso a las variables definidas. Por ejemplo:
f.dia = 10; f.mes = 5; f.anio = 2010;
En este caso todo es correcto y no hay ningun inconveniente.. pero que pasaria si el usuario intencionalmente o deliveradamente hiciera esto:
f.dia = 40; f.mes = 22;
Los datos son incorrectos y se almacenaran en las variables, el problema es cuando se necesita utilizar esa informacion nos provocaria un error.
El encapsulamiento nos ayudara a evitar esto, a prevenir la introduccion de datos incorrectos. ¿como lo lograremos?
Vamos a definir nuestras variables como ‘private’ y de tal forma no podremos acceder de la forma vista.
public class Fecha{
private int dia;
private int mes;
private int anio;
}
y cuando queremos acceder a la variable al momento de la compilacion nos marcara error.
f.dia = 40; // marcara error
Ya hemos logrado que no se pueda accesar a la variable directamente, ahora vamos a crear un par de metodos por el cual podremos modificar la variable y mostrar la variable
public class Fecha {
private int dia;
public int mes;
public int anio;
public boolean setDia(int dia){
boolean valor = false;
if(dia>0 && dia< =31){
System.out.println("Correcto");
this.dia = dia;
valor = true;
}
return valor;
}
public int getDia(){
return dia;
}
}
Se han creado dos metodos 'setDia' y 'getDia', los cuales el primero verifica que el valor del dia no sea mayor de 31 ni menor de 0, de otra manera no almacenara el valor en la variable Dia.
Para obtener nuestra variable tenemos el metodo 'getDia' el cual nos regresa el valor.
Fecha f = new Fecha();
if(f.setDia(31) == true){
System.out.println("Se guardo con Exito");
}
else System.out.println("Error en el dia");
System.out.println(f.getDia());
De esta forma logramos ocultar la informacion, la cual no se cambiara la variable sin pasar por el metodo definido como ‘setDia’ y logramos mantener la integridad de la informacion.
No hay comentarios:
Publicar un comentario