Was ist dieses Schlüsselwort in Java?

Java ist eine objektorientierte Sprache und es können viele Objekte gleichzeitig vorhanden sein, auf die wir möglicherweise zugreifen. Das Schlüsselwort "this" kommt hier ins Bild, weil es dabei hilft, die aktuelle Instanz oder das aktuelle Objekt einer Klasse anzuzeigen.

Wenn wir also nach Methoden der aktuellen Klasse suchen und den Konstruktor der aktuellen Klasse aufrufen möchten, geben Sie die aktuelle Instanz von Methoden zurück und übergeben Sie die aktuelle Instanz an Methoden. In all diesen Fällen ist dieses Schlüsselwort praktisch.

Anwendungsbeispiele

  1. Synchronisierter Block in Multithreading verwendet dieses Schlüsselwort als Argument
  2. Konstruktorüberladung

Warum dieses Schlüsselwort in Java verwenden?

  • Diese Variable fungiert in Java als endgültige Variable, dh wir können dieser Variablen keinen Wert zuweisen. Dies kann durch Zuweisen eines Werts zu diesem Schlüsselwort überprüft werden. Dies führt zu einem Kompilierungsfehler.
  • 'this' kann auch verwendet werden, um auf statische Member zu verweisen (dies ist jedoch nicht der Fall), da statische Member nur einmal deklariert werden, dh die ihnen zugewiesene Speichermenge ist nur einmal vorhanden. Wenn wir versuchen, Manipulationen mit dem Schlüsselwort 'this' vorzunehmen, wird es ausgeführt manipuliert immer die Daten, die sich an diesem Speicherort befinden, anstatt Daten an neuen Speicherorten zu erstellen, wie dies Objekte tun.
  • Dies verhindert, dass unnötige Zuweisungen zu Variablen vorgenommen werden müssen, und manchmal müssen wir auch keine zusätzlichen Variablen erstellen. Das Schlüsselwort "this" gibt uns, wo immer es verwendet wird, die Sicherheit, dass auf die aktuelle Instanz verwiesen wird.

Bedeutung dieses Schlüsselworts

Die folgenden Beispiele zeigen, dass wir Variablen mit unterschiedlichen Namen für bestimmte Eigenschaften erstellen müssen. Sie können sie einfach im Konstruktor während der Objektinitialisierung mit diesem Schlüsselwort zuweisen.

  • Verhindert Konflikte zwischen Mitgliedsvariablen und lokalen Variablennamen. Mit diesem Schlüsselwort kann auf die Mitgliedsvariable verwiesen werden.

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

  • Hiermit können auch Methoden der Objektklasse aufgerufen werden.

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

  • Dies kann in Setter- und Getter-Methoden verwendet werden, um die aktuellen Instanzen zurückzugeben.

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

Bestimmte Verwendungen dieses Schlüsselworts

Im Folgenden werden einige Verwendungen dieses Schlüsselworts im Zusammenhang mit der Implementierung erläutert:

1. Verwenden Sie With-in a Field

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

Aber es hätte so geschrieben werden können:

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

Das haben wir auch im letzten Abschnitt erklärt, wo zu sehen ist, dass die Namenskonventionen für eine Art von Datenfeld einheitlich bleiben können, wenn wir das Schlüsselwort 'this' verwenden.

Daher darf ein Entwickler ein Variablendiagramm für dieselbe Art von logischem Datenfeld nicht verfolgen oder zuordnen.

2. Konstruktoraufruf mit diesem Schlüsselwort

Wir können dieses Schlüsselwort in einem Konstruktor verwenden und von dort einen anderen Konstruktor in derselben Klasse aufrufen. Dies wird auch als expliziter Konstruktoraufruf bezeichnet.

Betrachten wir ein Beispiel, das unten für dasselbe gezeigt wird -

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

Es gibt drei Konstruktoren hier in der Abbildung. Beachten Sie, dass der Standardkonstruktor explizit platziert werden soll, wenn Konstruktoren überladen werden.

Diese Konstruktoren initialisieren einige Membervariablen. Der Compiler erhält hier einen Hinweis auf den Konstruktoraufruf über die Anzahl der in den Methoden verwendeten Parameter.

3. Aktuelle Klasseninstanz mit diesem Schlüsselwort zurückgeben

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 dem oben gezeigten Beispiel ist also zu sehen, dass das aktuelle Objekt von einer Getter-Methode zurückgegeben wird und in dieser Instanz die bestimmte Methode "print" aufgerufen wurde.

4. Als Methodenparameter verwenden

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

Im Beispiel wird angegeben, wie das aktuelle Objekt an eine Methode übergeben wird, die dieses Objekt für die benutzerdefinierte Verwendung verwenden kann.

Fazit

Wir haben hier verschiedene Anwendungsfälle gesehen, wobei die Varianten gegen die Verwendung dieses Schlüsselworts in Java angeführt wurden und wo und wo diese Bedingungen explizit angegeben wurden.
Das Schlüsselwort 'this' ist in allen Programmiersprachen gleich, auch in javascript-basierten Frameworks spielt 'this' eine Schlüsselrolle.
'Dieses' Schlüsselwort kann zu einem Overhead werden, wenn es nicht richtig verstanden wird, und es ist eine große Hilfe für Entwickler, wenn es richtig verstanden wird.

Empfohlene Artikel

Dies ist eine Anleitung zu diesem Schlüsselwort in Java. Hier besprechen wir die Bedeutung, bestimmte Verwendungen und Beispiele dieses Schlüsselworts in Java zusammen mit seiner Code-Implementierung. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Objekt in Java
  2. Kapselung in JavaScript
  3. Statisches Schlüsselwort in Java
  4. Überladen und Überschreiben in Java
  5. Funktion und Regeln des Überschreibens in Python