logo

'aquesta' referència a Java

A Java, 'això' és una variable de referència que fa referència a l'objecte actual, o es pot dir que això a Java és una paraula clau que fa referència a la instància de l'objecte actual. Es pot utilitzar per cridar mètodes i camps de classe actuals, per passar una instància de la classe actual com a paràmetre i per diferenciar les variables locals i les d'instància. L'ús d'aquesta referència pot millorar la llegibilitat del codi i reduir els conflictes de noms.

Java aquesta referència Exemple

A Java, aquesta és una variable de referència que fa referència a l'objecte actual sobre el qual s'està invocant el mètode o el constructor. Es pot utilitzar per accedir a variables d'instància i mètodes de l'objecte actual.

A continuació es mostra la implementació d'aquesta referència:



Java


exemple de llista en java



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

>

>

Sortida

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

Explicació

Al codi anterior, hem definit una classe Persona amb dos camps privats nom i edat. Hem definit el constructor de classes Person per inicialitzar aquests camps amb aquesta paraula clau. També hem definit mètodes d'obtenció i configuració per a aquests camps que utilitzen aquesta paraula clau per fer referència a la instància de l'objecte actual.

En el mètode printDetails(), hem utilitzat aquesta paraula clau per fer referència a la instància de l'objecte actual i imprimir-ne el nom, l'edat i la referència de l'objecte.

A la classe Main, hem creat dos objectes Person i hem cridat el mètode printDetails() a cada objecte. La sortida mostra el nom, l'edat i la referència d'objecte de cada instància d'objecte.

Mètodes per utilitzar 'això' a Java

A continuació es mostren les maneres d'utilitzar la paraula clau 'això' a Java que s'esmenten a continuació:

  • Utilitzeu la paraula clau 'això' per referir-vos a les variables d'instància de classe actuals.
  • Utilitzant this() per invocar el constructor de classe actual
  • Utilitzant la paraula clau 'aquesta' per tornar la instància de classe actual
  • Utilitzant la paraula clau 'aquesta' com a paràmetre del mètode
  • Utilitzant la paraula clau 'aquesta' per invocar el mètode de classe actual
  • Utilitzant la paraula clau 'aquesta' com a argument a la crida del constructor

1. Utilitzeu la paraula clau 'aquesta' per referir-vos a les variables d'instància de classe actuals

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

>

ciutat a uas

>

Sortida

a = 10 b = 20>

2. Utilitzant this() per invocar el constructor de classe actual

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

>

>

Sortida

Inside parameterized constructor Inside default constructor>

3. Utilitzant la paraula clau 'this' per tornar la instància de classe actual

Java

proves de rendiment




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

>

>

Sortida

a = 10 b = 20>

4. Utilitzant la paraula clau 'aquesta' com a paràmetre del mètode

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

>

>

Sortida

a = 10 b = 20>

5. Utilitzant la paraula clau 'this' per invocar el mètode de classe actual

Java


matriu d'ordenació en 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();> >}> }>

>

>

Sortida

Inside show function Inside display function>

6. Utilitzant la paraula clau ‘this’ com a argument a la crida del constructor

Java


java matemàtiques.min



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

>

>

Sortida

Value of x in Class B : 5>

Avantatges d'utilitzar 'aquesta' referència

Hi ha certs avantatges d'utilitzar 'aquesta' referència a Java, tal com s'esmenta a continuació:

  1. Ajuda a distingir entre variables d'instància i variables locals amb el mateix nom.
  2. Es pot utilitzar per passar l'objecte actual com a argument a un altre mètode.
  3. Es pot utilitzar per retornar l'objecte actual des d'un mètode.
  4. Es pot utilitzar per invocar un constructor des d'un altre constructor sobrecarregat de la mateixa classe.

Desavantatges d'utilitzar 'aquesta' referència

Tot i que 'aquesta' referència té molts avantatges, també hi ha certs desavantatges:

  1. L'ús excessiu d'això pot dificultar la lectura i la comprensió del codi.
  2. Utilitzar-ho innecessàriament pot afegir despeses generals innecessàries al programa.
  3. Si s'utilitza en un context estàtic, es produeix un error en temps de compilació.
  4. En general, aquesta paraula clau és una eina útil per treballar amb objectes a Java, però s'ha d'utilitzar amb criteri i només quan sigui necessari.

Aquest article és contribuït per Mehak Narang i Amit Kumar .