ezt a kulcsszót Java
Miben található ez a kulcsszó? Java?
ezt a kulcsszót Java egy referenciaváltozó, amely egy metódus vagy egy konstruktor aktuális objektumára hivatkozik. A kulcsszó használatának fő célja a Java célja, hogy megszüntesse a zavart az osztályattribútumok és az azonos nevű paraméterek között.
Ennek a kulcsszónak a használata Java
Az alábbiakban bemutatjuk a „this” kulcsszó különféle felhasználásait Java:
- Használható az aktuális osztály példányváltozójának hivatkozására
- Az aktuális osztálykonstruktor meghívására vagy kezdeményezésére használható
- A metódushívásban argumentumként adható át
- A konstruktorhívásban argumentumként adható át
- Használható az aktuális osztálypéldány visszaadására
Kattints itt ha a videó nem érhető el
Ismertesse meg az „ez” kulcsszót egy példával.
- Osztály: osztály Számla
- Példányváltozó: a és b
- Módszer Adatok beállítása: A és b értékének beállítása.
- Módszer Adatok megjelenítése: A és b értékeinek megjelenítése.
- Fő módszer: ahol létrehozunk egy objektumot az Account osztályhoz és a metódusok hívási adatait állítjuk be és adatokat jelenítünk meg.
Fordítsuk le és futtassuk a kódot
Az A és B számára várt kimenetet 2-re, illetve 3-ra kell inicializálni.
De az érték 0, miért? Hadd nyomozzon.
A Set data metódusban az argumentumok a és b-ként vannak deklarálva, míg a példányváltozók neve a és b.
A végrehajtás során a fordító össze van zavarodva. A hozzárendelt operátor bal oldalán lévő „a” a példányváltozó vagy a helyi változó. Ezért nem állítja be az 'a' értékét a metóduskészlet adatainak meghívásakor.
A megoldás a „this” kulcsszó
Az „a” és „b” karaktert is hozzáfűzi a Java ezt a kulcsszót egy pont (.) operátor követi.
Kódvégrehajtás közben, amikor egy objektum meghívja a 'setdata' metódust. A „this” kulcsszót az „obj” objektumkezelő helyettesíti. (Lásd az alábbi képet).
Tehát most a fordító tudja,
- A bal oldalon lévő "a" egy példányváltozó.
- Míg a jobb oldalon lévő "a" egy lokális változó
A változók helyesen inicializálódnak, és megjelenik a várt kimenet.
Tegyük fel, hogy elég okos ahhoz, hogy különböző neveket válasszon a példányváltozók és a metódusok argumentumai számára.
De ezúttal két objektumot hoz létre az osztályból, amelyek mindegyike a set data metódust hívja meg.
Hogyan határozza meg a fordító, hogy az 1. vagy a 2. objektum példányváltozóján kell-e működnie.
Nos, a A fordító implicit módon hozzáfűzi a példányváltozó a „this” kulcsszóval (az alábbi kép).
Olyan, hogy amikor az 1. objektum a set data metódust hívja, egy példányváltozót hozzáfűz a referenciaváltozója.
Amíg a 2. objektum a set data metódust hívja, a 2. objektum példányváltozója módosul.
Erről a folyamatról maga a fordító gondoskodik. Nem kell kifejezetten hozzáfűznie a "ez" kulcsszót, kivéve, ha olyan kivételes helyzet áll fenn, mint a példánkban.
ezt a kulcsszót Java példával
Példa: A „this” kulcsszó megtanulásához használja
Step 1) Másolja a következő kódot egy jegyzettömbbe.
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(); } }
Step 2) Mentse, fordítsa le és futtassa a kódot.
Step 3) A és b értéke nulla? A hiba kijavításához fűzze hozzá a 6. és 7. sort a „ezt” kulcsszó.
this.a =a; this.b =b;
Step 4) Mentse, fordítsa le és futtassa a kódot. Ezúttal az a és b értékei 2-re és 3-ra vannak állítva.
Összegzésként
- ezt Kulcsszó be Java egy referenciaváltozó, amely az aktuális objektumra hivatkozik.
- Ennek a kulcsszónak az egyik használata Java az aktuális osztálypéldányváltozóra való hivatkozás
- Az aktuális osztálykonstruktor meghívására vagy kezdeményezésére használható
- A metódushívásban argumentumként adható át
- ez a mutató benne Java argumentumként adható át a konstruktorhívásban
- ez az operátor be Java használható az aktuális osztálypéldány visszaadására
- ezt be Java hivatkozás az aktuális objektumra, amelynek metódusát hívjuk.
- A „this” kulcsszó használatával elkerülheti az elnevezési ütközéseket a példány/objektum metódusában/konstruktorában.
Tekintse meg cikkünket Java Interjú kérdések: - Kattintson ide