dette nøgleord i Java - alt hvad du behøver at vide



Denne artikel fokuserer på de forskellige aspekter af brugen af ​​dette nøgleord i Java. Det vil også fortælle dig nogle af de vigtige fakta til at håndtere dette nøgleord.

dette er et nøgleord, der repræsenterer et objekt i en metode eller en konstruktør. Det er dybest set vant tileliminere forvekslingen mellem klasseattributter og parametre med samme navn. I denne artikel vil jeg fortælle dig de forskellige aspekter og anvendelser af dette nøgleord i .

Nedenfor er de emner, som jeg vil dække i denne artikel:





Så lad os komme i gang!

Hvad er dette nøgleord i Java?

dette nøgleord i repræsenterer strømmen . Det bruges hovedsageligt til at få adgang til andre medlemmer af samme klasse. Med hjælp fra dette nøgleord, kan du få adgang til metoder, felter og konstruktører af samme klasse inden for klassen.



Lad os nu gå videre og forstå, hvad der er behov for dette nøgleord i Java.

Hvorfor bruge dette nøgleord i Java?

Hovedmottoet for ved hjælp af dette nøgleord er at differentiere den formelle parameter og af klassen. I tilfælde af at den formelle parameter og datamedlemmer i klassen er de samme, fører det til tvetydighed. For at skelne mellem formel parameter og datamedlem i klassen, skal datamedlemmet i klassen forud for ' dette ”Nøgleord.

matrix multiplikationsprogram i java

I bund og grund, 'dette' nøgleord kan bruges på to måder.



  1. dette.
  2. dette()

1. dette.

Det kan bruges til at differentiere og formelle parametre for metode eller konstruktør. Ikke kun det, det peger altid på det aktuelle klasseobjekt. Syntaks for dette nøgleord er som vist nedenfor:

Syntaks

this.data-medlem af den nuværende klasse

Bemærk: Hvis der er nogen variabel, der er forud for 'dette', derefter behandler JVM denne variabel som en klassevariabel .

2. dette ()

Det kan bruges til at ringe til en Bygger inden for en anden uden at oprette objekter flere gange for den samme klasse.

Syntaks

denne () // kalder ingen parametriserede eller standardkonstruktører dette (værdi1, værdi2, .....) // kald parametriserede konstruktør

Nu hvor du ved hvad der er dette nøgleord, og hvorfor har du brug for det, lad os dybere dybere ned i denne artikel og forstå de forskellige aspekter, hvor dette nøgleord kan bruges i Java .

Anvendelse af dette nøgleord

Der er 6 måder, hvor dette nøgleord kan bruges i Java. De er som følger:

  1. Brugt med et felt
  2. Bruges til at påkalde en konstruktør
  3. Bruges til at returnere den aktuelle klasseinstans
  4. Bruges som en metodeparameter
  5. Bruges til at påkalde en nuværende klassemetode
  6. Brugt som argument i konstruktøropkaldet

Lad os nu komme ind i detaljerne i hver af disse metoder.

1. dette nøgleord kan bruges med et felt / Variabel skjulning

dette nøgleord kan være meget nyttigt i Variabel skjulning . Her kan du ikke oprette to i med samme navn. Det er dog muligt at oprette en instansvariabel og en lokal variabel med samme navn. I dette tilfælde vil den lokale variabel være i stand til at skjule instansvariablen. Dette kaldes Variabel skjulning . Lad os nu forstå dette mere detaljeret ved hjælp af et eksempel.

