Java - constructor de clase

   
Vista:

constructor de clase

Publicado por ilyass (1 intervención) el 20/01/2010 11:54:32
Hola a todos soy nuevo en java y quiero aclarar una duda que es la siguiente.

cuando se declara un objeto de una clase ej (Miclase obj1) esto quiere decir que es una referencia (obj1 apunta a null)?
y cuando se hace obj1=new Miclase() aquie es donde se esta llamando al constructor de la clase?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:constructor de clase

Publicado por Frank (55 intervenciones) el 20/01/2010 16:53:10
HOLA

Bueno, cuando dice obj1=new Miclase(); estas creando el objeto, tambien estas llamando al metodo constructor siempre y cuando la clase Miclase tenga un metodo constructor, porque aveces hay clases que no tienen constructor y cuando se crea el objeto pues no se llama a nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:constructor de clase

Publicado por Netroom (1 intervención) el 19/03/2010 20:06:27
Miclase obj1; Por sí mismo no significa nada más que estás declarando el tipo, es decir, que la referencia obj1 apuntará a un objeto de la clase Miclase, pero no estás haciendo que la referencia sea nula. En realidad, esa referencia TODAVIA NO EXISTE. Existe cuando realices la primera asignación.

Si quieres haces que obj1 apunte a null tendrás que hacer un:

Miclase obj1 = null;

Si tratas de observar obj1 antes de asignar ningun valor saltará un error en tiempo de compilación, ejemplo:

public class MiClase {}
public class Prueba {
private Prueba(); // No permitimos objetos de esta clase
public static void main (String args[]) {
MiClase obj1;
System.out.println(obj1);
}
}

Ese código que te muestro ahi: NO ES COMPILABLE. Pues intentamos acceder a un objeto que en realidad no existe. Tendrías que asignarle valor, aunque sea null.

public class MiClase {}
public class Prueba {
private Prueba(); // No permitimos objetos de esta clase
public static void main (String args[]) {
MiClase obj1 = null;
System.out.println(obj1);
}
}

Respuesta por pantalla: (null)

La operación MiClase obj1 = new MiClase(); suponiendo que existe el constructor MiClase() { } en la clase MiClase (Si creas un constructor con más parámetros, este ya no se crea por efecto). Realiza las siguientes operaciones:

1) Especifica, declara que obj1 será una referencia a un objeto de la clase MiClase

2) "new" (Equivalente al malloc de c, en su primera parte) Reserva en la memoria heap del programa el espacio necesario para todos los atributos que tienen los objetos de la clase MiClase (Los no static) y además (cosa que no hace "malloc" de C) les coloca el valor predeterminado 'null', '\0', 0x0 ó false.

3) MiClase(), sobre la dirección de memoria que apunta a nuestro objeto recien creado (La cual asociamos en el constructor como 'this' o simplemente no poniendo nada), ejecutamos las acciones programadas en nuestro constructor

Espero haberte ayudado! ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar