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

Obsah:

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

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

Video: Rozdíl mezi tímto a super v Javě
Video: What is the difference between this() and super() | Core Java FAQs Videos | Naresh IT 2024, Červenec
Anonim

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

Klíčová slova „toto“a „super“se používají v programování v jazyce Java. Tato klíčová slova nelze použít jako proměnné ani žádný jiný název identifikátoru. Java podporuje objektově orientované programování (OOP). Program nebo software lze modelovat pomocí objektů. Objekty jsou nenasytné pomocí tříd. Jedním z pilířů OOP je dědičnost. Poskytuje opětovnou použitelnost kódu. Třídy, které již existují, jsou nadtřídy a odvozené třídy jsou podtřídy. Klíčové slovo super lze použít k odkazování na objekt nadtřídy. V systému je více objektů. Klíčové slovo „toto“se používá k odkazování na aktuální objekt. Klíčový rozdíl mezi tímto a super je „toto“je referenční proměnná, která se používá k odkazování na aktuální objekt, zatímco „super“je referenční proměnná, která se používá k odkazování na objekt bezprostřední nadtřídy.

Co je to v Javě?

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

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

Obrázek 01: Program Java používající toto klíčové slovo

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 konstruktoru Employee. Pokud programátor napíše id=id; nebude inicializovat proměnné instance, protože konstruktor již má id a název. Neexistují žádné hodnoty pro proměnné například. Při jejich tisku se tedy zobrazí hodnota null. Při použití se odkazuje na aktuální objekt. Proto zadání id a jména konstruktoru může nastavit proměnné instance.

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

veřejná třída Tato ukázka{

public static void main(String args){

Myclass myClass=new Myclass();

myClass. B();

}

}

class Mojetřída{

public void A(){

System.out.println(“A”);

}

public void B(){

System.out.prinltn(“B”);

this. A();

}

}

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

Toto klíčové slovo je také možné použít k vyvolání konstruktoru aktuální třídy. Podívejte se na daný program.

veřejná třída Tato ukázka{

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){

this();

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 je volán parametrizovaný konstruktor. V parametrizovaném konstruktoru existuje příkaz jako tento(); Zavolá aktuální konstruktor třídy, který je A().

Co je na Javě super?

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 na novou třídu. Již existující třída je známá jako nadřazená třída nebo nadtřída. Nová třída je známá jako podtřída nebo podtřída.

„super“je referenční proměnná, která se používá k odkazování na bezprostřední nadřazený objekt třídy. Klíčové slovo super může odkazovat na proměnnou instance bezprostřední nadřazené třídy nebo vyvolat metodu bezprostřední nadřazené třídy. Super() se používá k vyvolání konstruktoru bezprostřední rodičovské 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řídy A, B mají metodu zobrazení.

veřejná třída A{

public void display(){

System.out.println(“A”);

}

}

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

public void display(){

System.out.println(“B”);

}

}

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

Rozdíl mezi tímto a super v Java_Figure 02
Rozdíl mezi tímto a super v Java_Figure 02

Obrázek 02: Java program používající super klíčové slovo

Podle výše uvedeného programu má třída A proměnnou pojmenovanou číslo s hodnotou 10. Třída B rozšiřuje A a má proměnnou pojmenovanou číslo s hodnotou 20. Obecně platí, že při vytváření objektu typu B a volání metody zobrazení by měl dát číslo v podtřídě, protože hodnota nadtřídy je přepsána novou třídou. Při použití super.num se vytiskne hodnota čísla nadtřídy.

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

public class Hlavní {

public static void main(String args){

B obj=new 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 vytiskne A, B jako výstup. Konstruktor B () má super (). Nejprve je tedy vyvolán konstruktor A a poté přejde do B. I když super () není zapsáno, ve výchozím nastavení se volá nadřazený konstruktor.

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

Klíčový rozdíl mezi tímto a super v Javě
Klíčový rozdíl mezi tímto a super v Javě

Obrázek 03: Java program, který vyvolává metodu nadtřídy

Podle výše uvedeného programu má třída A metodu zobrazení. Třída B má také zobrazovací metodu. Třída B rozšiřuje A. Při vytváření objektu typu B a volání metody display poskytne výstup jako A a B. V metodě zobrazení třídy B se metoda zobrazení třídy A volá pomocí super.display(). Tato metoda nejprve vytiskne písmeno „A“. Poté vytiskne „B“.

Jaká je podobnost mezi tímto a super?

Oba jsou klíčová slova v programování Java

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

Toto vs Super

„Toto“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 nadtřídy.
Proměnná instance
Pomocí tohoto lze odkazovat na aktuální proměnnou instance třídy. Proměnnou instance supertřídy lze odkazovat pomocí super.
Metoda třídy
Současnou metodu třídy lze vyvolat pomocí tohoto. Metodu supertřídy lze vyvolat pomocí super.
Konstruktor
Aktuální konstruktor třídy lze vyvolat pomocí této(). Konstruktor nadtřídy lze vyvolat pomocí super().

Shrnutí – toto vs super v Javě

Klíčová slova „toto“a „super“se používají v jazyce Java. Klíčová slova nelze použít jako proměnné ani žádný jiný název 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á k odkazování na bezprostřední objekt nadtřídy, zatímco toto je referenční proměnná, která odkazuje na aktuální objekt.

Stáhněte si PDF tohoto vs super v Javě

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

Doporučuje: