Está en la página 1de 2

Modificadores de acceso (public, protected y private) JAVA

Para controlar el acceso a nuestros atributos y mtodos se utilizan los modificadores de


acceso que no son ms que palabras reservadas del lenguaje que se encargarn de
controlar desde dnde sern accesibles los miembros de una clase, estos modificadores
son:

private (Acceso solo dentro de la clase)

protected (Acceso desde la clase y sus hijos "herencia")

Vaco (Sin escribir nada, denominado acceso de paquete)

public (Acceso publico desde cualquier lugar)

Estos modificadores de acceso se colocan justo delante del valor de retorno de un


mtodo, o del tipo de un atributo, as que de momento y hasta que no expliquemos el
concepto de herencia, utilizaremos los ms sencillos, private y public. A continuacin
podemos ver un ejemplo de su uso en una clase:
?
1
2
3 public class Vehiculo {
//Atributos con acceso private
4 private String modelo;
5 private int velocidad;
6 private boolean arrancado;
7 //El constructor siempre debe de ser public
8 public Vehiculo(String modelo, int velocidad, boolean arrancado) {
this.modelo = modelo;
9 this.velocidad = velocidad;
10 this.arrancado = arrancado;
11 }
12 //Atributos getter con acceso public
public String getModelo() {
13 return modelo;
14 }
15
16 public int getVelocidad() {
17 return velocidad;
18 }
19
public boolean isArrancado() {
20 return arrancado;
21 }
22}
23
24
Como vemos, hemos definido los atributos private, as nadie podr modificarlos sin
nuestro consentimiento, el constructor es public para permitir instancias de la clase
desde fuera del archivo Vehiculo.java, y los mtodos get sern tambin public, para
permitir a cualquiera consultar el valor de nuestros atributos.
Con los modificadores de acceso, evitamos que nuestros programas tengan un uso
no deseado, como modificar atributos introduciendo valores invlidos o llamando a
mtodos que pueden tener efectos no deseados.

El cuanto al modificador protected, este hace nuestro miembro (atributo o mtodo)


accesible desde la propia clase, y tambin desde las clases que hereden de esta o
subclases.

Buenas prcticas
En generar se aconseja declarar todos los atributos como private, y cuando
necesitemos consultar su valor o modificarlo, utilicemos los mtodos get y set. Adems
en caso de que el tipo de valor devuelto por el mtodo sea un boolean, se utilizar is en
vez de get. A continuacin podis ver un ejemplo donde lo veris todo ms claro:
?
1
2 //Atributos private
3 private String nombre;
4 private boolean casado;
5
6 //Metodos get y set para estos atributos
public void setNombre(String nombre) {
7 this.nombre = nombre;
8 }
9 public void setCasado(boolean casado) {
10 this.casado = casado;
}
11 public String getNombre() {
12 return nombre;
13 }
14 public boolean isCasado() {
15 return casado;
}
16
17
Como vemos los metodos setCasado y setNombre se encargan de modificar los
atributos y los mtodos getNombre y isCasado nos permiten obtener sus valores.

Recuerda que cuando utilizamos "this.nombre" nos referimos al atributo nombre de la


clase y con "nombre" nos referimos al parmetro con el mismo nombre.