Paquetes y Modificadores de acceso
|
Control de acceso a miembros de una clase
Los modificadores más importantes desde el punto de vista del diseño
de clases y objetos, son los que permiten controlar la visibilidad
y acceso a los métodos y variables que están dentro de una clase.
Uno de los beneficios de las clases, es que pueden proteger a sus variables
y métodos (tanto de instancia como de clase) del acceso desde otras clases.
Java soporta cuatro niveles de acceso a variables y métodos. En orden, del más
público al menos público son: público (public), protegido (protected),
sin modificador (también conocido como package) y privado (private).
La siguiente tabla muestra el nivel de acceso permitido por cada modificador:
|
public |
protected |
(sin modificador) |
private |
Clase |
SI |
SI |
SI |
SI |
Subclase en el mismo paquete |
SI |
SI |
SI |
NO |
No-Subclase en el mismo paquete |
SI |
SI |
SI |
NO |
Subclase en diferente paquete |
SI |
SI/NO (*) |
NO |
NO |
No-Subclase en diferente paquete (Universo) |
SI |
NO |
NO |
NO |
(*) Los miembros (variables y metodos) de clase (static) si son visibles. Los miembros de
instancia no son visibles.
Como se observa de la tabla anterior, una clase se ve a ella misma todo tipo de variables y métodos
(desde los public hasta los private); las demas clases del mismo paquete (ya sean subclases o no) tienen
acceso a los miembros desde los public hasta los sin-modificador. Las subclases de otros paquetes pueden
ver los miembros public y a los miembros protected, éstos últimos siempre que sean static ya
de no ser así no serán visibles en la subclase (Esto se explica en la siguiente página).
El resto del universo de clases (que no sean ni del mismo paquete ni subclases) pueden ver sólo los
miembros public.
|