Acceso privado, palabra clave “private”
Al definir un atributo, método o clase como privado, se le esta dando acceso solo desde la clase donde fue definido. Por ejemplo, en el caso de velocidad de un Auto:
public class Auto{
private int velocidad;
public void acelerar(){
this.velocidad += 10;
}
}
Al definir un atributo, método o clase como privado, se le esta dando acceso solo desde la clase donde fue definido. Por ejemplo, en el caso de velocidad de un Auto:
public class Auto{
private int velocidad;
public void acelerar(){
this.velocidad += 10;
}
}
Por lo tanto el único modo de acceder a modificar la velocidad es a través del método acelerar. Esta propiedad no esta accesible desde ningún otro alcance sino el de la clase.
Para poder acceder al atributo velocidad, solo podrán hacerlo los métodos de la misma clase.
Acceso por defecto, “default” o “package”
En el caso del acceso por defecto, que es el acceso cuadno no se declara la accesibilidad a un atributo, método o clase, el acceso es dentro del mismo paquete o directorio. Por ejemplo si tengo dos clases Auto y Camion, y auto tiene un conductor sin definir su accesibilidad, es decir:
package vehículos;
public class Auto extends Vehiculo{
Conductor getConductor(){
//Acá se retorna el conductor
}
}
Luego en la clase Camion que esta en el mismo package:
package vehículos;
public class Camion extends Vehiculo{
public void comunicar(Vehiculo v){
v.getConductor().conversar(); //Se tiene acceso a getConductor por estar ambas clases en el mismo package.
}
}
Para poder acceder al método getConductor() podrán hacerlo únicamente las clases ubicadas en el mismo package o directorio.
Acceso protegido, palabra clave “protected”
Al definir un atributo o método como protegido estamos dejándolo disponible para las clases que heredan de esta clase, ejemplo:
public class Vehiculo{
protected int cantidadDeRuedas = 4;
}
Luego en la clase Auto, tendremos acceso a cantidadDeRuedas:
public class Auto extends Vehiculo{
public int getCantidadDeRuedas(){
return this.cantidadDeRuedas;
}
}
Para poder acceder al atributo cantidadDeRuedas, solo podrán hacerlo las clases que heredan de Vehiculo, es decir la familia de clases.
Acceso publico, palabra clave public
Definiendo un atributo o método o clase como público permite que se tenga acceso a estos desde cualquier alcance, desde todos lados.
Acceder a los atributos públicos, todos podrán hacerlo.
Resumen de accesibilidad
Accesibilidad
|
Acceso en la misma clase
|
Acceso en el mismo package
|
Acceso en el árbol de herencia
|
Acceso desde todas las clases
|
private
|
Si
|
No
|
No
|
No
|
default o package
|
Si
|
Si
|
No
|
No
|
protected
|
Si
|
Si
|
Si
|
No
|
public
|
Si
|
Si
|
Si
|
Si
|
gracias
ResponderEliminarGracias de parte de los pibes.
ResponderEliminar