viernes, 4 de mayo de 2012

Introducción a OOP(Encapsulamiento)


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

Persona
- altura: int
+getAltura() : int
+setAltura(int) : void
*Diagrama UML de la clase Persona

6 comentarios:

  1. Gracias por la valiosa información, me sirvió de mucho.

    ResponderEliminar
  2. Qué ocurre si es private o protected el método/atributo? las subclases pueden acceder a éstos?

    Buena información.

    ResponderEliminar
    Respuestas
    1. 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.

      Eliminar
  3. Creo que la forma correcta del ejemplo de la Clase sería así:

    public 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.

    ResponderEliminar