Rozdíl mezi tímto a super v Javě

Klíčový rozdíl - toto vs super v Javě
 

Klíčová slova „this“ a „super“ se používají v programování v jazyce Java. Tato klíčová slova nelze použít jako proměnné nebo jiné jméno identifikátoru. Java podporuje Object Oriented Programming (OOP). Program nebo software lze modelovat pomocí objektů. Objekty jsou vhodné pomocí tříd. Jedním z pilířů OOP je dědičnost. Poskytuje opakovatelnost kódu. Třídy, které již existují, jsou nadtřídy a odvozené třídy jsou podtřídami. Super klíčové slovo lze použít k odkazu na objekt nadřazené třídy. V systému je více objektů. Klíčové slovo „toto“ se používá k označení aktuálního objektu. klíčový rozdíl mezi tímto a super je “toto 'je referenční proměnná, která se používá k odkazu na aktuální objekt zatímco 'super' je referenční proměnná, která se používá pro odkazování na objekt bezprostřední nadřazené třídy. 

OBSAH

1. Přehled a klíčový rozdíl
2. Co je to v Javě
3. Co je super v Javě
4. Podobnosti mezi tímto a super v Javě
5. Side by Side Srovnání - to vs super v Javě v tabulkové formě
6. Shrnutí

Co je to v Javě?

Klíčové slovo „this“ se používá k označení aktuálního objektu. Podívejte se na daný program Java.

Obrázek 01: Program Java pomocí tohoto klíčového slova

V Javě existují tři typy proměnných. Jsou to proměnné instance, lokální proměnné a proměnné třídy. Podle výše uvedeného programu má třída Zaměstnanec dvě proměnné instance. Jsou to id a jméno. Lokální proměnné jsou proměnné patřící k metodám. Proměnné třídy jsou sdíleny všemi objekty. ID a jméno jsou předány konstruktérovi zaměstnance. Pokud programátor zapíše id = id; nebude inicializovat proměnné instance, protože konstruktor již má id a jméno. Neexistují žádné hodnoty například proměnných. Při jejich tisku se tedy zobrazí null. Při použití se odkazuje na aktuální objekt. Proto lze konstruktoru přiřadit ID a jméno k nastavení proměnných instance.

Klíčové slovo „this“ lze použít k vyvolání aktuální metody třídy. Podívejte se na daný java program.

veřejná třída ThisDemo

public static void main (String [] args)

Myclass myClass = new Myclass ();

myClass.B ();

třída Myclass

public void A ()

System.out.println („A“);

public void B ()

System.out.prinltn („B“);

this.A ();

Třída Myclass obsahuje dvě metody. Jsou to metoda A a B. Při vytváření objektu Myclass a vyvolání metody B vytiskne B, A jako výstup. V metodě B je po tisku B prohlášení jako this.A (). Tímto byla vyvolána aktuální metoda třídy.

Toto klíčové slovo lze také použít k vyvolání konstruktoru aktuální třídy. Viz daný program.

veřejná třída ThisDemo

public static void main (String [] args)

A obj = nový A (5);

třída A

public A ()

System.out.println („Konstruktor A“);

public A (int x)

tento();

System.out.println („Parametrizovaný konstruktor A“);

Podle výše uvedeného programu má třída A výchozí konstruktor a parametrizovaný konstruktor. Při vytváření objektu A se volá parametrizovaný konstruktor. V parametrizovaném konstruktoru je příkaz jako je tento (); Zavolá aktuální konstruktor třídy, který je A ().

Co je super v Javě?

Klíčové slovo „super“ souvisí s dědičností. Dědičnost je hlavní koncept objektově orientovaného programování. Umožňuje použití vlastností a metod již existující třídy pro novou třídu. Již existující třída se nazývá nadřazená třída nebo nadřazená třída. Nová třída se nazývá podřízená třída nebo podtřída.

'Super' je referenční proměnná, která se používá k odkazu na objekt bezprostřední nadřazené třídy. Super klíčové slovo může odkazovat na proměnnou instance okamžité nadřazené třídy nebo vyvolat metodu okamžité nadřazené třídy. Super () se používá k vyvolání konstruktoru okamžité nadřazené třídy.

