dette søgeord i Java
⚡ Smart opsummering
Java Dette nøgleord er en referencevariabel, der peger på det aktuelle objekt i en metode eller konstruktør. LessOns dækker formål, almindelige anvendelser, navngivningskonflikter, konstruktørkæde og et udført eksempel.

Hvad er dette søgeord i Java?
dette søgeord i Java er en referencevariabel, der refererer til det aktuelle objekt for en metode eller en konstruktør. Hovedformålet med at bruge dette søgeord i Java er at fjerne forvirringen mellem klasseattributter og parametre, der har samme navn.
Brug af dette søgeord i Java
Følgende er forskellige anvendelser af dette søgeord i Java:
- Den kan bruges til at referere til instansvariablen for den aktuelle klasse.
- Den kan bruges til at kalde eller starte den aktuelle klassekonstruktør.
- Det kan sendes som et argument i et metodekald.
- Det kan sendes som et argument i et konstruktørkald.
- Den kan bruges til at returnere den aktuelle klasseinstans.
Klik link. hvis videoen ikke er tilgængelig
Sådan forstår du dette søgeord med et eksempel

- Klasse: klassekonto
- Forekomstvariabel: a og b
- Metode Sæt data: For at indstille værdien for a og b.
- Metode Vis data: For at vise værdierne for a og b.
- Hovedmetode: hvor vi opretter et objekt til Account-klassen og kalder metoderne set data og show data.
En gennemgang af compiler-forvirringen
Lad os kompilere og køre koden.
Vores forventede output for A og B bør initialiseres til henholdsvis værdierne 2 og 3.
Men værdien er 0. Hvorfor? Lad os undersøge det.
I metoden Set data erklæres argumenterne som a og b, mens instansvariablerne også kaldes a og b.
Under udførelsen er compileren forvirret. Om "a" på venstre side af den tildelte operator er instansvariablen eller den lokale variabel. Derfor sætter den ikke værdien af "a", når metodesættets data kaldes.
Løsningen er nøgleordet dette.
Tilføj både "a" og "b" med Java dette søgeord efterfulgt af en prik (.) operator.
Når et objekt kalder metoden setdata under kodeudførelse, erstattes nøgleordet `this` af objekthandleren "obj". (Se billedet nedenfor.)
Så nu ved compileren,
- "a" på venstre side er en instansvariabel.
- Hvorimod "a" på højre side er en lokal variabel.
variabler initialiseres korrekt, og det forventede output vises.
Hvordan compileren håndterer flere objekter
Antag, at du vælger forskellige navne til dine instansvariabler og metodeargumenter.
Men denne gang opretter du to objekter i klassen, som hver kalder den indstillede datametode.
Hvordan vil compileren afgøre, om den skal arbejde på instansvariablen for objekt 1 eller objekt 2?
Nå, den compiler implicit tilføjer instansvariablen med nøgleordet this (billede nedenfor).
Sådan, at når objekt 1 kalder sætdatametoden, tilføjes en instansvariabel af dens referencevariabel.
Mens objekt 2 kalder sæt datametoden, ændres en instansvariabel for objekt 2.
Compileren håndterer dette automatisk. Du behøver ikke at tilføje `this`-nøgleordet eksplicit, medmindre en ekstraordinær situation kræver det.
Eksempel: dette søgeord i Java Med Code
Eksempel: For at lære brugen af dette søgeord.
Trin 1) Kopier følgende kode ind i en notesblok.
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(); } }
Trin 2) Gem, kompiler og kør koden.
Trin 3) Værdien af a og b vises som nul? For at rette fejlen skal linje 6 og 7 tilføjes denne nøgleord.
this.a =a; this.b =b;
Trin 4) Gem, kompiler og kør koden. Denne gang er værdierne for a og b sat til henholdsvis 2 og 3.
Ofte Stillede Spørgsmål
Tjek vores artikel vedr Java Interview spørgsmål:- Klik her











