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.

  • 🔑 Definition: Dette refererer til den aktuelle instans af en klasse.
  • 🧱 Løs konflikter: Brug this.field til at skelne mellem instansvariabler og parametre med identiske navne.
  • 🪜 Brug af konstruktør: this() kalder en anden konstruktør af samme klasse for en renere initialisering.
  • Pass og retur: Send dette som et argument, eller returner det for at understøtte metodekæde.
  • 🧪 Udarbejdet eksempel: Account-klassen viser, hvordan dette retter nul output forårsaget af parameterskygging.
  • 🤖 AI Assistance: AI-kodningsværktøjer registrerer manglende præfikser og foreslår præcise refaktorer.

dette søgeord i Java

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

dette søgeord i Java
Java dette søgeord Eksempel

  1. Klasse: klassekonto
  2. Forekomstvariabel: a og b
  3. Metode Sæt data: For at indstille værdien for a og b.
  4. Metode Vis data: For at vise værdierne for a og b.
  5. 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.

dette søgeord i Java

I metoden Set data erklæres argumenterne som a og b, mens instansvariablerne også kaldes a og b.

dette søgeord i Java

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.

dette søgeord i Java

Løsningen er nøgleordet dette.

Tilføj både "a" og "b" med Java dette søgeord efterfulgt af en prik (.) operator.

dette søgeord i Java

Når et objekt kalder metoden setdata under kodeudførelse, erstattes nøgleordet `this` af objekthandleren "obj". (Se billedet nedenfor.)

dette søgeord i Java

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.

dette søgeord i Java

Hvordan compileren håndterer flere objekter

Antag, at du vælger forskellige navne til dine instansvariabler og metodeargumenter.

dette søgeord i Java

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?

dette søgeord i Java

Nå, den compiler implicit tilføjer instansvariablen med nøgleordet this (billede nedenfor).

dette søgeord i Java

Sådan, at når objekt 1 kalder sætdatametoden, tilføjes en instansvariabel af dens referencevariabel.

dette søgeord i Java

Mens objekt 2 kalder sæt datametoden, ændres en instansvariabel for objekt 2.

dette søgeord i Java

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

Nøgleordet `this` refererer til det aktuelle objekt, hvis metode eller konstruktør udføres. Det giver koden adgang til objektets egne instansfelter og metoder.

Nej. Nøgleordet `this` tilhører en instans, mens statiske metoder findes på klasseniveau. Brug af dette i en statisk metode forårsager en kompileringsfejl.

this() kalder en anden konstruktør af samme klasse som den første sætning. Den undgår duplikeret kode og lader én konstruktør delegere opsætning til en overbelastet konstruktør.

AI-kodningsassistenter markerer skyggede parametre, tilføjer det manglende præfiks `this` og omskriver konstruktører til at bruge `this()`-kædning og fluent setters, der returnerer `this`.

AI-undervisere forklarer objektidentitet, viser instans versus lokalt omfang og udarbejder trinvise eksempler med quizzer, der understreger, hvornår man skal bruge nøgleordet "this".

Tjek vores artikel vedr Java Interview spørgsmål:- Klik her

Opsummer dette indlæg med: