Questa parola chiave in Java: cos'è & Come usare con Example

Sommario:

Anonim

Qual è questa parola chiave in Java?

questa parola chiave in Java è una variabile di riferimento che fa riferimento all'oggetto corrente di un metodo o di un costruttore. Lo scopo principale dell'utilizzo di questa parola chiave in Java è rimuovere la confusione tra attributi di classe e parametri che hanno lo stesso nome.

Di seguito sono riportati vari utilizzi della parola chiave "this" in Java:

  • Può essere utilizzato per fare riferimento alla variabile di istanza della classe corrente
  • Può essere utilizzato per richiamare o avviare il costruttore della classe corrente
  • Può essere passato come argomento nella chiamata al metodo
  • Può essere passato come argomento nella chiamata al costruttore
  • Può essere utilizzato per restituire l'istanza della classe corrente

Fare clic qui se il video non è accessibile

Comprendi la parola chiave "questa" con un esempio.

Java questa parola chiave Esempio
  1. Classe : account di classe
  2. Variabile di istanza : a e b
  3. Metodo Imposta dati : per impostare il valore per a e b.
  4. Metodo Mostra dati : per visualizzare i valori per a e b.
  5. Metodo principale: dove creiamo un oggetto per la classe Account ei metodi di chiamata impostano i dati e mostrano i dati.

Compiliamo ed eseguiamo il codice

Il nostro output atteso per A e B dovrebbe essere inizializzato sui valori 2 e 3 rispettivamente.

Ma il valore è 0, perché? Lasciati indagare.

Nel metodo Set data, gli argomenti sono dichiarati come a e b, mentre le variabili di istanza sono anche denominate come a e b.

Durante l'esecuzione, il compilatore è confuso. Se "a" sul lato sinistro dell'operatore assegnato è la variabile di istanza o la variabile locale. Quindi, non imposta il valore di "a" quando vengono chiamati i dati del set di metodi.

La soluzione è la parola chiave "questo"

Aggiungi sia "a" che "b" con la parola chiave Java this seguita da un operatore punto (.).

Durante l'esecuzione del codice quando un oggetto chiama il metodo "setdata". La parola chiave "this" è sostituita dal gestore di oggetti "obj". (Vedi l'immagine sotto).

Quindi ora il compilatore sa,

  • La "a" sul lato sinistro è una variabile di istanza.
  • Mentre la "a" sul lato destro è una variabile locale

Le variabili vengono inizializzate correttamente e viene visualizzato l'output previsto.

Supponi di essere abbastanza intelligente da scegliere nomi diversi per la variabile di istanza e gli argomenti dei metodi.

Ma questa volta crei due oggetti della classe, ognuno dei quali chiama il metodo set data.

Come il compilatore determinerà se si suppone che funzioni sulla variabile di istanza dell'oggetto 1 o dell'oggetto 2.

Bene, il compilatore aggiunge implicitamente la variabile di istanza con la parola chiave "this" (immagine sotto).

Tale che quando l'oggetto 1 chiama il metodo set data, una variabile di istanza viene aggiunta dalla sua variabile di riferimento.

Mentre l'oggetto 2 chiama il metodo dei dati impostati, una variabile di istanza dell'oggetto 2 viene modificata.

Questo processo è curato dal compilatore stesso. Non è necessario aggiungere esplicitamente la parola chiave "this" a meno che non si verifichi una situazione eccezionale come nel nostro esempio.

Esempio: per imparare la parola chiave "questo"

Passaggio 1) Copia il seguente codice in un blocco note.

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();}}

Passaggio 2) Salva, compila ed esegui il codice.
Passaggio 3) Il valore di a & b viene visualizzato come zero? Per correggere l'errore, aggiungere le righe # 6 e 7 con la parola chiave " this ".

this.a =a;this.b =b;

Passaggio 4) Salva, compila ed esegui il codice. Questa volta, i valori di a & b sono impostati rispettivamente su 2 e 3.

Sommario

  • questa parola chiave in Java è una variabile di riferimento che fa riferimento all'oggetto corrente.
  • Uno degli utilizzi di questa parola chiave in Java è fare riferimento alla variabile di istanza della classe corrente
  • Può essere utilizzato per richiamare o avviare il costruttore della classe corrente
  • Può essere passato come argomento nella chiamata al metodo
  • questo puntatore in Java può essere passato come argomento nella chiamata al costruttore
  • questo operatore in Java può essere utilizzato per restituire l'istanza della classe corrente
  • questo in Java è un riferimento all'oggetto corrente, il cui metodo viene chiamato.
  • È possibile utilizzare la parola chiave "this" per evitare conflitti di denominazione nel metodo / costruttore dell'istanza / oggetto.