java this keyword tutorial with code examples
Tento výukový program podrobně vysvětluje speciální klíčové slovo „this“ v Javě s příklady jednoduchých kódů. Zahrnuje to, jak, kdy a kde použít klíčové slovo „toto“:
V tomto tutoriálu jsme představili jeden z důležitých konceptů v Javě - klíčové slovo „toto“. Prozkoumáme podrobnosti „tohoto“ klíčového slova a také představíme několik příkladů jeho použití v Javě.
Klíčové slovo „this“ v Javě je referenční proměnná. Referenční proměnná „this“ ukazuje na aktuální objekt v programu Java . Pokud tedy chcete získat přístup k jakémukoli členu nebo funkci aktuálního objektu, můžete tak učinit pomocí odkazu „this“.
Co se naučíte:
Java „toto“ Úvod
Odkaz „toto“ se obecně označuje jako „tento ukazatel“, protože ukazuje na aktuální objekt. „Tento ukazatel“ je užitečný, pokud existuje nějaký název atributů a parametrů třídy. Když nastane taková situace, „tento ukazatel“ eliminuje zmatek, protože můžeme přistupovat k parametrům pomocí „tohoto“ ukazatele.
V tomto tutoriálu probereme spolu s příklady použití „tohoto“ ukazatele v různých situacích.
Kdy použít „toto“ v Javě?
V Javě má výraz „toto“ následující použití:
- Odkaz „this“ se používá pro přístup k proměnné instance třídy.
- Můžete dokonce předat „this“ jako argument ve volání metody.
- ‚This‘ lze také použít k implicitnímu vyvolání aktuální metody třídy.
- Pokud chcete vrátit aktuální objekt z metody, použijte „this“.
- Chcete-li vyvolat aktuální konstruktor třídy, lze použít ‚this '.
- Konstruktor může mít také argument „this“.
Podívejme se nyní na každé z těchto použití samostatně.
Přístup k proměnné instance pomocí „tohoto“
Proměnné instance parametrů třídy a metody mohou mít stejný název. „Tento“ ukazatel lze použít k odstranění nejednoznačnosti, která z toho vyplývá.
Níže uvedený program Java ukazuje, jak lze „toto“ použít k přístupu k proměnným instance.
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ýstup:
Ve výše uvedeném programu vidíte, že proměnné instance a parametry metody sdílejí stejné názvy. „Tento“ ukazatel s proměnnými instance používáme k rozlišení mezi proměnnými instance a parametry metody.
„Toto“ prošlo jako parametr metody
Tento ukazatel můžete také předat jako parametr metody. Předání tohoto ukazatele jako parametru metody je obvykle vyžadováno při řešení událostí. Například, Předpokládejme, že chcete spustit nějakou událost na aktuálním objektu / rukojeti, pak ji musíte spustit pomocí tohoto ukazatele.
Níže je uveden programovací exponát, kde jsme tento ukazatel předali metodě.
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ýstup:
V tomto programu vytvoříme v hlavní funkci objekt třídy Test_method a poté s tímto objektem zavoláme metodu get (). Uvnitř metody get () je ukazatel „this“ předán metodě printVal (), která zobrazuje aktuální proměnné instance.
Vyvolat aktuální metodu třídy pomocí „this“
Stejně jako můžete předat „tento“ ukazatel metodě, můžete tento ukazatel použít také k vyvolání metody. Pokud vůbec zapomenete zahrnout tento ukazatel při vyvolání metody aktuální třídy, pak jej za vás přidá kompilátor.
Níže je uveden příklad vyvolání metody třídy pomocí „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ýstup:
V tomto programu volá metoda třídy print () metodu show () pomocí tohoto ukazatele, když je vyvolána objektem třídy v hlavní funkci.
Vrátit se „tímto“
Pokud je návratový typ metody objektem aktuální třídy, můžete pohodlně vrátit ukazatel „this“. Jinými slovy můžete aktuální objekt z metody vrátit pomocí ukazatele „this“.
Níže je uvedena implementace vrácení objektu pomocí ukazatele „this“.
jaký je nejlepší software pro optimalizaci PC
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ýstup:
Výše uvedený program ukazuje metodu get (), která vrací tuto, což je objekt třídy Test_this. Pomocí aktuálního objektu vráceného metodou get () je zase vyvoláno zobrazení metody.
Pomocí „this“ lze vyvolat aktuální konstruktor třídy
Ukazatel „this“ můžete také použít k vyvolání konstruktoru aktuálního kla.ss. Základní myšlenkou je opětovné použití konstruktoru. Znovu, pokud máte ve své třídě více než jeden konstruktor, můžete tyto konstruktory volat jeden od druhého, což má za následek řetězení konstruktorů.
Zvažte následující 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ýstup:
Ve výše uvedeném programu máme ve třídě dva konstruktory. Druhý konstruktor voláme pomocí ukazatele „this“ z výchozího konstruktoru třídy.
Použití „this“ jako argumentu konstruktoru
Ukazatel „tento“ můžete také předat konstruktoru jako argument. To je užitečnější, když máte více tříd, jak je znázorněno v následující implementaci.
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ýstup:
Jak ukazuje výše uvedená implementace, máme dvě třídy a každý konstruktor třídy volá konstruktor jiné třídy. „Tento“ ukazatel se používá k tomuto účelu.
Často kladené otázky
Otázka č. 1) Jaký je rozdíl mezi tímto a tímto () v Javě?
Odpovědět: V Javě to odkazuje na aktuální objekt, zatímco this () odkazuje na konstruktor se shodnými parametry. Klíčové slovo „toto“ funguje pouze u objektů. Volání „this ()“ se používá k volání více než jednoho konstruktoru ze stejné třídy.
Otázka 2) Je toto klíčové slovo v Javě nutné?
Odpovědět: Je to nezbytné, zejména když potřebujete předat aktuální objekt z jedné metody do druhé, nebo mezi konstruktory nebo jednoduše použít aktuální objekt pro jiné operace.
Otázka č. 3) Jaký je rozdíl mezi this () a super () v Javě?
Odpovědět: This () a super () jsou klíčová slova v Javě. Zatímco this () představuje konstruktor aktuálního objektu s odpovídajícími parametry, super () představuje konstruktor nadřazené třídy.
Otázka č. 4) Můžete v konstruktoru použít jak this (), tak super ()?
Odpovědět: Ano, můžete to použít. Konstruktor this () bude ukazovat na aktuální konstruktor, zatímco super () bude ukazovat na konstruktor nadřazené třídy. Nezapomeňte, že this () a super () by měly být prvním příkazem.
Závěr
Klíčové slovo „this“ je odkaz na aktuální objekt v programu Java. Lze jej použít k zabránění nejasností vyplývajících ze stejných názvů pro proměnné třídy (proměnné instance) a parametry metody.
Ukazatel 'this' můžete použít mnoha způsoby, jako je přístup k proměnným instance, předávání argumentů metodě nebo konstruktoru, vrácení objektu atd. Ukazatel 'this' je důležité klíčové slovo v Javě a je užitečnou funkcí pro přístup k aktuálnímu objektu a její členové a funkce.
Doufáme, že jste v tomto tutoriálu sledovali použití klíčového slova „this“ v Javě.
Doporučené čtení
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- Výukový program Java Reflection s příklady
- Výukový program pro zpracování výjimek C # s příklady kódu
- Výukový program Python DateTime s příklady
- Výukový program pro funkce / metody C # s příklady kódu
- Výukový program Java SWING: Kontejner, komponenty a zpracování událostí
- Výukový program Java Collections Framework (JCF)
- Výukový program pro rozhraní Java a abstrakt třídy s příklady