dette søkeordet i Java

Hva er dette nøkkelordet i Java?

dette søkeordet i Java er en referansevariabel som refererer til det gjeldende objektet til en metode eller en konstruktør. Hovedformålet med å bruke dette søkeordet i Java er å fjerne forvirringen mellom klasseattributter og parametere som har samme navn.

Bruk av dette søkeordet i Java

Følgende er ulike bruksområder for "dette" søkeord i Java:

  • Den kan brukes til å referere forekomstvariabel for gjeldende klasse
  • Den kan brukes til å påkalle eller starte gjeldende klassekonstruktør
  • Det kan sendes som et argument i metodekallet
  • Det kan sendes som argument i konstruktørkallet
  • Den kan brukes til å returnere gjeldende klasseforekomst

Klikk her. hvis videoen ikke er tilgjengelig

Forstå "dette" søkeordet med et eksempel.

dette søkeordet i Java
Java dette søkeordet Eksempel

  1. Klasse: klassekonto
  2. Forekomstvariabel: a og b
  3. Metode Sett data: For å angi verdien for a og b.
  4. Metode Vis data: For å vise verdiene for a og b.
  5. Hovedmetode: hvor vi lager et objekt for kontoklasse og kallemetoder setter data og viser data.

La oss kompilere og kjøre koden

Vår forventede utgang for A og B bør initialiseres til henholdsvis verdiene 2 og 3.

Men verdien er 0, hvorfor? La undersøke.

dette søkeordet i Java

I metoden Set data er argumentene deklarert som a og b, mens instansvariablene også er navngitt som a og b.

dette søkeordet i Java

Under utførelse er kompilatoren forvirret. Hvorvidt "a" på venstre side av den tilordnede operatoren er forekomstvariabelen eller den lokale variabelen. Derfor setter den ikke verdien av 'a' når metodesettets data kalles.

dette søkeordet i Java

Løsningen er "dette" nøkkelordet

Legg til både 'a' og 'b' med Java dette nøkkelordet etterfulgt av en prikk (.)-operator.

dette søkeordet i Java

Under kodekjøring når et objekt kaller metoden 'setdata'. Nøkkelordet "dette" erstattes av objektbehandleren "obj." (Se bildet nedenfor).

dette søkeordet i Java

Så nå vet kompilatoren,

  • 'a'en på venstre side er en Instance-variabel.
  • Mens 'a' på høyre side er en lokal variabel

Ocuco variabler initialiseres riktig, og forventet utgang vises.

dette søkeordet i Java

Anta at du er smart nok til å velge forskjellige navn for instansvariabelen og metodeargumentene dine.

dette søkeordet i Java

Men denne gangen oppretter du to objekter i klassen, som hver kaller settdatametoden.

Hvordan kompilatoren vil avgjøre om den skal fungere på instansvariabelen til objekt 1 eller objekt 2.

dette søkeordet i Java

Vel, kompilatoren legger implisitt til instansvariabelen med «dette» nøkkelordet (bildet nedenfor).

dette søkeordet i Java

Slik at når objekt 1 kaller oppsettdatametoden, blir en forekomstvariabel lagt til av referansevariabelen.

dette søkeordet i Java

Mens objekt 2 kaller oppsettdatametoden, endres en forekomstvariabel for objekt 2.

dette søkeordet i Java

Denne prosessen ivaretas av kompilatoren selv. Du trenger ikke å legge til "dette" søkeord eksplisitt med mindre det er en eksepsjonell situasjon som i vårt eksempel.

dette søkeordet i Java med eksempel

Eksempel: For å lære å bruke "dette" nøkkelordet

Trinn 1) Kopier følgende kode til en notisblokk.

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();
 }
}

Trinn 2) Lagre, kompiler og kjør koden.

Trinn 3) Verdien av a og b vises som null? For å rette feilen, legg til linje #6 og 7 med "denne" nøkkelord.

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

Trinn 4) Lagre, kompiler og kjør koden. Denne gangen er verdiene av a og b satt til henholdsvis 2 og 3.

Sammendrag

  • denne Nøkkelord i Java er en referansevariabel som refererer til det gjeldende objektet.
  • En av bruken av dette søkeordet i Java er å referere gjeldende klasseforekomstvariabel
  • Den kan brukes til å påkalle eller starte gjeldende klassekonstruktør
  • Det kan sendes som et argument i metodekallet
  • denne pekeren inn Java kan sendes som argument i konstruktørkallet
  • denne operatøren i Java kan brukes til å returnere gjeldende klasseforekomst
  • dette i Java er en referanse til det gjeldende objektet, hvis metode brukes.
  • Du kan bruke «dette» nøkkelordet for å unngå navnekonflikter i metoden/konstruktøren til forekomsten/objektet.

Sjekk vår artikkel om Java Intervjuspørsmål:- Klikk her