In Java ist „this“ eine Referenzvariable, die auf das aktuelle Objekt verweist, oder man kann sagen, dass „this“ in Java ein Schlüsselwort ist, das auf die aktuelle Objektinstanz verweist. Es kann verwendet werden, um aktuelle Klassenmethoden und -felder aufzurufen, eine Instanz der aktuellen Klasse als Parameter zu übergeben und zwischen lokalen Variablen und Instanzvariablen zu unterscheiden. Die Verwendung dieser Referenz kann die Lesbarkeit des Codes verbessern und Namenskonflikte reduzieren.
Java dieses Referenzbeispiel
In Java ist dies eine Referenzvariable, die auf das aktuelle Objekt verweist, für das die Methode oder der Konstruktor aufgerufen wird. Es kann verwendet werden, um auf Instanzvariablen und Methoden des aktuellen Objekts zuzugreifen.
Nachfolgend finden Sie die Implementierung dieser Referenz:
Java
Sortierung nach Zufallsprinzip in SQL
// Java Program to implement> // Java this reference> // Driver Class> public> class> Person {> > // Fields Declared> > String name;> > int> age;> > // Constructor> > Person(String name,> int> age)> > {> > this> .name = name;> > this> .age = age;> > }> > // Getter for name> > public> String get_name() {> return> name; }> > // Setter for name> > public> void> change_name(String name)> > {> > this> .name = name;> > }> > // Method to Print the Details of> > // the person> > public> void> printDetails()> > {> > System.out.println(> 'Name: '> +> this> .name);> > System.out.println(> 'Age: '> +> this> .age);> > System.out.println();> > }> > // main function> > public> static> void> main(String[] args)> > {> > // Objects Declared> > Person first => new> Person(> 'ABC'> ,> 18> );> > Person second => new> Person(> 'XYZ'> ,> 22> );> > first.printDetails();> > second.printDetails();> > first.change_name(> 'PQR'> );> > System.out.println(> 'Name has been changed to: '> > + first.get_name());> > }> }> |
>
>Ausgabe
Name: ABC Age: 18 Name: XYZ Age: 22 Name has been changed to: PQR>
Erläuterung
Im obigen Code haben wir eine Person-Klasse mit zwei privaten Feldern namens und Alter definiert. Wir haben den Person-Klassenkonstruktor definiert, um diese Felder mit diesem Schlüsselwort zu initialisieren. Wir haben auch Getter- und Setter-Methoden für diese Felder definiert, die dieses Schlüsselwort verwenden, um auf die aktuelle Objektinstanz zu verweisen.
In der printDetails()-Methode haben wir dieses Schlüsselwort verwendet, um auf die aktuelle Objektinstanz zu verweisen und deren Namen, Alter und Objektreferenz auszugeben.
In der Main-Klasse haben wir zwei Person-Objekte erstellt und für jedes Objekt die Methode printDetails() aufgerufen. Die Ausgabe zeigt den Namen, das Alter und die Objektreferenz jeder Objektinstanz.
jvm in Java
Methoden zur Verwendung von „this“ in Java
Im Folgenden sind die Möglichkeiten aufgeführt, das Schlüsselwort „this“ in Java zu verwenden:
- Verwenden des Schlüsselworts „this“, um auf aktuelle Klasseninstanzvariablen zu verweisen.
- Verwenden Sie this(), um den aktuellen Klassenkonstruktor aufzurufen
- Verwenden Sie das Schlüsselwort „this“, um die aktuelle Klasseninstanz zurückzugeben
- Verwendung des Schlüsselworts „this“ als Methodenparameter
- Verwenden Sie das Schlüsselwort „this“, um die aktuelle Klassenmethode aufzurufen
- Verwendung des Schlüsselworts „this“ als Argument im Konstruktoraufruf
1. Verwenden des Schlüsselworts „this“, um auf aktuelle Klasseninstanzvariablen zu verweisen
Java
// Java code for using 'this' keyword to> // refer current class instance variables> class> Test {> > int> a;> > int> b;> > // Parameterized constructor> > Test(> int> a,> int> b)> > {> > this> .a = a;> > this> .b = b;> > }> > void> display()> > {> > // Displaying value of variables a and b> > System.out.println(> 'a = '> + a +> ' b = '> + b);> > }> > public> static> void> main(String[] args)> > {> > Test object => new> Test(> 10> ,> 20> );> > object.display();> > }> }> |
>
>Ausgabe
a = 10 b = 20>
2. Verwenden Sie this(), um den aktuellen Klassenkonstruktor aufzurufen
Java
// Java code for using this() to> // invoke current class constructor> class> Test {> > int> a;> > int> b;> > // Default constructor> > Test()> > {> > this> (> 10> ,> 20> );> > System.out.println(> > 'Inside default constructor
'> );> > }> > // Parameterized constructor> > Test(> int> a,> int> b)> > {> > this> .a = a;> > this> .b = b;> > System.out.println(> > 'Inside parameterized constructor'> );> > }> > public> static> void> main(String[] args)> > {> > Test object => new> Test();> > }> }> |
>
>Ausgabe
Inside parameterized constructor Inside default constructor>
3. Verwenden Sie das Schlüsselwort „this“, um die aktuelle Klasseninstanz zurückzugeben
Java
Arraylist und Linkedlist
// Java code for using 'this' keyword> // to return the current class instance> class> Test {> > int> a;> > int> b;> > // Default constructor> > Test()> > {> > a => 10> ;> > b => 20> ;> > }> > // Method that returns current class instance> > Test get() {> return> this> ; }> > // Displaying value of variables a and b> > void> display()> > {> > System.out.println(> 'a = '> + a +> ' b = '> + b);> > }> > public> static> void> main(String[] args)> > {> > Test object => new> Test();> > object.get().display();> > }> }> |
>
>Ausgabe
a = 10 b = 20>
4. Verwendung des Schlüsselworts „this“ als Methodenparameter
Java
// Java code for using 'this'> // keyword as method parameter> class> Test {> > int> a;> > int> b;> > // Default constructor> > Test()> > {> > a => 10> ;> > b => 20> ;> > }> > // Method that receives 'this' keyword as parameter> > void> display(Test obj)> > {> > System.out.println(> 'a = '> + obj.a> > +> ' b = '> + obj.b);> > }> > // Method that returns current class instance> > void> get() { display(> this> ); }> > // main function> > public> static> void> main(String[] args)> > {> > Test object => new> Test();> > object.get();> > }> }> |
>
gegnerische Suche
>Ausgabe
a = 10 b = 20>
5. Verwenden Sie das Schlüsselwort „this“, um die aktuelle Klassenmethode aufzurufen
Java
// Java code for using this to invoke current> // class method> class> Test {> > void> display()> > {> > // calling function show()> > this> .show();> > System.out.println(> 'Inside display function'> );> > }> > void> show()> > {> > System.out.println(> 'Inside show function'> );> > }> > public> static> void> main(String args[])> > {> > Test t1 => new> Test();> > t1.display();> > }> }> |
>
>Ausgabe
Inside show function Inside display function>
6. Verwendung des Schlüsselworts „this“ als Argument im Konstruktoraufruf
Java
// Java code for using this as an argument in constructor> // call> // Class with object of Class B as its data member> class> A {> > B obj;> > // Parameterized constructor with object of B> > // as a parameter> > A(B obj)> > {> > this> .obj = obj;> > // calling display method of class B> > obj.display();> > }> }> class> B {> > int> x => 5> ;> > // Default Constructor that create an object of A> > // with passing this as an argument in the> > // constructor> > B() { A obj => new> A(> this> ); }> > // method to show value of x> > void> display()> > {> > System.out.println(> 'Value of x in Class B : '> + x);> > }> > public> static> void> main(String[] args)> > {> > B obj => new> B();> > }> }> |
>
>Ausgabe
c# datetime
Value of x in Class B : 5>
Vorteile der Verwendung „dieser“ Referenz
Die Verwendung dieser Referenz in Java bietet bestimmte Vorteile, wie unten erwähnt:
- Es hilft, zwischen Instanzvariablen und lokalen Variablen mit demselben Namen zu unterscheiden.
- Es kann verwendet werden, um das aktuelle Objekt als Argument an eine andere Methode zu übergeben.
- Es kann verwendet werden, um das aktuelle Objekt von einer Methode zurückzugeben.
- Es kann verwendet werden, um einen Konstruktor von einem anderen überladenen Konstruktor in derselben Klasse aufzurufen.
Nachteile der Verwendung „dieser“ Referenz
Obwohl „diese“ Referenz viele Vorteile mit sich bringt, gibt es auch bestimmte Nachteile:
- Übermäßiger Gebrauch kann dazu führen, dass der Code schwerer zu lesen und zu verstehen ist.
- Eine unnötige Verwendung kann zu unnötigem Overhead für das Programm führen.
- Die Verwendung in einem statischen Kontext führt zu einem Fehler bei der Kompilierung.
- Insgesamt ist dieses Schlüsselwort ein nützliches Werkzeug für die Arbeit mit Objekten in Java, es sollte jedoch mit Bedacht und nur bei Bedarf verwendet werden.
Dieser Artikel wurde verfasst von Mehak Narang Und Amit Kumar .