det här nyckelordet i Java - allt du behöver veta



Denna artikel fokuserar på de olika aspekterna av att använda detta nyckelord i Java. Det kommer också att berätta några viktiga fakta för att hantera detta nyckelord.

detta är ett nyckelord som representerar ett objekt i en metod eller en konstruktör. Det är i grunden vana videliminera förvirringen mellan klassattribut och parametrar med samma namn. I den här artikeln berättar jag om de olika aspekterna och användningen av detta nyckelord i .

Nedan följer de ämnen som jag kommer att täcka i den här artikeln:





Så, låt oss komma igång!

Vad är detta nyckelord i Java?

detta nyckelord i representerar strömmen . Den används främst för att komma åt andra medlemmar i samma klass. Med hjälp av detta nyckelord kan du komma åt metoder, fält och konstruktörer av samma klass inom klassen.



Nu ska vi gå vidare och förstå vad som är behovet av detta nyckelord i Java.

Varför använda detta nyckelord i Java?

Huvudmottoet för med detta nyckelord är att skilja den formella parametern och av klassen. Om den formella parametern och datamedlemmarna i klassen är desamma, leder det till tvetydighet. Så, för att skilja mellan formell parameter och datamedlem i klassen, måste datamedlemmen i klassen föregås av ' detta ”Nyckelord.

I grund och botten, 'detta' nyckelord kan användas på två sätt.



  1. detta.
  2. detta()

1. detta.

Den kan användas för att differentiera och formella parametrar för metod eller konstruktör. Inte bara det, det pekar alltid på det aktuella klassobjektet. Syntax för detta nyckelordet är som visas nedan:

Syntax

denna. datamedlem i den nuvarande klassen

Notera: Om det finns någon variabel som föregås av 'detta', sedan behandlar JVM variabeln som en klassvariabel .

2. detta ()

Den kan användas för att ringa en byggare inom en annan utan att skapa objekten flera gånger för samma klass.

Syntax

hur man sammanställer Java-program
denna () // anropar ingen parametriserad eller standardkonstruktör detta (värde1, värde2, .....) // anrop parametriserad konstruktör

Nu när du vet vad som är detta sökord och varför behöver du det, låt oss dyka djupare in i den här artikeln och förstå de olika aspekterna var detta nyckelord kan användas i Java .

Användning av detta nyckelord

Det finns sex sätt var det här nyckelordet kan användas i Java. De är som följer:

  1. Används med ett fält
  2. Används för att åberopa en konstruktör
  3. Används för att returnera den aktuella klassinstansen
  4. Används som metodparameter
  5. Används för att åberopa en aktuell klassmetod
  6. Används som ett argument i konstruktionsanropet

Låt oss nu gå in på detaljerna i var och en av dessa metoder.

1. det här nyckelordet kan användas med ett fält / Variabel gömning

detta nyckelord kan vara till stor hjälp i Variabel gömning . Här kan du inte skapa två i med samma namn. Det är dock möjligt att skapa en instansvariabel och en lokal variabel med samma namn. I det här fallet kommer den lokala variabeln att kunna dölja instansvariabeln. Det här kallas Variabel gömning . Låt oss nu förstå detta på ett mer detaljerat sätt med hjälp av ett exempel.

