java this keyword tutorial with code examples
In diesem Lernprogramm wird ein spezielles Schlüsselwort 'this' in Java ausführlich anhand einfacher Codebeispiele erläutert. Es behandelt, wie, wann und wo das Schlüsselwort 'this' verwendet werden soll:
In diesem Tutorial haben wir eines der wichtigsten Konzepte in Java vorgestellt - das Schlüsselwort 'this'. Wir werden die Details dieses Schlüsselworts untersuchen und einige Beispiele für seine Verwendung in Java vorstellen.
Das Schlüsselwort 'this' in Java ist eine Referenzvariable. Die Referenzvariable 'this' zeigt auf das aktuelle Objekt im Java-Programm . Wenn Sie also auf ein Mitglied oder eine Funktion des aktuellen Objekts zugreifen möchten, können Sie dies mithilfe der Referenz 'this' tun.
Was du lernen wirst:
- Java ‘this’ Einführung
- Wann wird 'this' in Java verwendet?
- Zugriff auf Instanzvariable Mit 'this'
- 'Dies' wurde als Methodenparameter übergeben
- Rufen Sie die aktuelle Klassenmethode mit 'this' auf.
- Zurück mit 'this'
- Verwenden von 'this' zum Aufrufen des aktuellen Klassenkonstruktors
- Verwenden von 'this' als Argument für den Konstruktor
- Häufig gestellte Fragen
- Fazit
Java ‘this’ Einführung
Die Referenz 'dies' wird allgemein als 'dieser Zeiger' bezeichnet, da sie auf das aktuelle Objekt zeigt. Der 'dieser Zeiger' ist nützlich, wenn die Klassenattribute und -parameter einen Namen haben. Wenn eine solche Situation auftritt, beseitigt der 'dieser Zeiger' die Verwirrung, da wir mit dem 'dieser' Zeiger auf Parameter zugreifen können.
In diesem Tutorial werden wir die Verwendung dieses Zeigers in verschiedenen Situationen zusammen mit Beispielen diskutieren.
Wann wird 'this' in Java verwendet?
In Java hat der Begriff 'dies' folgende Verwendungszwecke:
- Die Referenz 'this' wird verwendet, um auf die Klasseninstanzvariable zuzugreifen.
- Sie können 'this' sogar als Argument im Methodenaufruf übergeben.
- 'This' kann auch verwendet werden, um implizit die aktuelle Klassenmethode aufzurufen.
- Wenn Sie das aktuelle Objekt von der Methode zurückgeben möchten, verwenden Sie 'this'.
- Wenn Sie den aktuellen Klassenkonstruktor aufrufen möchten, kann 'this' verwendet werden.
- Der Konstruktor kann auch 'dies' als Argument haben.
Lassen Sie uns nun jede dieser Verwendungen separat betrachten.
Zugriff auf Instanzvariable Mit 'this'
Instanzvariablen von Klassen- und Methodenparametern können denselben Namen haben. Der Zeiger 'this' kann verwendet werden, um die daraus resultierende Mehrdeutigkeit zu beseitigen.
Das folgende Java-Programm zeigt, wie mit 'this' auf Instanzvariablen zugegriffen werden kann.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String[] args) { this_Test object = new this_Test(5,10); object.display(); } }
Ausgabe:
Im obigen Programm können Sie sehen, dass die Instanzvariablen und Methodenparameter dieselben Namen haben. Wir verwenden diesen Zeiger mit Instanzvariablen, um zwischen Instanzvariablen und Methodenparametern zu unterscheiden.
'Dies' wurde als Methodenparameter übergeben
Sie können diesen Zeiger auch als Methodenparameter übergeben. Die Übergabe dieses Zeigers als Methodenparameter ist normalerweise erforderlich, wenn Sie mit Ereignissen arbeiten. Zum Beispiel, Angenommen, Sie möchten ein Ereignis für das aktuelle Objekt / Handle auslösen, dann müssen Sie es mit diesem Zeiger auslösen.
Im Folgenden ist ein Programmier-Exponat angegeben, in dem wir diesen Zeiger an die Methode übergeben haben.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String[] args) { Test_method object = new Test_method(); object.get(); } }
Ausgabe:
In diesem Programm erstellen wir in der Hauptfunktion ein Objekt der Klasse Test_method und rufen dann mit diesem Objekt die Methode get () auf. In der get () -Methode wird der Zeiger 'this' an die printVal () -Methode übergeben, die die aktuellen Instanzvariablen anzeigt.
Rufen Sie die aktuelle Klassenmethode mit 'this' auf.
So wie Sie den Zeiger 'this' an die Methode übergeben können, können Sie diesen Zeiger auch zum Aufrufen einer Methode verwenden. Wenn Sie beim Aufrufen der Methode der aktuellen Klasse überhaupt vergessen, diesen Zeiger einzuschließen, fügt der Compiler ihn für Sie hinzu.
Ein Beispiel für das Aufrufen der Klassenmethode mit 'this' finden Sie unten.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args[]) { Test_this t1 = new Test_this(); t1.print(); } }
Ausgabe:
In diesem Programm ruft die Klassenmethode print () die show () -Methode mit diesem Zeiger auf, wenn sie vom Klassenobjekt in der Hauptfunktion aufgerufen wird.
Zurück mit 'this'
Wenn der Rückgabetyp der Methode das Objekt der aktuellen Klasse ist, können Sie bequem den Zeiger 'this' zurückgeben. Mit anderen Worten, Sie können das aktuelle Objekt von einer Methode mit dem Zeiger 'this' zurückgeben.
Im Folgenden wird die Implementierung der Rückgabe eines Objekts mit dem Zeiger 'this' beschrieben.
bestes Programm zur Überprüfung der Computertemperatur
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String[] args) { Test_this object = new Test_this(); object.get().display(); } }
Ausgabe:
Das obige Programm zeigt die Methode get (), die dies zurückgibt und ein Objekt der Klasse Test_this ist. Unter Verwendung des aktuellen Objekts, das von der Methode get () zurückgegeben wird, wird die Methodenanzeige wiederum aufgerufen.
Verwenden von 'this' zum Aufrufen des aktuellen Klassenkonstruktors
Sie können auch den Zeiger 'this' verwenden, um den Konstruktor der aktuellen cla.ss aufzurufen. Die Grundidee besteht darin, den Konstruktor wiederzuverwenden. Wenn Sie mehr als einen Konstruktor in Ihrer Klasse haben, können Sie diese Konstruktoren voneinander aufrufen, was zu einer Verkettung der Konstruktoren führt.
Betrachten Sie das folgende Java-Programm.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String[] args) { This_construct object = new This_construct(); } }
Ausgabe:
Im obigen Programm haben wir zwei Konstruktoren in der Klasse. Wir rufen den anderen Konstruktor mit dem Zeiger 'this' vom Standardkonstruktor der Klasse auf.
Verwenden von 'this' als Argument für den Konstruktor
Sie können diesen Zeiger auch als Argument an einen Konstruktor übergeben. Dies ist hilfreicher, wenn Sie mehrere Klassen haben, wie in der folgenden Implementierung gezeigt.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String[] args) { Static_B obj = new Static_B(); } }
Ausgabe:
Wie in der obigen Implementierung gezeigt, haben wir zwei Klassen und jeder Klassenkonstruktor ruft den Konstruktor der anderen Klasse auf. Zu diesem Zweck wird der Zeiger 'this' verwendet.
Häufig gestellte Fragen
F # 1) Was ist der Unterschied zwischen this und this () in Java?
Antworten: In Java bezieht sich dies auf das aktuelle Objekt, während sich this () auf den Konstruktor mit übereinstimmenden Parametern bezieht. Das Schlüsselwort 'this' funktioniert nur mit Objekten. Der Aufruf 'this ()' wird verwendet, um mehr als einen Konstruktor aus derselben Klasse aufzurufen.
F # 2) Ist dieses Schlüsselwort in Java erforderlich?
Antworten: Dies ist insbesondere dann erforderlich, wenn Sie das aktuelle Objekt von einer Methode an eine andere oder zwischen den Konstruktoren übergeben oder das aktuelle Objekt einfach für andere Operationen verwenden müssen.
F # 3) Was ist der Unterschied zwischen this () und super () in Java?
Antworten: Sowohl this () als auch super () sind Schlüsselwörter in Java. Während this () den Konstruktor des aktuellen Objekts mit übereinstimmenden Parametern darstellt, repräsentiert super () den Konstruktor der übergeordneten Klasse.
F # 4) Können Sie sowohl this () als auch super () in einem Konstruktor verwenden?
Antworten: Ja, du kannst es benutzen. Der Konstruktor this () zeigt auf den aktuellen Konstruktor, während super () auf den Konstruktor der übergeordneten Klasse zeigt. Denken Sie daran, dass sowohl this () als auch super () die erste Anweisung sein sollten.
Fazit
Das Schlüsselwort 'this' verweist auf das aktuelle Objekt im Java-Programm. Es kann verwendet werden, um Verwirrung zu vermeiden, die sich aus denselben Namen für Klassenvariablen (Instanzvariablen) und Methodenparameter ergibt.
Sie können den Zeiger 'this' auf viele Arten verwenden, z. B. auf Instanzvariablen zugreifen, Argumente an Methode oder Konstruktor übergeben, das Objekt zurückgeben usw. Der Zeiger 'this' ist ein wichtiges Schlüsselwort in Java und eine hilfreiche Funktion für den Zugriff auf das aktuelle Objekt und seine Mitglieder und Funktionen.
Wir hoffen, dass Sie die Verwendung des Schlüsselworts 'this' in Java in diesem Lernprogramm verfolgt haben.
Literatur-Empfehlungen
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Java Reflection Tutorial mit Beispielen
- Tutorial zur Behandlung von C # -Ausnahmen mit Codebeispielen
- Python DateTime Tutorial mit Beispielen
- C # -Funktionen / Methoden-Tutorial mit Codebeispielen
- Java SWING Tutorial: Container-, Komponenten- und Ereignisbehandlung
- JCF-Tutorial (Java Collections Framework)
- Java Interface und Abstract Class Tutorial mit Beispielen