Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre uno de los cuatro pilares fundamentales para la programacion orientada en objetos junto a herencia, polimorfismo y abstraccion.

Anuncios

En java la encapsulacion es la habilidad de poder envolver los datos (variables) y el codigo que manipula la data (metodos) como si fueran una sola unidad, los argumentos de la clase seran escondidos para otras clases y solo podra ser accedidos por los metodos de la propia clase, esto es conocido como data escondida.

Anuncios

Para lograr la encapsulacion se debe:

  • Declarar las variables de la clase como privada (private)
  • Proveer metodos publicos para modificar (set) y obtener (get) los datos de la clase, esto habitualmente se llama setter and getter.
Anuncios

En los posts de Android hemos visto algunas veces una opcion para generar metodos Setter And Getter automaticamente en base a las variables que seleccionemos, en este caso haremos un ejemplo a mano, para este caso crearemos dos clases una donde tendremos los metodos setter and getter y el programa para invocarlos, veamos el primer caso:

EncapPrueba.java

public class EncapTest
{
        private String nombre;
        private String idNum;
        private int edad;

        public int getEdad()
        {
                return edad;
        }

        public String getNombre()
        {
                return nombre;
        }

        public String getIdNum()
        {
                return idNum;
        }

        public void setEdad(int nuevaEdad)
        {
                edad = nuevaEdad;
        }

        public void setNombre(String nuevoNombre)
        {
                nombre = nuevoNombre;
        }

        public void setIdNum(String nuevoId)
        {
                idNum = nuevoId;
        }
}
Anuncios

Esta clase tendremos tres variables, uno para el nombre, otro para un numero de id y por ultimo la edad, despues vendran tres metodos (getEdad, getNombre, getIdNum) los cuales se encargaran de devolver el valor contenido en cada una de nuestras variables y los otros tres (setEdad, setNombre, setIdNum) se encargaran de modificar las variables con los nuevos datos que enviemos por esos metodos, pasemos a la clase que ejecutara todo:

RunEncap.java

public class RunEncap
{
        public static void main(String[] args)
        {
                EncapTest encap = new EncapTest();
                encap.setNombre("Martin");
                encap.setEdad(33);
                encap.setIdNum("id4096");

                System.out.println("Nombre: " + encap.getNombre()
                                        + "\tedad: " + encap.getEdad());
        }
}
Anuncios

En este caso tendremos un objeto creado de la clase anterior, donde por medio de los tres metodos ingresaremos los datos y luego por medio de los metodos getXXX de la clase anterior podemos recuperar los datos, compilemos el programa y ejecutemoslo para ver su salida:

tinchicus@dbn001vrt:~/programacion/java/codigo$ java RunEncap
Nombre: Martin  edad: 33
tinchicus@dbn001vrt:~/programacion/java/codigo$

Cuales son los beneficios de la encapsulacion:

  • Los campos de la clase pueden ser establecidos como solo lectura o solo escritura
  • Esto hace que la clase tenga un control total sobre los datos almacenados en sus campos
Anuncios

En resumen, hemos visto la encapsulacion, para que sirve, como se aplica, utilidades de la misma, beneficios de la mismas, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00