dette nøgleord i Java: Hvad er og hvordan man bruger det med eksempel

Hvad er dette nøgleord 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 navne.

Following er forskellige anvendelser af 'dette' søgeord i Java:

  • Den kan bruges til at henvise til instansvariabel af den aktuelle klasse
  • Den kan bruges til at påkalde eller starte den nuværende klassekonstruktør
  • Det kan sendes som et argument i metodekaldet
  • Det kan sendes som argument i konstruktørkaldet
  • Den kan bruges til at returnere den aktuelle klasseinstans

Klik link. hvis videoen ikke er tilgængelig

Forstå '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 kontoklasse og kaldemetoder sæt data og viser data.

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 undersøge.

dette søgeord i Java

I metoden Sæt data er argumenterne erklæret som a og b, mens instansvariablerne også er navngivet som 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 indstiller den ikke værdien af ​​'a', når metodesættets data kaldes.

dette søgeord i Java

Løsningen er "dette" nøgleordet

Tilføj både 'a' og 'b' med Java dette nøgleord efterfulgt af en prik (.) operathor.

dette søgeord i Java

Under kodeudførelse, når et objekt kalder metoden 'setdata'. Nøgleordet "dette" erstattes af objektbehandleren "obj." (Se billedet nedenfor).

dette søgeord i Java

Så nu ved compileren,

  • 'a'et' i venstre side er en Instance-variabel.
  • Hvorimod 'a'et på højre side er en lokal variabel

variabler initialiseres korrekt, og det forventede output vises.

dette søgeord i Java

Antag, at du er smart nok til at vælge 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 compileren vil afgøre, om den skal fungere på instansvariablen af ​​objekt 1 eller objekt 2.

dette søgeord i Java

Nå, den compiler implicit tilføjer instansvariablen med "dette" nøgleord (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

Denne proces varetages af compileren selv. Du behøver ikke udtrykkeligt at tilføje 'dette' søgeord, medmindre der er en ekstraordinær situation som i vores eksempel.

Eksempel: Brug "dette" søgeord for at lære

Trin 1) Kopier folloenwing 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, kompilér og kør koden.

Trin 3) Værdien af ​​a & b er vist som nul? For at rette fejlen skal du tilføje linje #6 og 7 med "denne” nøgleord.

this.a =a;
this.b =b;

Trin 4) Gem, kompilér og kør koden. Denne gang er værdierne af a & b sat til henholdsvis 2 & 3.

Resumé

  • denne Nøgleord i Java er en referencevariabel, der refererer til det aktuelle objekt.
  • En af anvendelserne af dette nøgleord i Java er at henvise til den aktuelle klasseforekomstvariabel
  • Den kan bruges til at påkalde eller starte den nuværende klassekonstruktør
  • Det kan sendes som et argument i metodekaldet
  • denne pointer i Java kan sendes som argument i konstruktørkaldet
  • denne operator i Java kan bruges til at returnere den aktuelle klasseinstans
  • dette i Java er en reference til det aktuelle objekt, hvis metode bliver kaldt.
  • Du kan bruge "dette" nøgleord for at undgå navnekonflikter i metoden/konstruktøren af ​​din instans/objekt.

Se vores artikel om Java-interviewspørgsmål: - Klik her