dette nøkkelordet i Java - Alt du trenger å vite



Denne artikkelen fokuserer på de forskjellige aspektene ved bruk av dette nøkkelordet i Java. Det vil også fortelle deg noen av de viktige fakta for å håndtere dette søkeordet.

dette er et nøkkelord som representerer et objekt i en metode eller en konstruktør. Det er i utgangspunktet vant tileliminere forvirringen mellom klasseattributter og parametere med samme navn. I denne artikkelen vil jeg fortelle deg de forskjellige aspektene og bruken av dette nøkkelord i .

Nedenfor er emnene jeg skal dekke i denne artikkelen:





Så la oss komme i gang!

Hva er dette nøkkelordet i Java?

dette nøkkelord i representerer strømmen . Det brukes hovedsakelig for å få tilgang til andre medlemmer i samme klasse. Med hjelp av dette søkeord, kan du få tilgang til metoder, felt og konstruktører av samme klasse i klassen.



La oss nå gå videre og forstå hva behovet er for dette nøkkelord i Java.

Hvorfor bruke dette nøkkelordet i Java?

Hovedmottoet til bruker dette nøkkelordet er å skille den formelle parameteren og av klassen. Hvis den formelle parameteren og datamedlemmene i klassen i tilfelle er de samme, fører det til tvetydighet. For å kunne skille mellom formell parameter og datamedlem i klassen, må datamedlemmet i klassen være foran ' dette ”Nøkkelord.

skrive en tolk i java

I utgangspunktet, 'dette' nøkkelord kan brukes på to måter.



  1. dette.
  2. dette()

1. dette.

Den kan brukes til å differensiere og formelle parametere for metode eller konstruktør. Ikke bare det, det peker alltid mot gjeldende klasseobjekt. Syntaks av dette nøkkelordet er som vist nedenfor:

Syntaks

dette. datamedlem av gjeldende klasse

Merk: Hvis det er noen variabel som går foran 'dette', deretter behandler JVM den variabelen som en klassevariabel .

2. dette ()

Den kan brukes til å ringe en bygger i en annen uten å lage objektene flere ganger for samme klasse.

Syntaks

denne () // ring ingen parametriserte eller standardkonstruktør dette (verdi1, verdi2, .....) // ring parametriserte konstruktør

Nå som du vet hva som er dette nøkkelord og hvorfor trenger du det, la oss dykke dypere ned i denne artikkelen og forstå de forskjellige aspektene hvor dette nøkkelord kan brukes i Java .

Bruk av dette nøkkelordet

Det er 6 måter hvor dette nøkkelordet kan brukes i Java. De er som følger:

parse dobbelt til int java
  1. Brukt med felt
  2. Brukes til å påkalle en konstruktør
  3. Brukes til å returnere gjeldende klasseinstans
  4. Brukes som metodeparameter
  5. Brukes til å påkalle en gjeldende klassemetode
  6. Brukes som argument i konstruktøranropet

La oss nå komme inn i detaljene i hver av disse metodene.

1. dette nøkkelordet kan brukes med et felt / Variabel skjuling

dette nøkkelord kan være veldig nyttig i Variabel skjuling . Her kan du ikke opprette to i med samme navn. Det er imidlertid mulig å opprette en forekomstvariabel og en lokal variabel med samme navn. I dette tilfellet vil den lokale variabelen kunne skjule forekomstvariabelen. Dette kalles Variabel skjuling . La oss nå forstå dette på en mer detaljert måte ved hjelp av et eksempel.

