viernes 18 de enero de 2008

this y super

this


Cuando nosotros queremos referirnos a los miembros de la propia clase debemos utilizar la palabra reservada “this”, ¿Qué es esto? Es mas fácil explicarlo con ejemplo, ósea cuando nosotros queremos que una variable tome un valor el cual nos vamos a referir mediante la misma variable, ya sea esto:


int numero = 1;

this.numero = numero;


lo que le estamos diciendo a nuestra aplicación es que la variable numero, tome el valor de numero en este caso es 1, si le cambiamos el valor a 5, por ejemplo, la variable va a tomar el valor 5. ¿Para que sirve esto?, esto lo utilizamos comúnmente cuando debemos ocupar un constructor y le va llegar un parámetro, por ende le decimos a nuestro constructor que la variable que tome el valor que le llegue, ya sea por teclado o si esta asignada.


Veamos un ejemplo:


class miVariable

{

miVariable(int numero) {

this.numero = numero;

}

}


En este caso lo que estoy diciendo con la palabra this es que haga referencia a la variable numero, esto siempre es cuando se hace referencia a los miembros de la propia clase como dice en muchas otras paginas de cursos de Java.


super


la palabra clave super se utiliza cuando nosotros trabajamos en una subclase, ósea estamos implementando herencia en java. Cuando ocupamos herencia, valga la redundancia, heredamos todo lo de la clase padre, por ende en nuestro constructor de la subclase tenemos que inicializar las variables de esta misma, más los que heredamos. Esto se hace a través de la palabra reservada “super”, para este funcionamiento veamos el siguiente código:


// En la clase madre por ejemplo tenemos una variable int contador.

public class Hija extends Madre

{

Hija(int contador, double dolar, String saludo)

{

super(contador);

this.dolar = dolar;

this.saludo = saludo;

}

}


Bien, aquí cree mi clase hija donde escribí su constructor con tres parámetros, los cuales uno lo herede de la clase madre y los otros dos que son dólar y saludo pertenecen solamente a la clase hija. Como pudieron ver la forma para inicializar la variable que herede tuve que aplicar la variable especial “super”.



Descargar: Video instructivo de this y super.