logo

„Tai“ nuoroda „Java“.

„Java“ kalboje „tai“ yra nuorodos kintamasis, nurodantis dabartinį objektą, arba galima sakyti, kad „Java“ yra raktinis žodis, nurodantis dabartinį objekto egzempliorių. Jis gali būti naudojamas iškviesti dabartinės klasės metodus ir laukus, perduoti dabartinės klasės egzempliorių kaip parametrą ir atskirti vietinius ir egzempliorių kintamuosius. Naudodami šią nuorodą galite pagerinti kodo skaitomumą ir sumažinti pavadinimų konfliktus.

Java šios nuorodos pavyzdys

Java programoje tai yra nuorodos kintamasis, nurodantis dabartinį objektą, kuriame iškviečiamas metodas arba konstruktorius. Jis gali būti naudojamas norint pasiekti esamo objekto egzempliorių kintamuosius ir metodus.



Žemiau pateikiamas šios nuorodos įgyvendinimas:

Java




atvirojo kodo OS pavyzdys





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

>

>

Išvestis

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

Paaiškinimas

Aukščiau esančiame kode apibrėžėme Asmens klasę su dviem privačiais laukais pavadinimas ir amžius. Apibrėžėme Asmens klasės konstruktorių, kuris inicijuotų šiuos laukus naudodami šį raktinį žodį. Mes taip pat apibrėžėme šių laukų gaudymo ir nustatymo metodus, kurie naudoja šį raktinį žodį, norėdami nurodyti dabartinį objekto egzempliorių.

Taikant printDetails() metodą, mes naudojome šį raktinį žodį norėdami nurodyti dabartinį objekto egzempliorių ir išspausdinti jo pavadinimą, amžių ir objekto nuorodą.

Pagrindinėje klasėje sukūrėme du asmens objektus ir kiekviename objekte pavadinome metodą printDetails(). Išvestis rodo kiekvieno objekto egzemplioriaus pavadinimą, amžių ir objekto nuorodą.

Metodai, kaip naudoti „tai“ programoje „Java“.

Toliau pateikiami būdai, kaip naudoti „šį“ raktinį žodį Java:

  • Raktinio žodžio „šis“ naudojimas norint nurodyti esamus klasės egzempliorių kintamuosius.
  • Naudodami šį () iškvieskite dabartinį klasės konstruktorių
  • Raktinio žodžio „šis“ naudojimas norint grąžinti dabartinį klasės egzempliorių
  • Kaip metodo parametrą naudokite šį raktinį žodį
  • Naudojant „šį“ raktinį žodį, norint iškviesti dabartinį klasės metodą
  • „Šio“ raktinio žodžio naudojimas kaip argumentas konstruktoriaus iškvietime

1. Raktinis žodis „šis“ naudojamas dabartiniams klasės egzempliorių kintamiesiems nurodyti

Java




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

>

>

Išvestis

a = 10 b = 20>

2. Naudodami šį() iškviesti esamą klasės konstruktorių

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

>

>

Išvestis

Inside parameterized constructor Inside default constructor>

3. Raktinis žodis „šis“ naudojamas dabartiniam klasės egzemplioriui grąžinti

Java




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

>

perjungimo metodas java

>

Išvestis

galutinis raktinis žodis java
a = 10 b = 20>

4. Naudoti raktinį žodį „šis“ kaip metodo parametrą

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

>

>

Išvestis

a = 10 b = 20>

5. Raktinio žodžio „šis“ naudojimas dabartiniam klasės metodui iškviesti

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

>

>

Išvestis

sujungimas java eilutė
Inside show function Inside display function>

6. „šio“ raktinio žodžio kaip argumento naudojimas konstruktoriaus iškvietime

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

>

>

Išvestis

Value of x in Class B : 5>

„Šios“ nuorodos naudojimo pranašumai

Yra tam tikrų „šios“ nuorodos „Java“ naudojimo pranašumų, kaip nurodyta toliau:

  1. Tai padeda atskirti egzempliorių kintamuosius ir vietinius kintamuosius tuo pačiu pavadinimu.
  2. Jis gali būti naudojamas perduoti dabartinį objektą kaip argumentą kitam metodui.
  3. Jis gali būti naudojamas norint grąžinti esamą objektą iš metodo.
  4. Jis gali būti naudojamas iškviesti konstruktorių iš kito perkrauto konstruktoriaus toje pačioje klasėje.

„Šios“ nuorodos naudojimo trūkumai

Nors ši nuoroda turi daug privalumų, ji taip pat turi tam tikrų trūkumų:

  1. Per daug naudojant kodą gali būti sunkiau skaityti ir suprasti.
  2. Jei tai naudosite be reikalo, programa gali pridėti nereikalingų išlaidų.
  3. Naudojant tai statiniame kontekste, atsiranda kompiliavimo laiko klaida.
  4. Apskritai šis raktinis žodis yra naudingas įrankis dirbant su objektais Java, tačiau jį reikia naudoti apgalvotai ir tik tada, kai reikia.

Prie šio straipsnio prisidėjo Mehakas Narangas ir Amitas Kumaras .