visibilidad de los miembros de una clase
de los miembros de una clase
Se pueden establecer distintos niveles de encapsulación
para los miembros de una clase (atributos y operaciones)
en función de desde dónde queremos que sepueda acceder a ellos:
Visibilidad
Pública
Protegida
Privada
Significado
Se puede acceder al
miembro de la clase
desde cualquier lugar.
Sólo se puede acceder
al miembro de la clasedesde la propia clase o
desde una clase que
herede de ella.
Sólo se puede acceder
al miembro de la clase
desde la propia clase.
Java
UML
public
+
protected
#
private
-Para encapsular por completo el estado de un objeto,
todos sus atributos se declaran como variables de instancia privadas
(usando el modificador de acceso private).
A un objeto siempre se accedea través de sus métodos públicos
(su interfaz).
Para usar el objeto no es necesario conocer
qué algoritmos utilizan sus métodos
ni qué tipos de datos se emplean para mantener su estado
(suimplementación).
OOP – Introducción: Java
- 34 -
© Fernando Berzal
Diseño incorrecto
public class Persona
{
public String nombre;
public Persona padre;
public Persona madre;
publicArrayList hijos = new ArrayList();
}
Uso correcto de la clase:
Persona juan = new Persona();
Persona carlos = new Persona();
Persona silvia = new Persona();
juan.nombre = “Juan”;
carlos.nombre =“Carlos”;
silvia.nombre = “Silvia”;
juan.padre = carlos;
juan.madre = silvia;
carlos.hijos.add(juan);
silvia.hijos.add(juan);
Uso incorrecto de la clase
(pese a ser válido tal como estáimplementada):
juan.padre = carlos;
juan.madre = carlos;
silvia.hijos.add(juan);
juan.hijos.add(juan);
OOP – Introducción: Java
- 35 -
© Fernando Berzal
Diseño correcto
importjava.util.ArrayList;
public class Persona
{
// Variables de instancia privadas
private String nombre;
private Persona padre;
private Persona madre;
private ArrayList hijos = new ArrayList();
//...
Regístrate para leer el documento completo.