Hvad er dette nøgleord i Java?

Java er et objektorienteret sprog, og der kan være mange objekter til stede ad gangen, på dem, vi kunne bruge, "dette" nøgleord her kommer på billedet, fordi det hjælper med at pege den aktuelle instans eller det aktuelle objekt i en klasse.

Derfor, når vi ser på at påkalde metoder i den aktuelle klasse, når vi vil påkalde konstruktøren af ​​den aktuelle klasse, returnere den nuværende instans fra metoder, videregive den aktuelle instans til metoder; i alle disse tilfælde er dette nøgleord praktisk.

Eksempel på brugssager

  1. Synkroniseret blok i multithreading bruger dette nøgleord som et argument
  2. Overbelastning af konstruktører

Hvorfor bruge dette søgeord i Java?

  • 'denne' variabel fungerer som en endelig variabel i java, dvs. vi kan ikke tildele nogen værdi til 'denne' variabel, dette kan krydskontrolleres ved at tildele en værdi til 'dette' nøgleord og det vil føre til en kompilationsfejl.
  • 'dette' kan også bruges til at henvise til statiske medlemmer (men det skal ikke gøres), fordi statiske medlemmer kun deklareres én gang, dvs. hukommelsesfordelingen, der er gjort til dem, kun er en gang, og hvis vi prøver at lave manipulationer ved hjælp af 'dette' nøgleord, så er det vil altid manipulere de data, der er placeret på den hukommelsesplacering, i stedet for at oprette data på nye hukommelsessteder, som objekter gør.
  • Dette forhindrer opgaven med at udføre unødvendige tildelinger til variabler, og til tider behøver vi ikke oprette ekstra variabler også, 'dette' nøgleord, uanset hvor det bruges, giver os sikkerhed for, at det nuværende eksempel henvises til.

Betydningen af ​​dette nøgleord

Nedenstående eksempler viser, at vi er nødt til at oprette variabler med forskellige navne til bestemte egenskaber, de kan simpelthen tildeles i konstruktør under objektinitialisering ved hjælp af dette nøgleord.

  • Forhindrer konflikt med medlemsvariabel og lokal variabel, man kan henvise til medlemsvariablen ved hjælp af dette nøgleord.

public class Student (
int marks;
String subjectName;
//constructor
public Student(int marks, String subjectName)
(
this.marks = marks;
this.subjectName=subjectName;
)
public Student()
(
)
public static void main(String args())
(
Student s = new Student(1, "name");
)
)

  • Metoder til objektklasse kan også aktiveres ved hjælp af denne.

//consider a method shown here
public String getName()
(
return this.toString();
)

  • Dette kan bruges i sæt- og getter-metoder til at returnere de nuværende tilfælde.

Public int getmarks()
(
return this.marks;
)
public void setMarks(int marks)
(
this.marks =marks;
)

Særlige anvendelser af dette nøgleord

Her er nogle anvendelser af dette nøgleord forklaret nedenfor med implementering:

1. Brug Med-i et felt

public class PointCoordinates (
public int xval = 0;
public int yval = 0;
//constructor
public PointCoordinates (int a, int b) (
xval = a;
yval = b;
)
public static void main(String args())
(
)
)

Men det kunne have været skrevet sådan:

public class PointCoordinates (
public int xval = 0;
public int yval= 0;
//constructor
public PointCoordinates (int xval, int yval) (
this.xval = xval;
this.yval = yval;
)
public static void main(String args())
(
)
)

Så dette var noget, vi også forklarede i det sidste afsnit, hvor det kan ses, at navnekonventionerne for et slags datafelt kan holdes ens, hvis vi bruger 'dette' nøgleordet.

Derfor er det ikke meningen, at en udvikler skal holde styr på eller kortlægge et diagram over variabler for den samme type logiske datafelt.

2. Konstruktørens opfordring ved hjælp af dette nøgleord

Vi kan bruge dette nøgleord inde i en konstruktør og kalde en anden konstruktør derfra i samme klasse. Dette kaldes også eksplicit konstruktørkaldelse.

Lad os overveje at et eksempel viser nedenfor for det samme -

public class Square (
private int x;
private int side;
public Square () (
this(1);
)
public Square (int side) (
this(0, side);
)
public Square (int x, int side) (
this.x = x;
this.side = side;
)
public static void main(String args())
(
)
)

Der er tre konstruktører her på billedet. Bemærk, at standardkonstruktøren skal placeres eksplicit, når vi laver konstruktøroverbelastning.

Disse konstruktører initialiserer nogle medlemsvariabler, kompilatoren får her en indikation om konstruktørens påkaldelse via antallet af parametre, der er brugt i metoderne.

3. Vend tilbage til nuværende klasseforekomst ved hjælp af dette nøgleord

class Rectangle
(
int height;
int width;
Rectangle()
(
height = 10;
width = 20;
)
//Method to return current class instance
Rectangle getObject()
(
return this;
)
public void print()
(
System.out.println(height+", "+ width);
)
public static void main(String() args)
(
Rectangle object = new Rectangle();
object.getObject().print();
)
)

Så i det eksempel, der er vist ovenfor, kan det ses, at det aktuelle objekt returneres fra en getter-metode, og på dette tilfælde er den bestemte metode "print" blevet påberåbt.

4. Brug som metodeparameter

class Rectangle
(
int height;
int width;
Rectangle()
(
height = 10;
width = 20;
)
void getObject()
(
print(this);
)
public void print(Rectangle object)
(
System.out.println(object.height + ", " + object.width);
)
public static void main(String() args)
(
Rectangle object = new Rectangle();
object.getObject();
)
)

Eksemplet citerede, hvordan det aktuelle objekt overføres til en metode, der kan bruge dette objekt til dets brugerdefinerede brug.

Konklusion

Vi så forskellige anvendelsestilfælde her, med henvisning til varianterne mod anvendelse af dette nøgleord i java, og hvor de skal bruges, og hvor de ikke skal bruges, disse betingelser er blevet opstillet på en eksplicit måde.
'dette' nøgleord er almindeligt blandt alle programmeringssprog, også i javascript-baserede rammer, finder dette 'en nøglerolle.
'dette' nøgleord kan blive overhead, hvis det ikke forstås godt, og det er en stor hjælp for udviklere, hvis de forstås korrekt.

Anbefalede artikler

Dette er en guide til dette nøgleord i java. Her diskuterer vi betydning, særlig anvendelse og eksempler på dette nøgleord i java sammen med dets kodeimplementering. Du kan også se på de følgende artikler for at lære mere-

  1. Objekt i Java
  2. Indkapsling i JavaScript
  3. Statisk nøgleord i Java
  4. Overbelastning og overstyring i Java
  5. Funktion og regler for tilsidesættelse i Python

Kategori: