0% encontró este documento útil (0 votos)
74 vistas10 páginas

Encapsulación y Reutilización en Java

El documento explica cómo la encapsulación en Java permite mejorar la reutilización del código. Al principio, se muestra una clase Teléfono sin encapsulación que tiene propiedades públicas. Luego, se crea una clase Tablet similar. Mediante la creación de una clase Batería encapsulada y la delegación de esta clase por Teléfono y Tablet, se logra reutilizar el código de la batería y seguir el principio DRY. La encapsulación permite construir estructuras más complejas y flexibles que aumentan la reutilización en comparación

Cargado por

Sistemas Alianza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas10 páginas

Encapsulación y Reutilización en Java

El documento explica cómo la encapsulación en Java permite mejorar la reutilización del código. Al principio, se muestra una clase Teléfono sin encapsulación que tiene propiedades públicas. Luego, se crea una clase Tablet similar. Mediante la creación de una clase Batería encapsulada y la delegación de esta clase por Teléfono y Tablet, se logra reutilizar el código de la batería y seguir el principio DRY. La encapsulación permite construir estructuras más complejas y flexibles que aumentan la reutilización en comparación

Cargado por

Sistemas Alianza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Java Encapsulamiento y reutilización

Tabla de Contenidos

Java Encapsulamiento y reutilización


¿El porque de la encapsulación?
Java Delegación
Java Encapsulamiento y reutilización
¿Java Encapsulamiento ? . Cuando uno comienza a programar en Java el concepto de
encapsulamiento es de los primeros que aparece y hace referencia a limitar el acceso a las
variables de nuestras clases Java de tal forma que podamos tener un mayor control sobre
ellas. Normalmente utilizando métodos set/get . La gente se queda contenta con esta
respuesta y no le da más vueltas.

Eso si siempre le quedan a uno dudas de porque hay que usar el Eclipse para generar
continuamente métodos set/get cuando probablemente con variables publicas lo
arreglaríamos todo de una forma mucho más directa .

En programación muchas veces me he encontrado con que la “Fe” es una variable muy a

[Link]
Java Encapsulamiento y reutilización

tener en cuenta y que elimina análisis. Vamos a construir un ejemplo que nos ayude a
entender porque el uso de la encapsulación nos puede ayudar a mejorar la reutilización de
nuestro código y su uso es más que recomendable.

Supongamos que disponemos de una clase Java que se denomina Teléfono Esta clase es
sencilla y solo tiene la marca y la capacidad de batería de nuestro Teléfono.

package [Link];

public class Telefono {

private String marca;


private int capacidad;
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
[Link] = marca;
}
public int getCapacidad() {
return capacidad;
}
public void setCapacidad(int capacidad) {
[Link] = capacidad;
}
public Telefono(String marca, int capacidad) {
super();
[Link] = marca;
[Link] = capacidad;
}
public int duracionBateria() {

[Link]
Java Encapsulamiento y reutilización

if (capacidad<3000) {
return 16;
}else {
return 24;
}
}
}

Disponemos de dos propiedades con sus métodos get/set y un constructor. ¿Realmente es


necesario usar los métodos get/set? .

¿Sería suficiente con declarar los métodos públicos ? .Vamos a verlo

package [Link].ejemplo2;

public class Telefono {

public String marca;


public int capacidad;

public Telefono(String marca, int capacidad) {


super();
[Link] = marca;
[Link] = capacidad;

[Link]
Java Encapsulamiento y reutilización

public int duracionBateria() {

if (capacidad < 3000) {


return 16;
} else {

return 24;
}
}
}

¿El porque de la encapsulación?


Es más que evidente que la clase queda simplificada y su funcionamiento es idéntico.
¿Entonces por qué tanta insistencia en usar los métodos get/set? . Imaginemonos que
nosotros ahora disponemos de otra clase Tablet . Esta clase también dispondrá de una
batería

package [Link];

public class Tablet {

private String marca;


private int capacidad;
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
[Link] = marca;
}

[Link]
Java Encapsulamiento y reutilización

public int getCapacidad() {


return capacidad;
}
public void setCapacidad(int capacidad) {
[Link] = capacidad;
}
public Tablet(String marca, int capacidad) {
super();
[Link] = marca;
[Link] = capacidad;
}
public int duracionBateria() {
if (capacidad<3000) {
return 16;
}else {
return 24;
}
}
}

Nos podemos dar cuenta que el código es muy similar y que nos vendría bien refactorizar el
código de tal forma que existiera el concepto de batería.

[Link]
Java Encapsulamiento y reutilización

package [Link].ejemplo3;

public class Bateria {

private int capacidad;

public int getCapacidad() {


return capacidad;
}

public void setCapacidad(int capacidad) {


[Link] = capacidad;
}

public Bateria(int capacidad) {


super();
[Link] = capacidad;
}

public int duracionBateria() {

[Link]
Java Encapsulamiento y reutilización

if (capacidad < 3000) {


return 16;
} else {

return 24;
}
}
}

Java Delegación
De esta forma podríamos reutilizar la bateria en nuestras clases utilizando el concepto de
delegación (una clase delega en otra)

package [Link].ejemplo3;

public class Telefono {

private String marca;


private Bateria bateria;
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
[Link] = marca;
}
public int getCapacidad() {
return [Link]();
}
public void setCapacidad(int capacidad) {
[Link](capacidad);
}

[Link]
Java Encapsulamiento y reutilización

public Telefono(String marca, int capacidad) {


super();
[Link] = marca;
[Link]= new Bateria(capacidad);
}
public int duracionBateria() {
return [Link]();
}
}

package [Link].ejemplo3;

public class Tablet {

private String marca;

private Bateria bateria;


public String getMarca() {
return marca;
}
public void setMarca(String marca) {
[Link] = marca;
}
public int getCapacidad() {
return [Link]();
}
public void setCapacidad(int capacidad) {
[Link](capacidad);
}
public Tablet(String marca, int capacidad) {
super();
[Link] = marca;

[Link]
Java Encapsulamiento y reutilización

[Link]= new Bateria(capacidad);


}
public int duracionBateria() {
return [Link]();
}
}

Cursos Asociados

Programación Orientada a Objeto


Java APIs
Desarrollo Web Java
Java 8 Stream y Lambdas

Estamos apoyándonos con el principio DRY al crear el concepto de batería y eso solo lo
podemos conseguir usando el concepto de la encapsulación ya que nuestro nuevo código
encapsula el concepto de batería mediante delegación.

El uso de la encapsulación nos permite construir estructuras más complejas relacionándolas

[Link]
Java Encapsulamiento y reutilización

e incrementando la flexibilidad y la capacidad de reutilización de nuestro código. Algo que


el simple uso de las propiedades publicas no permite.

Java y Herencia
Java Interfaces y simplicidad
Java Composite Pattern y recursividad/
Eclipse Set/Get

[Link]

También podría gustarte