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ó:
- Ajuda a distingir entre variables d'instància i variables locals amb el mateix nom.
- Es pot utilitzar per passar l'objecte actual com a argument a un altre mètode.
- Es pot utilitzar per retornar l'objecte actual des d'un mètode.
- 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:
- L'ús excessiu d'això pot dificultar la lectura i la comprensió del codi.
- Utilitzar-ho innecessàriament pot afegir despeses generals innecessàries al programa.
- Si s'utilitza en un context estàtic, es produeix un error en temps de compilació.
- 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 .