Co je to klíčové slovo v Javě?
toto klíčové slovo v Javě je referenční proměnná, která odkazuje na aktuální objekt metody nebo konstruktoru. Hlavním účelem použití tohoto klíčového slova v Javě je odstranit zmatek mezi atributy třídy a parametry, které mají stejné názvy.
Následují různá použití klíčového slova „toto“ v Javě:
- Může být použit k odkazování na proměnnou instance aktuální třídy
- Lze jej použít k vyvolání nebo zahájení aktuálního konstruktoru třídy
- Může být předán jako argument ve volání metody
- Může být předán jako argument ve volání konstruktoru
- Může být použit k vrácení aktuální instance třídy
Pokud video není přístupné, klikněte sem
Pochopte klíčové slovo „toto“ na příkladu.
- Třída : účet třídy
- Proměnná instance : a a b
- Data sady metod : Nastavení hodnoty pro a a b.
- Metoda Zobrazit data : Chcete-li zobrazit hodnoty pro a a b.
- Hlavní metoda: kde vytvoříme objekt pro třídu Account a zavoláme metody sady dat a zobrazíme data.
Pojďme kompilovat a spustit kód
Náš očekávaný výstup pro A a B by měl být inicializován na hodnoty 2, respektive 3.
Ale hodnota je 0, proč? Nechte to vyšetřit.
V metodě Set data jsou argumenty deklarovány jako aab, zatímco proměnné instance jsou také pojmenovány jako aab.
Během provádění je kompilátor zmatený. Zda „a“ na levé straně přiřazeného operátoru je proměnná instance nebo lokální proměnná. Proto nenastavuje hodnotu 'a' při volání dat sady dat.
Řešením je klíčové slovo „toto“
Připojte k Java klíčové slovo „a“ a „b“ za tímto klíčovým slovem, za kterým následuje operátor tečka (.).
Během provádění kódu, když objekt volá metodu 'setdata'. Klíčové slovo „this“ je nahrazeno obslužnou rutinou objektu „obj.“ (Viz obrázek níže).
Takže teď kompilátor ví,
- Písmeno „a“ na levé straně je proměnnou instance.
- Zatímco „a“ na pravé straně je místní proměnná
Proměnné se inicializují správně a zobrazí se očekávaný výstup.
Předpokládejme, že jste dost chytří na to, abyste si vybrali různé názvy argumentů proměnné instance a metod.
Tentokrát ale vytvoříte dva objekty třídy, každý volá metodu nastavených dat.
Jak kompilátor určí, zda má pracovat na proměnné instance objektu 1 nebo objektu 2.
No, kompilátor implicitně připojí instance proměnné s „této“ klíčové slovo (obrázek níže).
Takové, že když objekt 1 volá metodu nastavených dat, je proměnná instance připojena k její referenční proměnné.
Zatímco objekt 2 volá metodu nastavených dat, je proměnná instance objektu 2 upravena.
O tento proces se stará samotný překladač. Klíčové slovo „toto“ nemusíte výslovně připojit, pokud nenastane výjimečná situace jako v našem příkladu.
Příklad: Chcete-li se naučit používat klíčové slovo „toto“
Krok 1) Zkopírujte následující kód do poznámkového bloku.
class Account{int a;int b;public void setData(int a ,int b){a = a;b = b;}public void showData(){System.out.println("Value of A ="+a);System.out.println("Value of B ="+b);}public static void main(String args[]){Account obj = new Account();obj.setData(2,3);obj.showData();}}
Krok 2) Uložte, zkompilujte a spusťte kód.
Krok 3) Hodnota a & b je zobrazena jako nula? Chcete-li opravit chybu, přidejte řádek # 6 a 7 pomocí klíčového slova „ this “.
this.a =a;this.b =b;
Krok 4) Uložte, zkompilujte a spusťte kód. Tentokrát jsou hodnoty a & b nastaveny na 2, respektive 3.
souhrn
- toto klíčové slovo v Javě je referenční proměnná, která odkazuje na aktuální objekt.
- Jedním z použití tohoto klíčového slova v Javě je odkazování na aktuální proměnnou instance třídy
- Lze jej použít k vyvolání nebo zahájení aktuálního konstruktoru třídy
- Může být předán jako argument ve volání metody
- tento ukazatel v Javě lze předat jako argument ve volání konstruktoru
- tento operátor v Javě lze použít k vrácení aktuální instance třídy
- toto v Javě je odkaz na aktuální objekt, jehož metoda je vyvolána.
- Klíčovým slovem „this“ můžete zabránit konfliktům názvů v metodě / konstruktoru vaší instance / objektu.