En Java existen 4 modificadores de acceso pero solo se pueden declarar explicitamente 3.
Los modificadores de acceso en orden de restricción en Java son:
private : Es el modificador de acceso mas restrictivo en Java solo es posible acceder a los metodos o variables desde su misma clase.
default : Este modificador de acceso es algo especial ya que no tiene una palabra reservada para declararse, es decir al declarar una variable o método sin algún modificador de acceso como
private
,protected
opublic
, el modificador de acceso de ese método o variable sera default, este modificador de acceso también es llamado package , por ejemplo :
String variableDefault;
private String variableNoDefault;
Este modificador de acceso solamente permitirá a clases que están dentro de su mismo paquete acceder a sus metodos y variables.
protected : El modificador de acceso
protected
indica que los elementos sólo pueden ser accedidos desde su mismo paquete y desde cualquier clase que herede de la clase en que se encuentra declarado el método o variable comoprotected
, esto quiere decir que si una clase quiere acceder a un método o variable marcado comoprotected
deberá heredar de esa clase o moverse a su mismo paquete si es que no se encuentra.public : El modificador de acceso publico indica que será posible acceder al recurso (que se encuentre marcado como
public
) desde cualquier clase o método sin importar el paquete.
Aquí una tabla sencilla para ejemplificar(de menos restrictivo al mas restrictivo):
Modificador de acceso |
clase |
Paquete |
Subclase |
Todos |
public |
Sí |
Sí |
Sí |
Sí |
protected |
Sí |
Sí |
Sí |
No |
Default / No especificado / Package |
Sí |
Sí |
No |
No |
private |
Sí |
No |
No |
No |
Se que es un tema sencillo y algo corto, pero es muy importante saber que existen 4 modificadores de acceso en Java y cuales son las diferencias entre ellos, ya que a simple vista(por así decirlo) pareciera que existen solo 3, este es un tema de la certificación.