Předpokládejme, že existují dvě třídy jako A a B. Třída A je nadtřída a třída B je podtřída. Třída A, B mají způsob zobrazení.

veřejná třída A

veřejné neplatné zobrazení ()

System.out.println („A“);

veřejná třída B rozšiřuje A

veřejné neplatné zobrazení ()

System.out.println („B“);

Při vytváření objektu typu B a vyvolání zobrazení metody dá výstup B. třída A má způsob zobrazení, ale je přepsána metodou zobrazení podtřídy B. Pokud chce programátor volat metodu zobrazení ve třídě A, může použít super klíčové slovo. Podívejte se na daný program Java.

Obrázek 02: Program Java pomocí super klíčového slova

Podle výše uvedeného programu má třída A proměnnou pojmenované číslo s hodnotou 10. Třída B rozšiřuje A a má proměnnou pojmenované číslo s hodnotou 20. Obecně by při vytváření objektu typu B a vyvolání metody zobrazení mělo být číslo uvedeno v podtřída, protože hodnota nové třídy je přepsána. Použitím super.num se vytiskne hodnota čísla superclass.

Super () lze použít k volání konstruktoru super třídy. Viz níže uvedený program.

veřejná třída Main

public static void main (String [] args)

B obj = nový B ();

třída A

A()

System.out.println („A“);

třída B rozšiřuje A

B ()

super ();

System.out.println („B“);

Podle výše uvedeného programu má třída A konstruktor A (). Třída B má konstruktor B (). Třída B rozšiřuje třídu A. Při vytváření objektu typu B bude jako výstup tisknout A, B. Konstruktor B () má super (). Proto je nejprve vyvolán konstruktor A a poté přejde na B. Přestože super () není zapsáno, ve výchozím nastavení je nadřazený konstruktor nazýván.

Super použití této metody je následující.

Obrázek 03: Program Java, který vyvolává metodu super třídy

Podle výše uvedeného programu má třída A způsob zobrazení. Třída B má také způsob zobrazení. Třída B se rozšiřuje A. Při vytváření objektu typu B a vyvolání metody zobrazení dá výstup jako A a B. Ve způsobu zobrazení třídy B se metoda zobrazení třídy A nazývá super.display (). Tato metoda nejprve vytiskne „A“. Poté vytiskne „B“.

Jaká je podobnost mezi tím a super?

  • Obě jsou klíčová slova v programování v jazyce Java.

Jaký je rozdíl mezi tímto a super?

To vs Super

'This' je referenční proměnná, která se používá k odkazování na aktuální objekt. 'Super' je referenční proměnná, která se používá k odkazování na bezprostřední objekt vyšší třídy.
 Proměnná instance
Pomocí této proměnné lze odkazovat na aktuální proměnnou instance třídy. Proměnná instance Superclass může být uvedena pomocí super.
Metoda třídy
Tímto způsobem lze vyvolat aktuální metodu třídy. Metodu Superclass lze vyvolat pomocí super.
 Konstruktor
Konstruktor aktuální třídy lze vyvolat pomocí tohoto (). Konstruktor Superclass lze vyvolat pomocí super ().

Shrnutí - toto vs super v Javě

Klíčová slova „this“ a „super“ se používají v Javě. Klíčová slova nelze použít jako proměnné nebo jiné jméno identifikátoru. Zdá se, že jsou stejné, ale mají rozdíl. Rozdíl mezi tímto a super je v tom, že super je referenční proměnná, která se používá pro odkazování na objekt okamžité nadřazené třídy, zatímco toto je referenční proměnná, která odkazuje na aktuální objekt..

Stáhněte si PDF této vs vs super v Javě

Můžete si stáhnout PDF verzi tohoto článku a použít ji pro účely offline podle citace. Stáhněte si PDF verzi zde: Rozdíl mezi tímto a super v Javě

Odkaz:

1.Tento () a super klíčové slovo v javě a jeho účel s krátkým příkladem, znalost Atozu, 31. ledna 2015. K dispozici zde 
2. „Toto klíčové slovo v javě - java point.“ K dispozici zde  
3.tutorialspoint.com. "Dědičnost Java." The Point, k dispozici zde