¿Qué es esta palabra clave en Java?
esta palabra clave en Java es una variable de referencia que se refiere al objeto actual de un método o un constructor. El propósito principal de usar esta palabra clave en Java es eliminar la confusión entre los atributos de clase y los parámetros que tienen los mismos nombres.
A continuación se muestran varios usos de la palabra clave 'this' en Java:
- Se puede utilizar para hacer referencia a la variable de instancia de la clase actual
- Se puede usar para invocar o iniciar el constructor de la clase actual.
- Se puede pasar como argumento en la llamada al método.
- Se puede pasar como argumento en la llamada al constructor.
- Se puede usar para devolver la instancia de clase actual.
Haga clic aquí si el video no es accesible
Comprenda la palabra clave "esta" con un ejemplo.
- Clase : cuenta de clase
- Variable de instancia : ayb
- Método Establecer datos : para establecer el valor de ay b.
- Método Mostrar datos : para mostrar los valores de ay b.
- Método principal: donde creamos un objeto para la clase Account y los métodos de llamada establecen datos y muestran datos.
Compilemos y ejecutemos el código
Nuestra salida esperada para A y B debe inicializarse a los valores 2 y 3 respectivamente.
Pero el valor es 0, ¿por qué? Dejemos investigar.
En el método Set data, los argumentos se declaran como ayb, mientras que las variables de instancia también se denominan ay b.
Durante la ejecución, el compilador se confunde. Si "a" en el lado izquierdo del operador asignado es la variable de instancia o la variable local. Por lo tanto, no establece el valor de 'a' cuando se llama a los datos del conjunto de métodos.
La solución es la palabra clave "esto".
Agregue tanto 'a' como 'b' con la palabra clave de Java this seguida de un operador de punto (.).
Durante la ejecución del código cuando un objeto llama al método 'setdata'. La palabra clave 'esto' se reemplaza por el controlador de objetos "obj". (Vea la imagen a continuación).
Entonces ahora el compilador sabe,
- La 'a' del lado izquierdo es una variable de instancia.
- Considerando que la 'a' en el lado derecho es una variable local
Las variables se inicializan correctamente y se muestra el resultado esperado.
Suponga que es lo suficientemente inteligente como para elegir diferentes nombres para su variable de instancia y argumentos de métodos.
Pero esta vez, crea dos objetos de la clase, cada uno de los cuales llama al método set data.
Cómo determinará el compilador si se supone que funciona en la variable de instancia del objeto 1 o en el objeto 2.
Bueno, el compilador agrega implícitamente la variable de instancia con la palabra clave "this" (imagen a continuación).
De tal manera que cuando el objeto 1 llama al método de datos establecidos, su variable de referencia agrega una variable de instancia.
Mientras el objeto 2 llama al método de datos establecidos, se modifica una variable de instancia del objeto 2.
El propio compilador se encarga de este proceso. No tiene que agregar 'esta' palabra clave explícitamente a menos que exista una situación excepcional como en nuestro ejemplo.
Ejemplo: para aprender el uso de "esta" palabra clave
Paso 1) Copie el siguiente código en un bloc de notas.
class Account{int a;int b;public void setData(int a ,int b){a = a;b = b;}public void showData(){System.out.println("Value of A ="+a);System.out.println("Value of B ="+b);}public static void main(String args[]){Account obj = new Account();obj.setData(2,3);obj.showData();}}
Paso 2) Guarde, compile y ejecute el código.
Paso 3) ¿El valor de a & b se muestra como cero? Para corregir el error, agregue las líneas 6 y 7 con la palabra clave " this ".
this.a =a;this.b =b;
Paso 4) Guarde, compile y ejecute el código. Esta vez, los valores de a & b se establecen en 2 y 3 respectivamente.
Resumen
- esta palabra clave en Java es una variable de referencia que se refiere al objeto actual.
- Uno de los usos de esta palabra clave en Java es hacer referencia a la variable de instancia de clase actual
- Se puede usar para invocar o iniciar el constructor de la clase actual.
- Se puede pasar como argumento en la llamada al método.
- este puntero en Java se puede pasar como argumento en la llamada al constructor
- este operador en Java se puede utilizar para devolver la instancia de clase actual
- esto en Java es una referencia al objeto actual, cuyo método está siendo llamado.
- Puede usar la palabra clave "this" para evitar conflictos de nombres en el método / constructor de su instancia / objeto.