pakke Edureka import java.util. * offentligt klassefelt {int j, n // Parameteriseret konstruktortest (int j, int n) {this.j = j this.n = n} ugyldigt display () {// Visningsværdi af variabler j og n System.out.println ('j =' + j + 'n =' + n)} offentlig statisk ugyldig hoved (String [] args) {felt obj = nyt felt (27, 01) obj.display ( )}}

Produktion:

j = 27 n = 01

I ovenstående eksempel er formelle argumenter og instansvariabler de samme. Derfor har jeg brugt for at skelne mellem disse variabler t hans nøgleord til output af de lokale variabler. Så alt handlede om den variable skjulning.

Lad os nu se hvordan dette nøgleord i Java kan bruges til at påkalde en konstruktør.

2. dette nøgleord kan bruges til at påkalde en konstruktør

dette () konstruktøropkald kan bruges til at kalde den aktuelle klassekonstruktør. Det kan også bruges til at genbruge konstruktøren. Du kan også kalde denne teknik som konstruktorkæde . Lad os tage et lille eksempel og forstå hvordan dette() anvendes.

pakke Edureka import java.util. * offentlig klasse Eksempel {{int j, n // Standardkonstruktøreksempel () {dette (27, 01) System.out.println ('Inde standardkonstruktør n')} // Parameteriseret konstruktøreksempel (int j, int n) {this.j = j this.n = n System.out.println ('Inside parameterised constructor')} offentlig statisk ugyldig main (String [] args) {Eksempel obj = nyt eksempel ()} }

Produktion:

Java Developer løn i Indien
Inde parametreret konstruktør Inde standard konstruktør

I eksemplet ovenfor kan du se, at “ dette ”Nøgleord bruges til at påkalde en overbelastet konstruktør i det samme .

3. dette nøgleord kan bruges til at returnere den aktuelle klasseinstans

Her kan du vende tilbage dette nøgleord som en erklæring fra metoden. I dette tilfælde skal metoden for returnering af metoden være klassetypen. Lad os forstå dette ved hjælp af et eksempel.

offentlig klasse Edureka {int j, int n // Standardkonstruktør Edureka () {j = 100 n = 200} // Metode, der returnerer nuværende klasseinstans Edureka get () {returner denne} // Visningsværdi af variabler j og n ugyldig display () {System.out.println ('j =' + j + 'n =' + n)} offentlig statisk ugyldig hoved (String [] args) {Edureka obj = new Edureka () obj.get (). display ()}}

Produktion:

j = 100, n = 200

4. dette nøgleord kan bruges som en metodeparameter

dette nøgleord kan bruges inde i metoden for at kalde en anden metode fra samme klasse. Nedenstående eksempel viser det samme.

offentlig klasse Edureka {int j, n // Standardkonstruktør Edureka () {j = 100 n = 200} // Metode, der modtager 'dette' nøgleord som parameter ugyldig visning (Edureka obj) {System.out.println ('j = '+ j +' n = '+ n)} // Metode, der returnerer nuværende klasseinstans ugyldig get () {display (dette)} offentlig statisk ugyldig hoved (String [] args) {Edureka obj = new Edureka () obj. få ()}}

Produktion:

j = 100, n = 200

5. dette nøgleord bruges som en nuværende klassemetode

Fibonacci kode c ++

dette nøgleord kan bruges til at påkalde metoden for den aktuelle klasse. Lad os forstå det ved hjælp af 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' )} offentlig statisk ugyldig hoved (String args []) {Edureka j = new Edureka () j.display ()}}

Produktion:

Indvendig showfunktion Indvendig displayfunktion

6. dette nøgleord bruges som et argument i konstruktøropkaldet

Du kan passere dette nøgleord i konstruktøren også. Det er nyttigt, hvis du skal bruge en i flere klasser. Lad os nu forstå det samme ved hjælp af et eksempel.

offentlig klasse Y {X obj // Parameteriseret konstruktør med objekt af X // som parameter Y (X obj) {this.obj = obj // kald displaymetode for klasse X obj.display ()}} klasse X {int x = 45 // Standardkonstruktør, der opretter et objekt af Y // ved at sende dette som et argument i // konstruktøren X () {Y obj = ny Y (dette)} // metode til at vise værdien af ​​x tom skærm () {System.out.println ('Værdi af x i klasse X:' + x)} offentlig statisk ugyldig hoved (String [] args) {X obj = new X ()}}

Produktion :

Værdien af ​​x i klasse X: 45

Så dette er, hvordan du kan bruge dette nøgleord som et argument i konstruktøropkaldet. Det var alt om de forskellige anvendelser af dette nøgleord i Java. Lad os nu se nogle af de vigtige faktorer ved brug dette nøgleord .

Vigtige faktorer ved dette nøgleord:

  1. Du kan ikke bruge super og dette nøgleord i en statisk metode og i en statisk initialiseringsblok, selvom du henviser til statiske medlemmer.

  2. Du skal ringe super() og dette() kun at kalde udsagn inde i konstruktørerne, og de skal være den første erklæring i konstruktørerne.

Dette bringer os til slutningen af ​​artiklen om dette nøgleord i Java. Jeg håber, du fandt det informativt.

Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et udover dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel 'dette nøgleord i Java', og vi vender tilbage til dig hurtigst muligt.