Hva betyr dette i Java?

Hva betyr dette i Java?
Som vi vet, er Java et objektorientert språk som bruker klasser, objekter og variabler for å skrive en kode for et problem. Så mens de jobber med store og komplekse prosjekter, lager utviklere forekomstvariablene, konstruktører og klasser med samme navn for å gjøre kode lett forståelig. Ved å gjøre det returnerer ikke kompilatoren den forventede produksjonen.

Nå er spørsmålet hvordan vi unngår dette problemet og skiller mellom forekomstvariablene, lokale variabler, konstruktører og klasser med samme navn? Svaret er veldig enkelt; Vi kan løse det ved hjelp av "dette”Nøkkelord.

Dette innlegget forklarer funksjonaliteten til “dette”Søkeord i Java.

Hva betyr dette i Java?

I Java er dette nøkkelordet representert som en referansevariabel som refererer til et objekt. “dette”Søkeord eliminerer forvirringen for kompilatoren som det lett kan skille mellom en forekomst og den lokale variabelen.

La oss gå over til følgende eksempel for mer informasjon.

Kode:

offentlig klasse Arry
int h;
void val (int h)

h = h;

void disp ()

System.ute.println (h);

public static void main (String [] args)

arry tcheck = new arry ();
Tcheck.Val (20);
Tcheck.disp ();

I koden ovenfor gir vi samme navn til en forekomstvariabel og en lokal variabel. Da tildeles verdien av den lokale variabelen til forekomstvariabelen. Til slutt viser vi verdien ved hjelp av Disp () -metoden.

Produksjon:

I denne utgangen kan du se at kompilatoren blir forvirret med samme forekomst og lokale variabelnavn og ikke kan skille mellom dem. Så den returnerer 0 som en utgang; La oss nå bruke "dette”Nøkkelord i eksemplet ovenfor for å se forskjellen.

Kode:

offentlig klasse Arry
int h;
void val (int h)

dette.h = h;

void disp ()

System.ute.println (h);

public static void main (String [] args)

arry tcheck = new arry ();
Tcheck.Val (20);
Tcheck.disp ();

I koden ovenfor tildeler vi verdien av den lokale variabelen til en forekomstvariabel ved å bruke "dette”Nøkkelord. Til slutt viser vi verdien ved hjelp av Disp () -metoden.

Produksjon:

Nå ser du forskjellen; Etter å ha brukt “dette”Søkeord, kan kompilatoren skille mellom lokale og forekomstvariabler med samme navn og tilordne verdien av den lokale variabelen til forekomstvariabelen. Til slutt får vi det nødvendige resultatet som er 20.

Bruk av dette nøkkelordet for å ringe gjeldende klassemetode

Vi kan også bruke dette Nøkkelord for implisitt å kalle den nåværende klassemetoden, noe som betyr at hvis vi har laget to metoder i en klasse, kan vi kalle en metode ved å bruke den andre metoden. La oss se følgende praktiske eksempel.

Kode:

offentlig klasse Arry
void val ()

System.ute.Println ("Gjeldende klassemetoder kalles ved å bruke dette nøkkelordet.");

void disp ()

dette.val ();

public static void main (String [] args)

arry tcheck = new arry ();
Tcheck.disp ();

I denne koden lager vi to metoder val () og disp (). Deretter ber vi om å skrive ut en melding i Val () -metoden og ringe Val () -metoden i Disp () -metoden ved å bruke dette nøkkelord.

Produksjon:

Utgangen viser at en metode vellykket kalles den andre metoden ved hjelp av dette nøkkelordet.

Bruk av dette nøkkelordet med konstruktører

Vi kan også bruke dette nøkkelord for å ringe en konstruktør i en annen konstruktør. I følgende praktiske eksempel har vi brukt dette nøkkelordet med en konstruktør for din bedre forståelse.

Kode:

offentlig klasse Arry
int m = 3, r, x = 6;
Arry ()

r = m+x;

arry (int f)

dette();
System.ute.println (m+"+"+x+"="+r);

public static void main (String [] args)

Arry Tcheck = New Arry (20);

I denne koden lager vi to konstruktører. Den ene er en parameterisert konstruktør og den andre er ikke parameterisert. Så kaller vi ikke -parameterisert konstruktør i parameterisert konstruktør ved bruk av dette nøkkelord.

Produksjon:

Utgangen viser det dette Nøkkelord ringer vellykket den første konstruktøren i den andre konstruktøren.

Bruk dette nøkkelordet som et argument

I Java kan vi også passere dette nøkkelordet som et argument i en metode. Følgende praktiske eksempel gir deg en tilfredsstillende forståelse.

Kode:

offentlig klasse Arry
int m = 3, r, x = 6;
Void Val (Arry Tcheck)

r = m+x;
System.ute.println (m+"+"+x+"="+r);

void disp ()

val (dette);

public static void main (String [] args)

arry tcheck = new arry ();
Tcheck.disp ();

I denne koden lager vi to metoder val () og disp (). Så passerer vi gjenstanden for Arry Klasse som en parameter til Val () -metoden. På tidspunktet for metodesamtalen sendes dette nøkkelordet til Disp () -metoden som et argument.

Produksjon:

I denne koden har vi bestått dette nøkkelordet som et argument og fått den nødvendige utdata.

Ved å gå gjennom eksemplene ovenfor, har du lært å bruke dette nøkkelord i forskjellige scenarier.

Konklusjon

I Java, "dette”Nøkkelord brukes som en referansevariabel for nåværende klasseobjekter. Det kveler forvirringen mellom klasser, konstruktører og forekomstvariabler med samme navn. I denne artikkelen har vi lært om “dette”Søkeord i detalj, med eksempler og problemer hvis du ikke bruker“dette”Nøkkelord.