Una vez creada la referencia al objeto, debemos crear la instancia u objeto que se va a guardar en esa referencia. Para ello utilizamos la orden new con la siguiente sintaxis:
nombre_objeto = new <Constructor_de_la_Clase>([<par1>, <par2>, ..., <parN>]);
Donde:
nombre_objeto
es el nombre de la variable referencia con la cual nos referiremos al objeto,new
es el operador para crear el objeto,Constructor_de_la_Clase
es un método especial de la clase, que se llama igual que ella, y se encarga de inicializar el objeto, es decir, de dar unos valores iniciales a sus atributos, ypar1-parN
, son parámetros que puede o no necesitar el constructor para dar los valores iniciales a los atributos del objeto.
Durante la instanciación del objeto, se reserva memoria suficiente para el objeto. De esta tarea se encarga Java y juega un papel muy importante el recolector de basura, que se encarga de eliminar de la memoria los objetos no utilizados para que ésta pueda volver a ser utilizada.
De este modo, para instanciar un objeto String
, haríamos lo siguiente:
mensaje = new String;
Así estaríamos instanciando el objeto mensaje. Para ello utilizaríamos el operador new
y el constructor de la clase String
a la que pertenece el objeto según la declaración que hemos hecho en el apartado anterior. A continuación utilizamos el constructor, que se llama igual que la clase, String
.
En el ejemplo anterior el objeto se crearía con la cadena vacía (""), si queremos que tenga un contenido debemos utilizar parámetros en el constructor, así:
mensaje = new String ("El primer programa");
Java permite utilizar la clase String
como si de un tipo de dato primitivo se tratara, por eso no hace falta utilizar el operador new para instanciar un objeto de la clase String
.
La declaración e instanciación de un objeto puede realizarse en la misma instrucción, así:
String mensaje = new String ("El primer programa");
¡Esta es la forma más útil de declarar un objeto e inicializarlo. Siempre que se puede inicializar el objeto, debemos utilizar esta forma de declararlo.!