pakke Edureka importerer java.util. * offentlig klassefelt {int j, n // Parameterized constructor Test (int j, int n) {this.j = j this.n = n} void display () {// Displaying value of variabler j og n System.out.println ('j =' + j + 'n =' + n)} offentlig statisk ugyldig hoved (String [] args) {felt obj = nytt felt (27, 01) obj.display ( )}}

Produksjon:

j = 27 n = 01

I eksemplet ovenfor er formelle argumenter og instansvariabler de samme. Derfor, for å skille mellom disse variablene, har jeg brukt t hans nøkkelord for å skrive ut de lokale variablene. Så dette handlet om variabelt skjul.

La oss nå se hvordan dette nøkkelord i Java kan brukes til å påkalle en konstruktør.

2. dette nøkkelordet kan brukes til å påkalle en konstruktør

dette () konstruktøranropet kan brukes til å ringe gjeldende klassekonstruktør. Den kan også brukes til å gjenbruke konstruktøren. Du kan også kalle denne teknikken som konstruktorkjetting . La oss ta et lite eksempel og forstå hvordan dette() benyttes.

pakke Edureka importerer java.util. * public class Eksempel {{int j, n // Standardkonstruktøreksempel () {dette (27, 01) System.out.println ('Inside default constructor n')} // Parameterized constructor Eksempel (int j, int n) {this.j = j this.n = n System.out.println ('Inside parameterised constructor')} public static void main (String [] args) {Eksempel obj = nytt eksempel ()} }

Produksjon:

Inne parametriserte konstruktør Innvendig standard konstruktør

I eksemplet ovenfor kan du se at “ dette ”Nøkkelord brukes til å påkalle en overbelastet konstruktør i det samme .

3. dette nøkkelordet kan brukes til å returnere gjeldende klasseinstans

Her kan du komme tilbake dette nøkkelord som en påstand fra metoden. I dette tilfellet må returtypen til metoden være klassetypen. La oss forstå dette ved hjelp av et eksempel.

offentlig klasse Edureka {int j, int n // Standardkonstruktør Edureka () {j = 100 n = 200} // Metode som returnerer gjeldende klasseinstans Edureka get () {return this} // Viser verdien av variablene j og n ugyldig display () {System.out.println ('j =' + j + 'n =' + n)} public static void main (String [] args) {Edureka obj = new Edureka () obj.get (). display ()}}

Produksjon:

j = 100, n = 200

4. dette nøkkelordet kan brukes som en metodeparameter

dette nøkkelord kan brukes inne i metoden for å kalle en annen metode fra samme klasse. Eksemplet nedenfor viser det samme.

offentlig klasse Edureka {int j, n // Standardkonstruktør Edureka () {j = 100 n = 200} // Metode som mottar 'dette' nøkkelordet som parameter ugyldig visning (Edureka obj) {System.out.println ('j = '+ j +' n = '+ n)} // Metode som returnerer gjeldende klasseinstans void get () {display (this)} public static void main (String [] args) {Edureka obj = new Edureka () obj. få() } }

Produksjon:

j = 100, n = 200

5. dette nøkkelordet brukes som en gjeldende klassemetode

grunne kopi vs dype kopi java

dette nøkkelord kan brukes til å påkalle metoden til gjeldende klasse. La oss forstå det ved hjelp av et eksempel.

pubic class Edureka {void display () {// calling fuction show () this.show () System.out.println ('Inside display function')} void show () {System.out.println ('Inside show funcion' )} public static void main (String args []) {Edureka j = new Edureka () j.display ()}}

Produksjon:

Inside show funcion Inside display-funksjon

6. dette nøkkelordet brukes som et argument i konstruktøranropet

Du kan passere dette nøkkelord i konstruktøren også. Det er nyttig hvis du må bruke en i flere klasser. La oss nå forstå det samme ved hjelp av et eksempel.

offentlig klasse Y {X obj // Parametrert konstruktør med objekt av X // som parameter Y (X obj) {this.obj = obj // kaller visningsmetode for klasse X obj.display ()}} klasse X {int x = 45 // Default Contructor som oppretter et objekt av Y // ved å sende dette som et argument i // constructor X () {Y obj = new Y (this)} // metode for å vise verdien av x void display () {System.out.println ('Verdi av x i klasse X:' + x)} offentlig statisk ugyldig hoved (String [] args) {X obj = new X ()}}

Produksjon :

Verdien av x i klasse X: 45

Så dette er hvordan du kan bruke dette nøkkelord som argument i konstruktøranropet. Det handlet om forskjellige bruksområder av dette nøkkelord i Java. La oss nå se noen av de viktige faktorene ved bruk dette nøkkelordet .

Viktige faktorer for dette søkeordet:

  1. Du kan ikke bruke super og dette nøkkelord i en statisk metode og i en statisk initialiseringsblokk selv om du henviser til statiske medlemmer.

  2. Du burde ringe super() og dette() kun kaller uttalelser inne i konstruktørene, og de må være den første uttalelsen i konstruktørene.

Dette bringer oss til slutten av artikkelen om dette nøkkelord i Java. Jeg håper du syntes det var informativt.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'dette nøkkelordet i Java' -artikkelen, så kommer vi tilbake til deg så snart som mulig.