java this keyword tutorial with code examples
Acest tutorial explică un cuvânt cheie special „acesta” în Java în detaliu cu exemple de cod simplu. Acoperă cum, când și unde să se utilizeze cuvântul cheie „acesta”:
În acest tutorial, am introdus unul dintre conceptele importante în Java - cuvântul cheie „acest”. Vom explora detaliile cuvântului cheie „acest” și vom prezenta, de asemenea, câteva exemple de utilizare a acestuia în Java.
Cuvântul cheie „acesta” în Java este o variabilă de referință. Variabila de referință „aceasta” indică obiectul curent din programul Java . Prin urmare, dacă doriți să accesați orice membru sau funcție a obiectului curent, atunci puteți face acest lucru utilizând referința „aceasta”.
Ce veți învăța:
- Java „aceasta” Introducere
- Când se folosește „asta” în Java?
- Variabilă de instanță de acces utilizând „aceasta”
- „Acest” a trecut ca parametru al metodei
- Invocați metoda curentă a clasei cu „aceasta”
- Reveniți cu „asta”
- Folosind „acest lucru” pentru a invoca actualul constructor de clasă
- Folosind „acest lucru” ca argument pentru constructor
- întrebări frecvente
- Concluzie
Java „aceasta” Introducere
Referința „acesta” este în general denumită „acest indicator”, în timp ce indică obiectul curent. „Acest indicator” este util atunci când există un anumit nume pentru atributele și parametrii clasei. Când apare o astfel de situație, „acest pointer” elimină confuzia, deoarece putem accesa parametrii folosind pointerul „acest”.
În acest tutorial, vom discuta despre utilizarea acestui indicator în diferite situații, împreună cu exemple.
Când se folosește „asta” în Java?
În Java, termenul „acesta” are următoarele utilizări:
- Referința „aceasta” este utilizată pentru a accesa variabila instanță a clasei.
- Puteți chiar să treceți „acest lucru” ca argument în apelul metodei.
- „Acest lucru” poate fi folosit și pentru a invoca implicit metoda clasei curente.
- Dacă doriți să returnați obiectul curent din metodă, atunci utilizați „aceasta”.
- Dacă doriți să invocați actualul constructor de clasă, se poate utiliza „aceasta”.
- Constructorul poate avea, de asemenea, „acest lucru” ca argument.
Să analizăm acum fiecare dintre aceste utilizări separat.
Variabilă de instanță de acces utilizând „aceasta”
Variabilele de instanță ale parametrilor clasei și metodei pot avea același nume. Indicatorul „acest” poate fi folosit pentru a elimina ambiguitatea care apare din aceasta.
Programul Java de mai jos demonstrează modul în care „acesta” poate fi utilizat pentru a accesa variabilele de instanță.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
Ieșire:
În programul de mai sus, puteți vedea că variabilele de instanță și parametrii metodei au aceleași nume. Folosim indicatorul „acesta” cu variabile de instanță pentru a face diferența între variabilele de instanță și parametrii metodei.
„Acest” a trecut ca parametru al metodei
De asemenea, puteți trece acest pointer ca parametru de metodă. Trecerea acestui indicator ca parametru de metodă este de obicei necesară atunci când aveți de-a face cu evenimente. De exemplu, să presupunem că doriți să declanșați un eveniment pe obiectul / mânerul curent, atunci trebuie să îl declanșați folosind acest indicator.
Dat mai jos este o expoziție de programare în care am trecut acest pointer la metodă.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
Ieșire:
În acest program, creăm un obiect din clasa Test_method în funcția principală și apoi apelăm metoda get () cu acest obiect. În interiorul metodei get (), indicatorul „acest” este trecut la metoda printVal () care afișează variabilele de instanță curente.
Invocați metoda curentă a clasei cu „aceasta”
Așa cum puteți trece „acest” indicator către metodă, puteți utiliza și acest indicator pentru a invoca o metodă. Dacă uitați să includeți acest indicator în timp ce invocați metoda clasei curente, atunci compilatorul îl adaugă pentru dvs.
Un exemplu de invocare a metodei clasei cu „aceasta” este dat mai jos.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
Ieșire:
În acest program, metoda clasei print () apelează metoda show () folosind acest pointer atunci când este invocată de obiectul clasei din funcția principală.
Reveniți cu „asta”
Dacă tipul returnat al metodei face obiectul clasei curente, atunci puteți întoarce în mod convenabil indicatorul „acest”. Cu alte cuvinte, puteți returna obiectul curent dintr-o metodă folosind indicatorul „acest”.
Mai jos este implementarea returnării unui obiect folosind indicatorul „acest”.
întrebări și răspunsuri la interviu comportamental pentru analist de afaceri
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
Ieșire:
Programul de mai sus arată metoda get () care returnează acest lucru care este un obiect al clasei Test_this. Folosind obiectul curent returnat de metoda get (), se afișează la rândul său afișarea metodei.
Folosind „acest lucru” pentru a invoca actualul constructor de clasă
De asemenea, puteți utiliza indicatorul „acest” pentru a invoca constructorul cla.ss. curent. Ideea de bază este reutilizarea constructorului. Din nou, dacă aveți mai mulți constructori în clasa dvs., atunci puteți apela acești constructori unul de la altul, rezultând înlănțuirea constructorului.
Luați în considerare următorul program Java.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
Ieșire:
În programul de mai sus, avem doi constructori în clasă. Îl numim pe celălalt constructor folosind indicatorul „acest”, din constructorul implicit al clasei.
Folosind „acest lucru” ca argument pentru constructor
De asemenea, puteți transmite „acest” indicator ca argument către un constructor. Acest lucru este mai util atunci când aveți mai multe clase așa cum se arată în următoarea implementare.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
Ieșire:
Așa cum se arată în implementarea de mai sus, avem două clase și fiecare constructor de clasă apelează constructorul celeilalte clase. Indicatorul „acest” este utilizat în acest scop.
întrebări frecvente
Q # 1) Care este diferența dintre aceasta și aceasta () în Java?
Răspuns: În Java, acest lucru se referă la obiectul curent în timp ce acesta () se referă la constructorul cu parametri care se potrivesc. Cuvântul cheie „acesta” funcționează numai cu obiecte. Apelul „this ()” este folosit pentru a apela mai mulți constructori din aceeași clasă.
Q # 2) Este necesar acest cuvânt cheie în Java?
Răspuns: Este necesar mai ales atunci când trebuie să treceți obiectul curent de la o metodă la alta sau între constructori sau pur și simplu să folosiți obiectul curent pentru alte operații.
Q # 3) Care este diferența dintre acest () și super () în Java?
Răspuns: Atât acesta (), cât și super () sunt cuvinte cheie în Java. În timp ce acesta () reprezintă constructorul obiectului curent cu parametri care se potrivesc, super () reprezintă constructorul clasei părinte.
Q # 4) Puteți utiliza atât acest (), cât și super () într-un constructor?
Răspuns: Da, îl puteți folosi. Constructorul this () va indica constructorul curent în timp ce super () va indica constructorul clasei părinte. Amintiți-vă că atât acest (), cât și super () ar trebui să fie prima afirmație.
Concluzie
Cuvântul cheie „acesta” este o referință la obiectul curent din programul Java. Poate fi folosit pentru a evita confuzia rezultată din aceleași nume pentru variabilele de clasă (variabile de instanță) și parametrii metodei.
Puteți utiliza indicatorul „acest” în multe moduri, cum ar fi accesarea variabilelor de instanță, transmiterea argumentelor către metodă sau constructor, returnarea obiectului, etc. Indicatorul „acesta” este un cuvânt cheie important în Java și este o caracteristică utilă pentru accesarea obiectului curent și membrii și funcțiile sale.
Sperăm că ați urmărit utilizarea cuvântului cheie „acest” în Java din acest tutorial.
Lectură recomandată
- Tutorial JAVA pentru începători: peste 100 de cursuri video Java practice
- Tutorial de reflecție Java cu exemple
- Tutorial de gestionare a excepțiilor C # cu exemple de cod
- Tutorial Python DateTime cu exemple
- C # Funcții / Metode Tutorial cu exemple de cod
- Tutorial Java SWING: Container, componente și gestionarea evenimentelor
- Tutorial Java Collections Framework (JCF)
- Interfață Java și tutorial de clasă abstractă cu exemple