ESTA palabra clave en Java con un ejemplo

¿Qué es ESTA Palabra clave en Java?

Palabra clave THIS es una variable de referencia en Java que hace referencia al objeto actual.

Los diversos usos de la palabra clave ‘THIS’ en Java son los siguientes:

  • Se puede usar para referir la variable de instancia de la clase actual
  • Se puede usar para invocar o iniciar el constructor de clase actual
  • Se puede pasar como un argumento en la llamada al método
  • Se puede pasar como argumento en la llamada de constructor
  • Se puede usar para devolver la instancia de clase actual

Comprenda esta palabra clave con un ejemplo.

  1. Clase: clase Cuenta
  2. Variable de instancia: ayb
  3. Método Establecer datos: para establecer el valor para a y b.
  4. Método Mostrar datos: Para mostrar los valores para a y b.
  5. Método principal:donde creamos un objeto para clase de Cuenta y llamamos a métodos para establecer datos y mostrar datos.

Vamos a compilar y ejecutar el código

Nuestro resultado esperado para A y B debe inicializarse a los valores 2 y 3, respectivamente.

Pero el valor es 0, ¿por qué? Deje investigar

En el método Set data, los argumentos se declaran como ayb, mientras que las variables de instancia también se nombran como a y b.

Durante la ejecución, el compilador está confundido. 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 “THIS”

Agregue tanto ‘a’ como ‘b’ con la palabra clave “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 ‘this’ se sustituye por el manejador de objetos ‘obj’. (Ver la imagen a continuación).

Entonces ahora el compilador sabe,

  • La ‘a’ en el lado izquierdo es una variable de instancia.
  • Mientras que la ‘a’ en el lado derecho es una variable local

Las variables se inicializan correctamente y se muestra el resultado esperado.

Supongamos 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 de datos del conjunto.

Cómo el compilador determinará si se supone que funciona en la variable de instancia del objeto 1 o el objeto 2.

Bueno, el compilador adjunta implícitamente la variable de instancia con la palabra clave “THIS” (imagen a continuación).

De modo que cuando el objeto 1 está llamando al método de datos establecidos, una variable de instancia se agrega por su variable de referencia.

Mientras el objeto 2 llama al método de datos establecidos, se modifica una variable de instancia del objeto 2.

El compilador se ocupa 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 a utilizar la palabra clave “this”

Paso 1) Copie el siguiente código en un bloc de notas.

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 “.

Paso 4) Guarde, compile y ejecute el código. Esta vez, los valores de a & b se establecen en 2 y 3 respectivamente.

Resumen

  • La palabra clave ‘THIS’ en Java es una variable de referencia que hace referencia al objeto actual.
  • Se puede usar para referir la variable de instancia de la clase actual
  • Se puede usar para invocar o iniciar el constructor de clase actual
  • Se puede pasar como un argumento en la llamada al método
  • Se puede pasar como argumento en la llamada de constructor
  • Se puede usar para devolver la instancia de clase actual
  • “this” es una referencia al objeto actual, cuyo método está siendo invocado.
  • Puede usar la palabra clave “this” para evitar conflictos de nombres en el método / constructor de su instancia / objeto.

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *