Wat is dit trefwoord in Java?

Java is een objectgeoriënteerde taal en er kunnen veel objecten tegelijk aanwezig zijn, op de objecten die we zouden kunnen gebruiken, komt dit sleutelwoord hier in beeld, omdat het helpt om de huidige instantie of het huidige object van een klasse aan te wijzen.

Wanneer we dus methoden van de huidige klasse willen aanroepen, wanneer we de constructor van de huidige klasse willen aanroepen, de huidige instantie van methoden teruggeven, de huidige instantie doorgeven aan methoden; in al deze gevallen komt dit trefwoord van pas.

Voorbeeld use-cases

  1. Gesynchroniseerd blok in multithreading gebruikt dit trefwoord als argument
  2. Constructeur overbelast

Waarom dit trefwoord gebruiken in Java?

  • 'deze' variabele fungeert als een laatste variabele in Java, dat wil zeggen dat we geen waarde kunnen toewijzen aan 'deze' variabele, dit kan worden gecontroleerd door een waarde toe te kennen aan 'dit' trefwoord en het zal leiden tot een compilatiefout.
  • 'dit' kan ook worden gebruikt om naar statische leden te verwijzen (maar het zal niet worden gedaan) omdat statische leden slechts eenmaal worden gedeclareerd, dwz de geheugentoewijzing die aan hen wordt gedaan is slechts één keer en als we proberen manipulaties te maken met behulp van 'dit' sleutelwoord dan zal altijd de gegevens op die geheugenlocatie manipuleren in plaats van gegevens op nieuwe geheugenlocaties te maken, wat objecten doen.
  • Dit voorkomt de taak om onnodige toewijzingen aan variabelen te maken en soms hoeven we ook geen extra variabelen te maken, 'dit' trefwoord geeft ons de zekerheid waar naar de huidige instantie wordt verwezen.

Het belang van dit trefwoord

De onderstaande voorbeelden laten zien dat we variabelen met verschillende namen voor bepaalde eigenschappen moeten maken. Ze kunnen eenvoudig in constructor worden toegewezen tijdens objectinitialisatie met dit trefwoord.

  • Voorkomt lidvariabele en lokale variabelenaamconflict, men kan de lidvariabele doorverwijzen met dit trefwoord.

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");
)
)

  • Hiermee kunnen ook methoden van objectklasse worden ingeroepen.

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

  • Dit kan worden gebruikt in setter- en getter-methoden om de huidige exemplaren te retourneren.

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

Specifiek gebruik van dit trefwoord

Hier zijn enkele toepassingen van dit trefwoord dat hieronder wordt uitgelegd met de implementatie:

1. Gebruik een veld in

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())
(
)
)

Maar het had zo kunnen worden geschreven:

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())
(
)
)

Dus dit was iets dat we ook in de vorige sectie hebben uitgelegd, waar te zien is dat de naamgevingsconventies voor één soort gegevensveld uniform kunnen worden gehouden als we het sleutelwoord 'dit' gebruiken.

Daarom is het niet de bedoeling dat een ontwikkelaar een diagram met variabelen voor hetzelfde soort logische gegevensveld bijhoudt of in kaart brengt.

2. Constructeuroproep met dit trefwoord

We kunnen dit sleutelwoord in een constructor gebruiken en een andere constructor van daaruit in dezelfde klasse aanroepen. Dit wordt ook expliciete constructor-aanroeping genoemd.

Laten we een voorbeeld hieronder bekijken voor hetzelfde -

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())
(
)
)

Er zijn drie constructors hier in de afbeelding, merk op dat de standaardconstructor verondersteld wordt expliciet te worden geplaatst wanneer we constructoroverbelasting uitvoeren.

Deze constructors initialiseren enkele lidvariabelen, de compiler krijgt hier een indicatie over de aanroep van de constructor via het aantal parameters dat in de methoden wordt gebruikt.

3. Retourneren huidige klasse-instantie met behulp van dit trefwoord

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();
)
)

In het bovenstaande voorbeeld is dus te zien dat het huidige object wordt geretourneerd door een getter-methode en in dat geval is de specifieke methode "print" aangeroepen.

4. Gebruik als methode parameter

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();
)
)

Het voorbeeld citeerde hoe het huidige object wordt doorgegeven aan een methode die dit object voor eigen gebruik kan gebruiken.

Conclusie

We hebben hier verschillende use-cases gezien, waarbij de varianten worden aangehaald tegen het gebruik van dit trefwoord in Java en waar te gebruiken en waar niet te gebruiken, die voorwaarden zijn expliciet gesteld.
'dit' sleutelwoord is gebruikelijk in alle programmeertalen, ook in de op javascript gebaseerde kaders, 'dit' vindt een sleutelrol.
'dit' sleutelwoord kan overhead worden als het niet goed wordt begrepen en het is een grote hulp voor ontwikkelaars als het goed wordt begrepen.

Aanbevolen artikelen

Dit is een gids voor dit trefwoord in Java. Hier bespreken we het belang, het specifieke gebruik en voorbeelden van dit trefwoord in Java, samen met de implementatie van de code. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Object in Java
  2. Inkapseling in JavaScript
  3. Statisch trefwoord in Java
  4. Overbelasting en opheffen in Java
  5. Functie en regels voor het negeren in Python