Saltar a contenido

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.