V Javě je „toto“ referenční proměnná, která odkazuje na aktuální objekt, nebo lze říci, že v Javě je to klíčové slovo, které odkazuje na aktuální instanci objektu. Lze jej použít k volání metod a polí aktuální třídy, k předání instance aktuální třídy jako parametru ak rozlišení mezi lokálními a instančními proměnnými. Použití tohoto odkazu může zlepšit čitelnost kódu a snížit konflikty názvů.
Java tento referenční příklad
V Javě se jedná o referenční proměnnou, která odkazuje na aktuální objekt, na kterém je vyvolána metoda nebo konstruktor. Lze jej použít pro přístup k instančním proměnným a metodám aktuálního objektu.
Níže je implementace této reference:
Jáva
jarní architektura bot
// 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());> >}> }> |
>
>Výstup
Name: ABC Age: 18 Name: XYZ Age: 22 Name has been changed to: PQR>
Vysvětlení
Ve výše uvedeném kódu jsme definovali třídu Osoba se dvěma soukromými poli jméno a věk. Definovali jsme konstruktor třídy Person pro inicializaci těchto polí pomocí tohoto klíčového slova. Pro tato pole jsme také definovali metody getter a setter, které používají toto klíčové slovo k odkazování na aktuální instanci objektu.
V metodě printDetails() jsme toto klíčové slovo použili k odkazování na aktuální instanci objektu a vytištění jejího názvu, stáří a odkazu na objekt.
Ve třídě Main jsme vytvořili dva objekty Person a u každého objektu zavolali metodu printDetails(). Výstup zobrazuje název, stáří a odkaz na objekt každé instance objektu.
Metody použití ‚toho‘ v Javě
Níže jsou uvedeny způsoby použití klíčového slova „toto“ v Javě:
java výčty
- Použití klíčového slova „this“ k odkazování na aktuální proměnné instance třídy.
- Použití this() k vyvolání konstruktoru aktuální třídy
- Pomocí klíčového slova „toto“ vrátíte aktuální instanci třídy
- Použití klíčového slova „toto“ jako parametru metody
- Použití klíčového slova „toto“ k vyvolání metody aktuální třídy
- Použití klíčového slova „toto“ jako argumentu ve volání konstruktoru
1. Použití klíčového slova „toto“ k odkazování na aktuální proměnné instance třídy
Jáva
// 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();> >}> }> |
>
>Výstup
a = 10 b = 20>
2. Použití this() k vyvolání konstruktoru aktuální třídy
Jáva
// 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();> >}> }> |
>
if else příkazy java
>Výstup
Inside parameterized constructor Inside default constructor>
3. Pomocí klíčového slova „toto“ vrátíte aktuální instanci třídy
Jáva
// 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();> >}> }> |
>
>Výstup
a = 10 b = 20>
4. Použití klíčového slova „toto“ jako parametru metody
Jáva
pro smyčku v bash
// 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();> >}> }> |
>
>Výstup
a = 10 b = 20>
5. Použití klíčového slova „toto“ k vyvolání metody aktuální třídy
Jáva
// 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();> >}> }> |
java míchá do int
>
>Výstup
Inside show function Inside display function>
6. Použití klíčového slova „toto“ jako argumentu ve volání konstruktoru
Jáva
// 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();> >}> }> |
>
>Výstup
Value of x in Class B : 5>
Výhody použití „toto“ reference
Existují určité výhody použití „toto“ reference v Javě, jak je uvedeno níže:
- Pomáhá rozlišovat mezi proměnnými instance a lokálními proměnnými se stejným názvem.
- Lze jej použít k předání aktuálního objektu jako argumentu jiné metodě.
- Lze jej použít k vrácení aktuálního objektu z metody.
- Lze jej použít k vyvolání konstruktoru z jiného přetíženého konstruktoru ve stejné třídě.
Nevýhody použití „toto“ reference
Ačkoli „tento“ odkaz má mnoho výhod, existují také určité nevýhody:
- Nadměrné používání tohoto kódu může ztížit čtení a pochopení.
- Zbytečné použití může přidat zbytečné režii programu.
- Použití ve statickém kontextu má za následek chybu při kompilaci.
- Celkově je toto klíčové slovo užitečným nástrojem pro práci s objekty v Javě, ale mělo by být používáno uvážlivě a pouze v případě potřeby.
Do tohoto článku přispěl Mehak Narang a Amit Kumar .