java this keyword tutorial with code examples
Tento výukový program podrobne vysvetľuje špeciálne kľúčové slovo „this“ v jazyku Java s príkladmi jednoduchého kódu. Zahŕňa to, ako, kedy a kde použiť kľúčové slovo „toto“:
V tomto tutoriáli sme predstavili jeden z dôležitých konceptov v Jave - kľúčové slovo „toto“. Preskúmame podrobnosti tohto kľúčového slova a predstavíme niekoľko príkladov jeho použitia v jazyku Java.
Kľúčové slovo „this“ v Jave je referenčnou premennou. Referenčná premenná „this“ ukazuje na aktuálny objekt v programe Java . Ak teda chcete získať prístup k ľubovoľnému členu alebo funkcii aktuálneho objektu, môžete to urobiť pomocou odkazu „tento“.
Čo sa dozviete:
- Java „tento“ úvod
- Kedy použiť „toto“ v Jave?
- Prístup k premennej inštancie pomocou „tohto“
- „Toto“ prešlo ako parameter metódy
- Vyvolajte súčasnú metódu triedy pomocou „tohto“
- Vrátiť sa s „týmto“
- „Toto“ sa používa na vyvolanie aktuálneho konštruktora triedy
- Používanie „tohto“ ako argumentu pre konštruktéra
- často kladené otázky
- Záver
Java „tento“ úvod
Odkaz „toto“ sa všeobecne označuje ako „tento ukazovateľ“, pretože ukazuje na aktuálny objekt. „Tento ukazovateľ“ je užitočný, ak existuje nejaký názov pre atribúty a parametre triedy. Ak dôjde k takejto situácii, „tento ukazovateľ“ eliminuje zmätok, pretože k parametrom môžeme pristupovať pomocou „tohto“ ukazovateľa.
V tomto tutoriáli sa spolu s príkladmi budeme venovať použitiu ukazovateľa „tento“ v rôznych situáciách.
Kedy použiť „toto“ v Jave?
V Jave má výraz „toto“ nasledujúce použitia:
- Odkaz „toto“ sa používa na prístup k premennej inštancie triedy.
- Toto slovo môžete dokonca odovzdať ako argument volania metódy.
- „Toto“ možno použiť aj na implicitné vyvolanie aktuálnej metódy triedy.
- Ak chcete vrátiť aktuálny objekt z metódy, použite „toto“.
- Ak chcete vyvolať aktuálny konštruktor triedy, môže sa použiť „toto“.
- Konštruktér môže mať argument „toto“ tiež.
Pozrime sa teraz na každé z týchto použití zvlášť.
Prístup k premennej inštancie pomocou „tohto“
Premenné inštancie parametrov triedy a metódy môžu mať rovnaký názov. Ukazovateľ „toto“ možno použiť na odstránenie nejednoznačnosti, ktorá z toho vyplýva.
Program Java uvedený nižšie ukazuje, ako je možné „toto“ použiť na prístup k premenným inštancií.
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(); } }
Výkon:
Vo vyššie uvedenom programe vidíte, že premenné inštancie a parametre metódy majú rovnaké názvy. Tento ukazovateľ používame s premennými inštancie na rozlíšenie medzi premennými inštancie a parametrami metódy.
„Toto“ prešlo ako parameter metódy
Tento ukazovateľ môžete tiež odovzdať ako parameter metódy. Predanie tohto ukazovateľa ako parametra metódy je zvyčajne potrebné pri riešení udalostí. Napríklad, Predpokladajme, že chcete spustiť nejakú udalosť na aktuálnom objekte / rukoväti, potom ju musíte spustiť pomocou tohto ukazovateľa.
Ďalej je uvedený programovací exponát, v ktorom sme odovzdali tento ukazovateľ metóde.
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(); } }
Výkon:
V tomto programe vytvoríme v hlavnej funkcii objekt triedy Test_method a potom s týmto objektom zavoláme metódu get (). V rámci metódy get () sa ukazovateľ „tento“ odovzdáva metóde printVal (), ktorá zobrazuje premenné aktuálnej inštancie.
Vyvolajte súčasnú metódu triedy pomocou „tohto“
Rovnako ako môžete metóde odovzdať „tento“ ukazovateľ, môžete tento ukazovateľ použiť aj na vyvolanie metódy. Ak vôbec zabudnete zahrnúť tento ukazovateľ pri vyvolaní metódy aktuálnej triedy, kompilátor ho pridá za vás.
Nižšie je uvedený príklad vyvolania metódy triedy pomocou funkcie „this“.
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(); } }
Výkon:
V tomto programe metóda triedy print () volá metódu show () pomocou tohto ukazovateľa, keď je vyvolaná objektom triedy v hlavnej funkcii.
Vrátiť sa s „týmto“
Ak je návratový typ metódy objektom aktuálnej triedy, potom môžete pohodlne vrátiť ukazovateľ „tento“. Inými slovami, aktuálny objekt môžete vrátiť z metódy pomocou ukazovateľa „tento“.
Ďalej je uvedená implementácia vrátenia objektu pomocou ukazovateľa „tento“.
c # objektovo orientované programovacie koncepty
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(); } }
Výkon:
Vyššie uvedený program ukazuje metódu get (), ktorá vracia túto, ktorá je objektom triedy Test_this. Použitím aktuálneho objektu vráteného metódou get () sa zase vyvolá zobrazenie metódy.
„Toto“ sa používa na vyvolanie aktuálneho konštruktora triedy
Môžete tiež použiť ukazovateľ „toto“ na vyvolanie konštruktora aktuálneho súboru cla.ss. Základnou myšlienkou je opätovné použitie konštruktora. Ak máte vo svojej triede viac ako jedného konštruktora, môžete tieto konštruktory volať jeden od druhého, čo vedie k reťazeniu konštruktorov.
Zvážte nasledujúci program 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(); } }
Výkon:
Vo vyššie uvedenom programe máme v triede dvoch konštruktorov. Druhý konštruktor voláme pomocou ukazovateľa „this“ z predvoleného konštruktora triedy.
Používanie „tohto“ ako argumentu pre konštruktéra
Tento ukazovateľ môžete tiež odovzdať konštruktorovi ako argument. To je užitočnejšie, ak máte viac tried, ako je uvedené v nasledujúcej implementácii.
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(); } }
Výkon:
Ako je uvedené vo vyššie uvedenej implementácii, máme dve triedy a každý konštruktor triedy volá konštruktor druhej triedy. Na tento účel sa používa ukazovateľ „toto“.
často kladené otázky
Otázka 1) Aký je rozdiel medzi týmto a týmto () v Jave?
Odpoveď: V Jave to odkazuje na aktuálny objekt, zatiaľ čo toto () odkazuje na konštruktor so zodpovedajúcimi parametrami. Kľúčové slovo „toto“ funguje iba s objektmi. Hovor „this ()“ sa používa na volanie viac ako jedného konštruktora z rovnakej triedy.
Otázka 2) Je toto kľúčové slovo v prostredí Java nevyhnutné?
Odpoveď: Je to nevyhnutné najmä vtedy, keď potrebujete preniesť aktuálny objekt z jednej metódy na druhú, alebo medzi konštruktormi alebo jednoducho použiť aktuálny objekt na ďalšie operácie.
Otázka 3) Aký je rozdiel medzi this () a super () v Jave?
Odpoveď: This () a super () sú kľúčové slová v Jave. Zatiaľ čo this () predstavuje konštruktor aktuálneho objektu so zodpovedajúcimi parametrami, super () predstavuje konštruktor nadradenej triedy.
Otázka č. 4) Môžete v konstruktore použiť this () aj super ()?
Odpoveď: Áno, môžete to použiť. Konštruktor this () bude ukazovať na aktuálny konštruktor, zatiaľ čo super () bude ukazovať na konštruktor nadradenej triedy. Pamätajte, že toto () a super () by malo byť prvým tvrdením.
Záver
Kľúčové slovo „this“ je odkazom na aktuálny objekt v programe Java. Môže sa použiť na zabránenie zámene vyplývajúcej z rovnakých mien pre premenné triedy (premenné inštancie) a parametre metódy.
Ukazovateľ „toto“ môžete použiť mnohými spôsobmi, ako je prístup k premenným inštancie, odovzdávanie argumentov metóde alebo konštruktoru, vrátenie objektu atď. Ukazovateľ „toto“ je dôležité kľúčové slovo v Jave a je užitočnou funkciou pre prístup k aktuálnemu objektu a jeho členov a funkcií.
Dúfame, že ste v tomto výučbe sledovali použitie kľúčového slova „toto“ v Jave.
Odporúčané čítanie
- Výukový program JAVA pre začiatočníkov: viac ako 100 praktických výučbových programov Java Video
- Výukový program Java Reflection s príkladmi
- Výukový program na spracovanie výnimiek C # s príkladmi kódu
- Výukový program pre Python DateTime s príkladmi
- Výukový program pre funkcie / metódy C # s príkladmi kódu
- Výukový program Java SWING: Kontajnery, komponenty a spracovanie udalostí
- Výukový program Java Collections Framework (JCF)
- Príručka k rozhraniu Java a abstraktnej triede