Encapsulamiento
Definición:
El encapsulamiento habla del modo de ocultar como ha sido implementado el estado, los atributos, de un objeto. Se accede a este estado a través de los métodos públicos, es decir su interfaz publica. Una buena práctica es hacer las validaciones correspondientes a los posibles estados del objeto, en estos métodos, de modo tal de mantener al objeto en un estado consistente.
También se lo llama “information hiding”. De la misma forma podemos respetar el encapsulamiento si se tiene, en la clase Auto, un atributo velocidad, que sea privado, el único modo de modificar la velocidad es a través de los método acelerar() y frenar(), es decir que esta encapsulada la velocidad, y solo se la puede modificar por los métodos acelerar() y frenar(), no se puede cambiar la velocidad de ninguna otra forma.
Ejemplo en Java:
public class Persona{
//Atributos
prívate int altura;
//Métodos
public int getAltura(){
return this.Altura;
}
public void setAltura(int unaAltura){
this.altura = unaAltura;
}
}
Métodos de acceso
Los métodos de acceso son el medio de acceder a los atributos privados del objeto. Son métodos públicos del objeto.
-El getter:
El método para acceder a los atributos en forma de solo lectura se los denomina “getters”. Son los métodos que retornan el valor de los atributos. El NetBeans, como la mayoría de los entornos de desarrollo, permite generarlos de forma automática.
-El setter:
El método para acceder a los atributos en forma de escritura se los denomina “setters”. Son los métodos que establecen el valor de los atributos. Tambien se los genera de forma automática en los entornos de desarrollo
Definición:
El encapsulamiento habla del modo de ocultar como ha sido implementado el estado, los atributos, de un objeto. Se accede a este estado a través de los métodos públicos, es decir su interfaz publica. Una buena práctica es hacer las validaciones correspondientes a los posibles estados del objeto, en estos métodos, de modo tal de mantener al objeto en un estado consistente.
También se lo llama “information hiding”. De la misma forma podemos respetar el encapsulamiento si se tiene, en la clase Auto, un atributo velocidad, que sea privado, el único modo de modificar la velocidad es a través de los método acelerar() y frenar(), es decir que esta encapsulada la velocidad, y solo se la puede modificar por los métodos acelerar() y frenar(), no se puede cambiar la velocidad de ninguna otra forma.
Ejemplo en Java:
public class Persona{
//Atributos
prívate int altura;
//Métodos
public int getAltura(){
return this.Altura;
}
public void setAltura(int unaAltura){
this.altura = unaAltura;
}
}
Métodos de acceso
Los métodos de acceso son el medio de acceder a los atributos privados del objeto. Son métodos públicos del objeto.
-El getter:
El método para acceder a los atributos en forma de solo lectura se los denomina “getters”. Son los métodos que retornan el valor de los atributos. El NetBeans, como la mayoría de los entornos de desarrollo, permite generarlos de forma automática.
-El setter:
El método para acceder a los atributos en forma de escritura se los denomina “setters”. Son los métodos que establecen el valor de los atributos. Tambien se los genera de forma automática en los entornos de desarrollo
Persona
|
- altura: int
|
+getAltura() : int
+setAltura(int) : void
|
Gracias por la valiosa información, me sirvió de mucho.
ResponderEliminarguau
ResponderEliminarhola amigo jajaja xd
EliminarQué ocurre si es private o protected el método/atributo? las subclases pueden acceder a éstos?
ResponderEliminarBuena información.
Si es private, las subclases no pueden acceder, en cambio, si son protected sí. Este último tiene que ver con la herencia, así que supongo que tiene que tener acceso. Saludos.
EliminarCreo que la forma correcta del ejemplo de la Clase sería así:
ResponderEliminarpublic class Persona{
//Atributos
private int altura;
//Métodos
public int getAltura(){
return altura;
}
public void setAltura(int unaAltura){
altura = unaAltura;
}
}
No hace falta usar los "this" ya que en el primer método simplemente te refieres al retorno del valor del atributo, y en el segundo método, tanto el parámetro como al atributo tienen nombres diferentes, por lo que pierde sentido el "this.altura". Además en el primer método debes retornar "altura" sin mayúscula, ya que no te referirías al mismo atributo que has declarado.