Java - This y Super

   
Vista:

This y Super

Publicado por Miguel (26 intervenciones) el 20/09/2007 12:18:39
Hola amigos,
Una duda típica y que siempre se me olvida, el this con las variables locales a la clase si lo he usado mucho, pero cuando me encuentro This() a secas, ya me lio totalmente, y el super() creo que llama al constructor de la clase de la que extiende la mia, pero no se exactamente para que.

Gracias.
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:This y Super

Publicado por angel (537 intervenciones) el 20/09/2007 15:28:20
Bueno, un pequeño resumen...

this(); --> hace una llamada al construtor sin parametros de una clase. Lo sueles encontrar en constructores que reciben parametros.Debe ser la primera sentencia en dicho constructor.

super() --> hace una llamada a la clase padre de una clase. Aunque no lo veas, el compilador inserta esa linea en tu construtor sin parametros en el momento de compilar (o eso creo recordar). Toda clase, excepto Object (que es la clase principal) tiene esta llamada insertada en sus constructores, ya que para ejecutar el constructor de una clase, antes se ejecutan todos los constructores de las clases superiores.

Saludos.
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:This y Super

Publicado por Victor Oliva (66 intervenciones) el 20/09/2007 17:26:50
Hola Miguel,

this y super son 2 variables que se encuentran en todos los objetos Java. Desconozco si la variable super existira en la clase Object.

"this" es una variable que hace referencia a la clase actual. Ejemplo:

class Auto {
private String color;

public Auto(String color){
this.color = color;
}
}

Si te das cuenta en el ejemplo anterior esta la variable de clase color, pero en el constructor esta la variable de metodo color. Entonces para diferenciar que ocuparas la variable de clase ocupas this que , como te lo dije antes, hace referencia a la clase.
Tambien puedes ocupar el this para llamar a metodos de la misma clase. Ejemplo:

// Es parte de la clase Auto de arriba
public boolean compararColores (String color){
return this.color.equals(color);
}

public void ejemplo (String c){
//aqui llamamos a la clase del mismo método.
this.compararColores(c);
}

Con "super", pasa exactamente lo mismo. Pero "super" hace referencia al padre del objeto instanciado.
Por eso siempre en conveniente hacer una clase java y agregar el constructor de parametros vacios. y dentro del colocar como primera linea "super()".

Ejemplo

class Auto{
public Auto(){
super();
}
}

Espero que mi explicacion te sirva de explicacion.
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