Ce este acest cuvânt cheie în Java?
acest cuvânt cheie în Java este o variabilă de referință care se referă la obiectul curent al unei metode sau al unui constructor. Scopul principal al utilizării acestui cuvânt cheie în Java este de a elimina confuzia dintre atributele clasei și parametrii care au aceleași nume.
Următoarele sunt diferite utilizări ale cuvântului cheie „acest” în Java:
- Poate fi folosit pentru a referi variabila de instanță a clasei curente
- Poate fi folosit pentru a invoca sau iniția constructorul curent de clase
- Poate fi transmis ca argument în apelul metodei
- Poate fi transmis ca argument în apelul constructor
- Poate fi folosit pentru a returna instanța curentă a clasei
Faceți clic aici dacă videoclipul nu este accesibil
Înțelegeți „acest” cuvânt cheie cu un exemplu.
- Clasa : Contul clasei
- Variabila de instanță : a și b
- Date set metode : Pentru a seta valoarea pentru a și b.
- Metodă Afișare date : Pentru a afișa valorile pentru a și b.
- Metoda principală: unde creăm un obiect pentru clasa de cont și metodele de apel setăm date și afișăm date.
Să compilăm și să rulăm codul
Rezultatul nostru așteptat pentru A și B ar trebui inițializat la valorile 2 și respectiv 3.
Dar valoarea este 0, de ce? Să investigăm.
În metoda Set date, argumentele sunt declarate ca a și b, în timp ce variabilele de instanță sunt denumite și ca a și b.
În timpul execuției, compilatorul este confuz. Dacă „a” din partea stângă a operatorului atribuit este variabila de instanță sau variabila locală. Prin urmare, nu setează valoarea „a” când se apelează datele setului de metode.
Soluția este cuvântul cheie „acesta”
Adăugați atât „a”, cât și „b” cu acest cuvânt cheie Java urmat de un operator punct (.).
În timpul executării codului când un obiect apelează metoda „setdata”. Cuvântul cheie „acesta” este înlocuit cu gestionarul de obiecte „obj”. (Vezi imaginea de mai jos).
Deci acum compilatorul știe,
- „A” din partea stângă este o variabilă de instanță.
- În timp ce „a” din partea dreaptă este o variabilă locală
Variabilele sunt inițializate corect și rezultatul așteptat este afișat.
Să presupunem că sunteți suficient de inteligent pentru a alege nume diferite pentru variabila de instanță și argumentele metodelor.
Dar de data aceasta, creați două obiecte ale clasei, fiecare apelând metoda setată de date.
Modul în care compilatorul va determina dacă ar trebui să funcționeze pe variabila de instanță a obiectului 1 sau a obiectului 2.
Ei bine, compilatorul adaugă implicit variabila de instanță cu cuvântul cheie „acest” (imaginea de mai jos).
Astfel încât atunci când obiectul 1 apelează metoda setată de date, o variabilă de instanță este adăugată de variabila sa de referință.
În timp ce obiectul 2 apelează metoda setată de date, o variabilă de instanță a obiectului 2 este modificată.
Acest proces este îngrijit chiar de compilator. Nu trebuie să adăugați „acest” cuvânt cheie în mod explicit, cu excepția cazului în care există o situație excepțională ca în exemplul nostru.
Exemplu: Pentru a afla cum să folosiți cuvântul cheie „acest”
Pasul 1) Copiați următorul cod într-un blocnotes.
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();}}
Pasul 2) Salvați, compilați și rulați codul.
Pasul 3) Valoarea lui a & b este afișată ca zero? Pentru a corecta eroarea, adăugați rândurile # 6 și 7 cu cuvântul cheie „ acest ”.
this.a =a;this.b =b;
Pasul 4) Salvați, compilați și rulați codul. De data aceasta, valorile lui a & b sunt setate la 2 și respectiv 3.
rezumat
- acest cuvânt cheie în Java este o variabilă de referință care se referă la obiectul curent.
- Una dintre utilizarea acestui cuvânt cheie în Java este de a face referire la variabila curentă de instanță a clasei
- Poate fi folosit pentru a invoca sau iniția constructorul curent de clase
- Poate fi transmis ca argument în apelul metodei
- acest indicator în Java poate fi transmis ca argument în apelul constructor
- acest operator din Java poate fi folosit pentru a returna instanța curentă a clasei
- aceasta în Java este o referință la obiectul curent, a cărui metodă este apelată.
- Puteți utiliza cuvântul cheie „acest” pentru a evita conflictele de denumire în metoda / constructorul instanței / obiectului dvs.