java this keyword tutorial with code examples
Aquest tutorial explica una paraula clau especial 'això' a Java detallada amb exemples de codi simple. Inclou com, quan i on utilitzar la paraula clau 'això':
En aquest tutorial, hem introduït un dels conceptes importants a Java: la paraula clau 'aquesta'. Explorarem els detalls d’aquesta paraula clau i també presentarem alguns exemples del seu ús a Java.
La paraula clau 'això' a Java és una variable de referència. La variable de referència 'això' apunta a l'objecte actual del programa Java . Per tant, si voleu accedir a qualsevol membre o funció de l'objecte actual, podeu fer-ho mitjançant la referència 'això'.
Què aprendreu:
- Introducció a Java 'això'
- Quan s'ha d'utilitzar 'això' a Java?
- Variable d'instància d'accés mitjançant 'això'
- 'Això' va passar com a paràmetre del mètode
- Invoqueu el mètode de classe actual amb 'això'
- Torna amb 'això'
- Utilitzant 'això' per invocar el constructor de classes actual
- Utilitzant 'això' com a argument per al constructor
- Preguntes freqüents
- Conclusió
Introducció a Java 'això'
La referència 'això' es denomina generalment 'aquest punter' ja que apunta a l'objecte actual. El 'punter' és útil quan hi ha algun nom per als atributs i paràmetres de la classe. Quan es produeix una situació així, el 'aquest punter' elimina la confusió ja que podem accedir a paràmetres mitjançant el punter 'aquest'.
En aquest tutorial, analitzarem l'ús del punter 'aquest' en diverses situacions juntament amb exemples.
Quan s'ha d'utilitzar 'això' a Java?
A Java, el terme 'això' té els usos següents:
- La referència 'això' s'utilitza per accedir a la variable d'instància de classe.
- Fins i tot podeu passar 'això' com a argument a la crida al mètode.
- 'Això' també es pot utilitzar per invocar implícitament el mètode de classe actual.
- Si voleu tornar l'objecte actual del mètode, utilitzeu 'això'.
- Si voleu invocar el constructor de classes actual, es pot utilitzar 'això'.
- El constructor també pot tenir 'això' com a argument.
Vegem ara cadascun d’aquests usos per separat.
Variable d'instància d'accés mitjançant 'això'
Les variables d’instància dels paràmetres de classe i mètode poden tenir el mateix nom. El punter 'aquest' es pot utilitzar per eliminar l'ambigüitat que en sorgeix.
El programa Java següent mostra com es pot utilitzar 'això' per accedir a variables d'instància.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
Sortida:
Al programa anterior, podeu veure que les variables d’instància i els paràmetres del mètode comparteixen els mateixos noms. Utilitzem el punter 'aquest' amb variables d'instància per diferenciar les variables d'instància i els paràmetres del mètode.
'Això' va passar com a paràmetre del mètode
També podeu passar aquest punter com a paràmetre de mètode. Normalment, cal passar aquest punter com a paràmetre de mètode quan es tracta d’esdeveniments. Per exemple, suposem que voleu activar algun esdeveniment a l'objecte / controlador actual, llavors heu de desencadenar-lo mitjançant aquest punter.
A continuació es mostra una exposició de programació en què hem passat aquest punter al mètode.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
Sortida:
En aquest programa, creem un objecte de la classe Test_method a la funció principal i després cridem mètode get () amb aquest objecte. Dins del mètode get (), aquest punter es passa al mètode printVal () que mostra les variables d’instància actuals.
Invoqueu el mètode de classe actual amb 'això'
De la mateixa manera que podeu passar aquest punter al mètode, també podeu utilitzar-lo per invocar un mètode. Si us oblideu d'incloure aquest punter mentre invoqueu el mètode de la classe actual, el compilador l'afegeix per a vosaltres.
A continuació es mostra un exemple d’invocació del mètode de classe amb ‘això’.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
Sortida:
En aquest programa, el mètode class print () crida al mètode show () mitjançant aquest punter quan l'objecte de classe la invoca a la funció principal.
Torna amb 'això'
Si el tipus de retorn del mètode és l’objecte de la classe actual, podeu tornar convenientment aquest punter. Dit d’una altra manera, podeu retornar l’objecte actual d’un mètode mitjançant el punter ‘this’.
A continuació es mostra la implementació de la devolució d’un objecte mitjançant el punter ‘aquest’.
quin és el millor programari de gestió de tasques
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
Sortida:
El programa anterior mostra el mètode get () que retorna aquest objecte de la classe Test_this. Mitjançant l’objecte actual retornat pel mètode get (), al seu torn s’anomena la visualització del mètode.
Utilitzant 'això' per invocar el constructor de classes actual
També podeu utilitzar el punter 'aquest' per invocar el constructor de les cla.ss. actuals. La idea bàsica és reutilitzar el constructor. Una vegada més, si teniu més d'un constructor a la vostra classe, podeu anomenar-los els uns als altres i resultar en un encadenament de constructors.
Penseu en el següent programa Java.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
Sortida:
Al programa anterior, tenim dos constructors a la classe. Anomenem l’altre constructor que utilitza el punter ‘aquest’, del constructor per defecte de la classe.
Utilitzant 'això' com a argument per al constructor
També podeu passar aquest punter com a argument a un constructor. Això és més útil quan teniu diverses classes, tal com es mostra a la implementació següent.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
Sortida:
Com es mostra a la implementació anterior, tenim dues classes i cada constructor de classes truca al constructor de l’altra classe. El punter 'aquest' s'utilitza amb aquest propòsit.
Preguntes freqüents
P # 1) Quina diferència hi ha entre això i això () a Java?
Resposta: A Java, es refereix a l'objecte actual mentre que aquest () es refereix al constructor amb paràmetres coincidents. La paraula clau 'això' només funciona amb objectes. La trucada “this ()” s’utilitza per cridar a més d’un constructor de la mateixa classe.
Q # 2) Aquesta paraula clau és necessària a Java?
Resposta: És necessari sobretot quan cal passar l'objecte actual d'un mètode a un altre, o entre els constructors o simplement utilitzar l'objecte actual per a altres operacions.
P # 3) Quina diferència hi ha entre aquest () i el super () a Java?
Resposta: Tant això () com super () són paraules clau a Java. Tot i que això () representa el constructor de l'objecte actual amb paràmetres coincidents, super () representa el constructor de la classe pare.
Q # 4) Podeu utilitzar això () i super () en un constructor?
Resposta: Sí, el podeu utilitzar. El constructor this () assenyalarà el constructor actual mentre que super () assenyalarà el constructor de classe pare. Recordeu que tant aquest () com el super () haurien de ser la primera afirmació.
Conclusió
La paraula clau 'això' és una referència a l'objecte actual del programa Java. Es pot utilitzar per evitar confusions derivades dels mateixos noms per a variables de classe (variables d’instància) i paràmetres de mètode.
Podeu utilitzar el punter 'aquest' de moltes maneres: accedir a variables d'instància, passar arguments al mètode o al constructor, retornar l'objecte, etc. El punter 'això' és una paraula clau important a Java i és una característica útil per accedir a l'objecte actual i els seus membres i funcions.
Esperem que hàgiu seguit l'ús de la paraula clau 'aquesta' a Java d'aquest tutorial.
Lectura recomanada
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java
- Tutorial de reflexió de Java amb exemples
- Tutorial de maneig d'excepcions C # amb exemples de codi
- Tutorial de Python DateTime amb exemples
- C # Funcions / Mètodes Tutorial amb exemples de codi
- Tutorial Java SWING: Gestió de contenidors, components i esdeveniments
- Tutorial sobre Java Collections Framework (JCF)
- Interfície Java i tutoria de classes abstractes amb exemples