Buscar este blog

jueves, 6 de mayo de 2010

Modificadores de métodos y variables

El primer tipo de modificadores son los modificadores de visibilidad; éstos permiten indicar quién podrá ver y acceder a un método o un atributo de una clase. Éstos son los modificadores que debemos emplear para determinar cuál es la parte pública de nuestros objetos (la parte que va a ser accesible por los demás) y cuál es la parte privada (la parte que son detalles de implementación y que no queremos exponer). Estos modificadores son los mismos tanto para variables como para métodos y son:
  • public: puede acceder todo el mundo a la variable o método. Por norma general, las variables nunca son públicas; las variables siempre suelen considerarse detalles de implementación. La parte pública de una clase suele estar constituida por métodos y constructores.
  • Ninguno: “amistosa”, el atributo o método es accesible por cualquier miembro del paquete (package), pero no por otras clases que pertenezcan a otro paquete distinto. 
  • protected: el atributo o método es accesible por las clases hijas de la clase que posee la variable y por las que estén en el mismo paquete.
  • private: nadie salvo la clase misma puede acceder a estas variables o métodos. Debemos tener en cuenta que podrán acceder a ellos todas las instancias de la clase. Por norma general, todas las variables de la clase deben ser privadas. También es frecuente que en una clase haya métodos privados, métodos que suelen ser auxiliares para otros métodos públicos que componen la interfaz de la clase pero cuya funcionalidad no se quiere exponer.
En el caso de atributos, además del modificador de visibilidad, podemos especificar los modificadores:
  • static: la variable atributo es la misma para todas las instancias de una clase: todas comparten ese dato. Si una instancia lo modifica todas ven dicha modificación. Las variables estáticas son equivalentes a las variables de la programación estructurada: definir la variable estática significa tener una única variable estática, mientras que definir la variable no estática significa tener una variable por cada objeto que se cree a partir de la clase.
  • final: se emplea para definir constantes: un dato tipo final no puede variar nunca su valor. La variable no tiene porque inicializarse en el momento de definirse, pero cuando se inicializa ya no puede cambiar su valor.
Los métodos también pueden llevar el modificador static o final , aunque en este caso su significado es distinto:
  • static: es un método al cual se puede invocar sin crear ningún objeto de dicha clase. Math.sin() y Math.cos() son dos ejemplos de métodos estáticos. Los métodos estáticos son equivalentes a las funciones de la programación estructurada. Desde un método estático sólo podemos invocar otros métodos que también sean estáticos, y sólo podemos acceder a atributos de la clase que sean estáticos.
  • final: si un método es final no podrá ser cambiado por ninguna clase que herede de la clase donde se definió. Es un método que no se puede sobrescribir.


No hay comentarios:

Publicar un comentario