Introducción a la referencia this¶
Cuando se llama a un método, se pasa automáticamente un argumento implícito que es una referencia al objeto invocado (es decir, el objeto sobre el que se llama el método). Esta referencia se llama this
.
public class Potencia {
private double b;
private int e;
private double valor;
public Potencia(double b, int e) {
//constructor con parámetros
this.b = b;
this.e = e;
valor = 1;
if(e != 0) {
for( ; e > 0; e--)
this.valor = this.valor * b;
}
}
public double getPotencia(){
return this.valor;
}
}
public class PotenciaApp {
public static void main(String[] args) {
Potencia x = new Potencia(4.0, 2);
Potencia y = new Potencia(2.5, 1);
Potencia z = new Potencia(2.7, 2);
System.out.println(x.b + " elevado a la potencia de " + x.e + ", es igual a: " + x.getPotencia());
System.out.println(y.b + " elevado a la potencia de " + y.e + ", es igual a: " + y.getPotencia());
System.out.println(z.b + " elevado a la potencia de " + z.e + ", es igual a: " + z.getPotencia());
}
}
this
se refiere al objeto sobre el que se llamó getPotencia()
. Por lo tanto, this.valor
se refiere a la copia del valor de ese objeto. Por ejemplo, si getPotencia()
se hubiera invocado en x
, this
en la declaración anterior se habría estado refiriendo a x
. Escribir la declaración sin usar this
es solo una abreviatura.