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 inicializadas. 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 correcta de objetos es el uso de constructores de java.
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; para desarrollar y manipular los constructores recomendamos este curso java presencial y 100% práctico.
Los constructores de java no tienen valor de retorno (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; para conocer este funcionamiento de los
constructores recomendamos este
curso de java
donde aprenderás de la mano de un experto.
El constructor es tan importante que, si el programador no prepara ningún constructor para una clase, el compilador crea un constructor por defecto, inicializando las variables de los tipos primitivos a su valor por defecto, y los Strings y las demás referencias a objetos a null. Si hace falta, se llama al constructor de la super-clase para que inicialice las variables heredadas.
Al igual que los demás métodos de una clase, los constructores pueden tener también los modificadores de acceso public, private,
protected y package. Si un constructor es private, 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.
public: indica que es un método accesible a través de una instancia del objeto.
private: indica que a través de una instancia no es accesible el método. Al heredar el método se convierte en inaccesible.
protected: indica que a través de una instancia no es accesible el método. Al heredar si se puede usar desde la clase derivada.
Sin especificar: indica visibilidad de paquete, se puede acceder a través de una instancia, pero sólo de clases que se encuentren en el mismo paquete.
La cláusula opcional throws es empleada para indicar que dentro del método se pueden generar errores en su
ejecución, y que debemos estar preparados para tratarlos.
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.
Diseño de paginas Web Grupo Codesi