Cuando se efectúa un llamado un método, se pasa en forma automática un argumento implícito que es una referencia al objeto invocado. A esta referencia se la conocen en Java como this

En el siguiente ejemplo se puede ver a this en un programa.

//Un ejemplo del uso de this
class Potencia {
        double b;
        int e;
        double valor;
        Potencia(double base, int exp){
            b=base;
            e=exp;
            valor=1;
            if (exp==0) return;
            for ( ; exp>0; exp--) valor = valor * base;
        }
         double get_potencia(){
            return valor;
    }
}
class DemoPotencia {
    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.get_potencia());
        System.out.println(y.b+ " elevado a la potencia de "+ y.e+", es igual a: "+y.get_potencia());
        System.out.println(z.b+ " elevado a la potencia de "+ z.e+", es igual a: "+z.get_potencia());
    }
}

Salida del programa:

4.0 elevado a la potencia de 2, es igual a: 16.0
2.5 elevado a la potencia de 1, es igual a: 2.5
2.7 elevado a la potencia de 2, es igual a: 7.290000000000001

¿Cómo usar de this en Java?

Desde dentro de un método, se puede acceder en forma directa a los otros miembros de una clase, sin ningún objeto o calificación de clase. 

Así, dentro de get_potencia(), la declaración return valor; implica que estaría devolviendo la copia del valor asociado con el objeto invocado. No obstante, la misma declaración también se puede escribir así:

return this.valor;

Aquí, this se refiere al objeto sobre el que se llamó get_potencia(). El this.valor se refiere a la copia del valor de ese objeto. A continuación se muestra toda la clase Potencia escrita usando la referencia this:

class Potencia {
        double b;
        int e;
        double valor;
        Potencia(double base, int exp){
            this.b=base;
            this.e=exp;
            this.valor=1;
            if (exp==0) return;
            for ( ; exp>0; exp--) this.valor = this.valor * base;
        }
         double get_potencia(){
            return this.valor;
    }
}

En esta versión del programa, los nombres de los parámetros son los mismos que los nombres de las variables de instancia, de modo que, los ocultan. Pero, this se usa para “descubrir” las variables de instancia.

Uso de this como referencia en Java

En este programa puede verse claramente el uso de la palabra clave this para actuar como referencia de variables de instancia de la clase actual.

//Código Java sobre el uso de la palabra clave 'this' para
//referir las variables de instancia de la clase actual
class Test
{
    int a;
    int b;
     
    // Constructor parametrizado
    Test(int a, int b)
    {
        this.a = a;
        this.b = b;
    }
 
    void display()
    {
        //Visualización del valor de las variables a y b
        System.out.println("a = " + a + "  b = " + b);
    }
 
    public static void main(String[] args)
    {
        Test object = new Test(10, 20);
        object.display();
    }
}

Salida:

a = 10 b = 20
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: