Saltar la navegación

6.2.- Creación de un objeto.

Para poder crear un objeto (instancia de una clase) es necesario utilizar el operador new, el cual tiene la siguiente sintaxis:

nombreObjeto= new <ConstructorClase> ([listaParametros]);
Conjunto de rayos de colores saliendo de un mismo punto central.
KoppCorentin (CC BY-NC-ND)

 El constructor de una clase (ConstructorClase) es un método especial que tiene toda clase y cuyo nombre coincide con el de la clase. Es quien se encarga de crear o construir el objeto, solicitando la reserva de memoria necesaria para los atributos e inicializándolos a algún valor si fuera necesario. Dado que el constructor es un método más de la clase, podrá tener también su lista de parámetros como tienen todos los métodos.

De la tarea de reservar memoria para la estructura del objeto (sus atributos más alguna otra información de carácter interno para el entorno de ejecución) se encarga el propio entorno de ejecución de Java. Es decir, que por el hecho de ejecutar un método constructor, el entorno sabrá que tiene que realizar una serie de tareas (solicitud de una zona de memoria disponible, reserva de memoria para los atributos, enlace de la variable objeto a esa zona, etc.) y se pondrá rápidamente a desempeñarlas.

Cuando escribas el código de una clase no es necesario que implementes el método constructor si no quieres hacerlo. Java se encarga de dotar de un constructor por omisión (también conocido como constructor por defecto) a toda clase. Ese constructor por omisión se ocupará exclusivamente de las tareas de reserva de memoria. Si deseas que el constructor realice otras tareas adicionales, tendrás que escribirlo tú. El constructor por omisión no tiene parámetros.

El constructor por defecto no se ve en el código de una clase. Lo incluirá el compilador de Java al compilar la clase si descubre que no se ha creado ningún método constructor para esa clase.

Algunos ejemplos de instanciación o creación de objetos podrían ser:

p1= new Punto ();

r1= new Rectangulo ();

r2= new Rectangulo;

cocheAntonio= new Coche();

palabra= String; 

En el caso de los constructores, si éstos no tienen parámetros, pueden omitirse los paréntesis vacíos.

Un objeto puede ser declarado e instanciado en la misma línea. Por ejemplo:

Punto p1= new Punto ();

Autoevaluación

Pregunta 1

Si una clase no tiene constructor porque el programador no lo ha implementado, Java se encargará de dotar a esa clase de un constructor por defecto de manera que cualquier clase instanciable siempre tendrá al menos un constructor. ¿Verdadero o falso?

Ejercicio resuelto

Ampliar el ejercicio anterior instanciando los objetos r1, r2, r3 mediante el constructor por defecto.