paket Edureka importera java.util. * public class field {int j, n // Parameterized constructor Test (int j, int n) {this.j = j this.n = n} void display () {// Visar värde på variabler j och n System.out.println ('j =' + j + 'n =' + n)} offentlig statisk ogiltig huvud (String [] args) {field obj = new field (27, 01) obj.display ( )}}

Produktion:

j = 27 n = 01

I exemplet ovan är formella argument och instansvariabler desamma. Därför, för att skilja mellan dessa variabler, har jag använt t hans nyckelord för att mata ut de lokala variablerna. Så detta handlade om att variabla gömmer sig.

Låt oss nu se hur detta nyckelord i Java kan användas för att åberopa en konstruktör.

2. detta nyckelord kan användas för att åberopa en konstruktör

detta () konstruktörsanrop kan användas för att ringa den nuvarande klasskonstruktören. Den kan också användas för att återanvända konstruktören. Du kan också kalla den här tekniken som konstruktörskedjning . Låt oss ta ett litet exempel och förstå hur detta() är använd.

paket Edureka importera java.util. * public class Exempel {{int j, n // Standardkonstruktörsexempel () {detta (27, 01) System.out.println ('Inuti standardkonstruktör n')} // Parameteriserat konstruktörsexempel (int j, int n) {this.j = j this.n = n System.out.println ('Inside parameterised constructor')} public static void main (String [] args) {Exempel obj = nytt exempel ()} }

Produktion:

Inuti parametrerad konstruktör Inuti standardkonstruktör

I exemplet ovan kan du se att “ detta ”Nyckelord används för att åberopa en överbelastad konstruktör i samma .

3. det här nyckelordet kan användas för att returnera den aktuella klassinstansen

Här kan du återvända detta nyckelord som ett uttalande från metoden. I detta fall måste returtypen för metoden vara klasstypen. Låt oss förstå detta med hjälp av ett exempel.

pl sql tutorial för nybörjare
offentlig klass Edureka {int j, int n // Standardkonstruktör Edureka () {j = 100 n = 200} // Metod som returnerar aktuell klassinstans Edureka get () {return this} // Visar värde för variabler j och n ogiltig display () {System.out.println ('j =' + j + 'n =' + n)} public static void main (String [] args) {Edureka obj = new Edureka () obj.get (). display ()}}

Produktion:

j = 100, n = 200

4. detta nyckelord kan användas som metodparameter

detta nyckelord kan användas i metoden för att anropa en annan metod från samma klass. Nedanstående exempel visar detsamma.

offentlig klass Edureka {int j, n // Standardkonstruktör Edureka () {j = 100 n = 200} // Metod som tar emot 'detta' nyckelord som parameter ogiltig visning (Edureka obj) {System.out.println ('j = '+ j +' n = '+ n)} // Metod som returnerar aktuell klassinstans void get () {display (this)} public static void main (String [] args) {Edureka obj = new Edureka () obj. skaffa sig() } }

Produktion:

j = 100, n = 200

5. detta nyckelord används som en aktuell klassmetod

vad är paket i java

detta nyckelord kan användas för att åberopa metoden för den aktuella klassen. Låt oss förstå det med hjälp av ett exempel.

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 ogiltig huvud (String args []) {Edureka j = new Edureka () j.display ()}}

Produktion:

Inuti showfunktion Inuti displayfunktion

6. detta nyckelord används som ett argument i konstruktionsanropet

Du kan klara detta nyckelord i konstruktören också. Det är användbart om du måste använda en i flera klasser. Låt oss nu förstå detsamma med hjälp av ett exempel.

offentlig klass Y {X obj // Parameteriserad konstruktör med objektet X // som parameter Y (X obj) {this.obj = obj // anropsvisningsmetod för klass X obj.display ()}} klass X {int x = 45 // Standardkonstruktör som skapar ett objekt av Y // med att skicka detta som ett argument i // konstruktorn X () {Y obj = ny Y (detta)} // metod för att visa värdet av x tom display () {System.out.println ('Värde av x i klass X:' + x)} offentligt statiskt ogiltigt huvud (String [] args) {X obj = new X ()}}

Produktion :

Värde på x i klass X: 45

Så det här är hur du kan använda detta nyckelord som ett argument i konstruktionsanropet. Det handlade om olika användningar av detta nyckelord i Java. Låt oss nu se några av de viktiga faktorerna för att använda det här nyckelordet .

Viktiga faktorer för detta nyckelord:

  1. Du kan inte använda super och detta nyckelord i en statisk metod och i ett statiskt initialiseringsblock även om du hänvisar statiska medlemmar.

  2. Du borde ringa super() och detta() endast anropa uttalanden inuti konstruktörerna och de måste vara det första uttalandet i konstruktörerna.

Detta leder oss till slutet av artikeln detta nyckelord i Java. Jag hoppas att du tyckte att det var informativt.

Kolla in av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Vi är här för att hjälpa dig med varje steg på din resa, för att bli en förutom de här Java-intervjufrågorna, kommer vi med en läroplan som är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna artikel 'det här nyckelordet i Java' så återkommer vi till dig så snart som möjligt.