logo

„tento“ odkaz v jazyku Java

V jazyku Java je „toto“ referenčná premenná, ktorá odkazuje na aktuálny objekt, alebo možno povedať, že v jazyku Java je to kľúčové slovo, ktoré odkazuje na aktuálnu inštanciu objektu. Môže sa použiť na volanie metód a polí aktuálnej triedy, na odovzdanie inštancie aktuálnej triedy ako parametra a na rozlíšenie medzi lokálnymi a inštanciami premenných. Použitie tohto odkazu môže zlepšiť čitateľnosť kódu a znížiť konflikty názvov.

Java tento referenčný príklad

V jazyku Java je to referenčná premenná, ktorá odkazuje na aktuálny objekt, na ktorom sa vyvoláva metóda alebo konštruktor. Môže sa použiť na prístup k premenným inštancie a metódam aktuálneho objektu.

Nižšie je uvedená implementácia tohto odkazu:



Java


linuxové súbory



// 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ýkon

Name: ABC Age: 18 Name: XYZ Age: 22 Name has been changed to: PQR>

Vysvetlenie

Vo vyššie uvedenom kóde sme definovali triedu Osoba s dvoma súkromnými poľami meno a vek. Definovali sme konštruktor triedy Osoba na inicializáciu týchto polí pomocou tohto kľúčového slova. Pre tieto polia sme tiež definovali metódy getter a setter, ktoré používajú toto kľúčové slovo na odkazovanie na aktuálnu inštanciu objektu.

V metóde printDetails() sme toto kľúčové slovo použili na odkazovanie na aktuálnu inštanciu objektu a vytlačenie jej názvu, veku a odkazu na objekt.

V triede Main sme vytvorili dva objekty Person a na každý objekt sme zavolali metódu printDetails(). Výstup zobrazuje názov, vek a odkaz na objekt každej inštancie objektu.

Metódy použitia „toto“ v jazyku Java

Nižšie sú uvedené spôsoby použitia kľúčového slova „toto“ v jazyku Java:

  • Použitie kľúčového slova „this“ na odkazovanie na aktuálne premenné inštancie triedy.
  • Použitie this() na vyvolanie konštruktora aktuálnej triedy
  • Použitie kľúčového slova „toto“ na vrátenie aktuálnej inštancie triedy
  • Použitie kľúčového slova „toto“ ako parametra metódy
  • Použitie kľúčového slova „toto“ na vyvolanie aktuálnej metódy triedy
  • Použitie kľúčového slova „toto“ ako argumentu vo volaní konštruktora

1. Použitie kľúčového slova „toto“ na odkazovanie na aktuálne premenné inštancie triedy

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

>

>

Výkon

a = 10 b = 20>

2. Použitie this() na vyvolanie konštruktora aktuálnej triedy

Java


heapify triediť



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

>

>

Výkon

Inside parameterized constructor Inside default constructor>

3. Použitie kľúčového slova „this“ na vrátenie aktuálnej inštancie triedy

Java




webové stránky ako coomeet

// 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ýkon

a = 10 b = 20>

4. Použitie kľúčového slova „toto“ ako parametra metódy

Java




zmeniť názov adresára linux
// 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ýkon

a = 10 b = 20>

5. Použitie kľúčového slova „toto“ na vyvolanie aktuálnej metódy triedy

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

>

>

Výkon

Inside show function Inside display function>

6. Použitie kľúčového slova „toto“ ako argumentu vo volaní konštruktora

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

>

exportovať gimp ako jpg
>

Výkon

Value of x in Class B : 5>

Výhody použitia „tejto“ referencie

Používanie „tejto“ referencie v jazyku Java má určité výhody, ako je uvedené nižšie:

  1. Pomáha rozlišovať medzi premennými inštancie a lokálnymi premennými s rovnakým názvom.
  2. Môže sa použiť na odovzdanie aktuálneho objektu ako argumentu inej metóde.
  3. Môže sa použiť na vrátenie aktuálneho objektu z metódy.
  4. Môže sa použiť na vyvolanie konštruktora z iného preťaženého konštruktora v rovnakej triede.

Nevýhody použitia „tohto“ odkazu

Hoci „tento“ odkaz má mnoho výhod, existujú aj určité nevýhody:

  1. Nadmerné používanie tohto kódu môže sťažiť čítanie a pochopenie kódu.
  2. Zbytočné používanie môže zvýšiť zbytočnú réžiu programu.
  3. Použitie tohto v statickom kontexte má za následok chybu v čase kompilácie.
  4. Celkovo je toto kľúčové slovo užitočným nástrojom na prácu s objektmi v Jave, ale malo by sa používať uvážlivo a len v prípade potreby.

Do tohto článku prispeli Mehak Narang a Amit Kumar .