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]);
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 ();