Constructores
Un punto clave de la Programación Orientada Objetos es el evitar información incorrecta por no
haber sido correctamente inicializadas las variables. Java no permite que haya variables miembro
que no estén inicializadas2. Ya se ha dicho que Java inicializa siempre con valores por defecto las
variables miembro de clases y objetos.
El segundo paso en la inicialización conecta de objetos es el
uso de constructores.
Un constructor es un método que se llama automáticamente cada vez que se crea un objeto de
una clase. La principal misión del constructor es reservar memoria e inicializar las variables
miembro de la clase.
Los constructores no tienen valor de retomo (ni siquiera void) y su nombre es el mismo que
el de la clase. Su argumento implícito es el objeto que se está creando.
De ordinario una clase tiene varios constructores. que se diferencian por el tipo y número de
sus argumentos (son un ejemplo típico de métodos sobrecargados). Se llama constructor por
defecto al constructor que no tiene argumentos.
El programador debe proporcionar en el código
valores iniciales adecuados para todas las variables miembro.
Un constructor de una clase puede llamar a otro constructor previamente definido en la
misma clase por medio de la palabra this.
En este contexto, la palabra this sólo puede aparecer en la
primera sentencia de un constructor.
El constructor de una sub-clase puede llamar al constructor de su super-clase por medio de la
palabra super. seguida de los argumentos apropiados entre paréntesis. De esta forma, un constructor
sólo tiene que inicializar por sí mismo las variables no heredadas.
Al igual que los demás métodos de una clase, los constructores pueden tener también los
modificadores de acceso public. prívate, protected y package. Si un constructor es prívate. ninguna
otra clase puede crear un objeto de esa clase. En este caso, puede haber métodos public y static
(factory methods) que llamen al constructor y devuelvan un objeto de esa clase.
Dentro de una clase, los constructores sólo pueden ser llamados por otros constructores o por
métodos static. No pueden ser llamados por los métodos de objeto de la clase.
No hay comentarios:
Publicar un comentario