Rozdiel Medzi Týmto A Super V Jave

Obsah:

Rozdiel Medzi Týmto A Super V Jave
Rozdiel Medzi Týmto A Super V Jave

Video: Rozdiel Medzi Týmto A Super V Jave

Video: Rozdiel Medzi Týmto A Super V Jave
Video: Сознание и Личность. От заведомо мёртвого к вечно Живому 2024, Smieť
Anonim

Kľúčový rozdiel - v Java to super

Kľúčové slová „this“a „super“sa používajú v programovaní Java. Tieto kľúčové slová nemožno použiť ako premenné alebo iný názov identifikátora. Java podporuje objektovo orientované programovanie (OOP). Program alebo softvér je možné modelovať pomocou objektov. Objekty sú izolované pomocou tried. Jedným pilierom OOP je dedičstvo. Poskytuje opätovné použitie kódu. Triedy, ktoré už existujú, sú nadtriedy a odvodené triedy sú podtriedy. Kľúčové slovo super možno použiť na označenie objektu nadtriedy. V systéme je viac objektov. Kľúčové slovo „toto“sa používa na označenie aktuálneho objektu. Kľúčovým rozdielom medzi týmto a super je „toto“je referenčná premenná, ktorá sa používa na odkazovanie na aktuálny objekt, zatiaľ čo „super“je referenčná premenná, ktorá sa používa na odkazovanie na bezprostredný objekt nadradenej triedy.

OBSAH

1. Prehľad a kľúčový rozdiel

2. Čo je to v Jave

3. Čo je super v Jave

4. Podobnosti medzi týmto a super v Jave

5. Porovnanie vedľa seba - toto vs super v Jave v tabuľkovej forme

6. Zhrnutie

Čo je to v Jave?

Kľúčové slovo „toto“sa používa na označenie aktuálneho objektu. Pozrite si daný program Java.

Rozdiel medzi týmto a super v Jave
Rozdiel medzi týmto a super v Jave

Obrázok 01: Program Java používajúci toto kľúčové slovo

V Jave existujú tri typy premenných. Sú to inštančné premenné, lokálne premenné a premenné triedy. Podľa vyššie uvedeného programu má trieda Employee dve inštančné premenné. Sú to id a meno. Lokálne premenné sú premenné patriace k metódam. Premenné triedy sú zdieľané všetkými objektmi. ID a meno sa odovzdajú konštruktoru zamestnanca. Ak programátor napíše id = id; nebude inicializovať premenné inštancie, pretože Konštruktor už má ID a meno. Neexistujú žiadne hodnoty, napríklad premenné. Ich tlač bude mať teda nulovú hodnotu. Pri použití sa vzťahuje na aktuálny objekt. Preto zadaním id a názvu konštruktoru môžete nastaviť premenné inštancie.

Kľúčové slovo „this“možno použiť na vyvolanie aktuálnej metódy triedy. Pozrite si daný program Java.

verejná trieda ThisDemo {

public static void main (String args) {

Myclass myClass = new Myclass ();

myClass. B ();

}

}

trieda Myclass {

public void A () {

System.out.println („A“);

}

public void B () {

System.out.prinltn („B“);

toto();

}

}

Trieda Myclass obsahuje dve metódy. Sú to metóda A a B. Pri vytváraní objektu Myclass a vyvolaní metódy B sa vytlačí B, A ako výstup. V metóde B po vytlačení B existuje vyhlásenie ako toto. A (). Pomocou toho bola vyvolaná metóda aktuálnej triedy.

Toto kľúčové slovo je tiež možné použiť na vyvolanie aktuálneho konštruktora triedy. Pozri daný program.

verejná trieda ThisDemo {

public static void main (String args) {

A obj = nový A (5);

}

}

trieda A {

public A () {

System.out.println („Konštruktér A“);

}

public A (int x) {

this ();

System.out.println („Parametrizovaný konštruktor A“);

}

}

Podľa vyššie uvedeného programu má trieda A predvolený konštruktor a parametrizovaný konštruktor. Pri vytváraní objektu A sa volá parametrizovaný konštruktor. V parametrizovanom konštruktore existuje príkaz ako tento (); Zavolá aktuálny konštruktor triedy, ktorý je A ().

Čo je super v Jave?

Kľúčové slovo „super“súvisí s dedičstvom. Dedenie je hlavným pojmom objektovo orientovaného programovania. Umožňuje použiť vlastnosti a metódy už existujúcej triedy na novú triedu. Už existujúca trieda je známa ako nadradená trieda alebo nadtrieda. Nová trieda je známa ako podradená trieda alebo podtrieda.

„Super“je referenčná premenná, ktorá sa používa na odkazovanie na objekt bezprostrednej nadradenej triedy. Kľúčové slovo super môže odkazovať na premennú inštancie okamžitej nadradenej triedy alebo vyvolať metódu okamžitej nadradenej triedy. Super () sa používa na vyvolanie bezprostredného nadradeného konštruktora triedy.

Predpokladajme, že existujú dve triedy ako A a B. Trieda A je nadtrieda a trieda B je podtrieda. Trieda A, B majú obidve zobrazovacie metódy.

verejná trieda A {

public void display () {

System.out.println („A“);

}

}

verejná trieda B rozširuje A {

public void display () {

System.out.println („B“);

}

}

Pri vytváraní objektu typu B a volaní zobrazenia metódy poskytne výstup B. trieda A má metódu zobrazenia, ale je prepísaná metódou zobrazenia podtriedy B. Ak chce programátor zavolať metódu zobrazenia v triede A, môže použiť kľúčové slovo super. Pozrite si daný program Java.

Rozdiel medzi týmto a super v Java Figure 02
Rozdiel medzi týmto a super v Java Figure 02

Obrázok 02: Program Java využívajúci kľúčové slovo super

Podľa vyššie uvedeného programu má trieda A premennú s názvom číslo s hodnotou 10. Trieda B rozširuje A a má premennú s názvom číslo s hodnotou 20. Všeobecne platí, že pri vytváraní objektu typu B a volaní metódy zobrazenia by sa malo uviesť číslo v podtrieda, pretože hodnota nadtriedy je prepísaná novou triedou. Použitím super.num sa vytlačí hodnota čísla nadtriedy.

Super () možno použiť na volanie konštruktora nadtriedy. Pozrite si nižšie uvedený program.

public class Main {

public static void main (String args) {

B obj = nový B ();

}

}

trieda A {

A () {

System.out.println („A“);

}

}

trieda B predlžuje A {

B () {

Super();

System.out.println („B“);

}

}

Podľa vyššie uvedeného programu má trieda A konštruktor A (). Trieda B má konštruktor B (). Trieda B rozširuje triedu A. Pri vytváraní objektu typu B bude tlačiť A, B ako výstup. Konštruktor B () má super (). Preto sa najskôr vyvolá konštruktor A a potom ide do B. Aj keď nie je napísaný znak super (), predvolene sa volá nadradený konštruktor.

Super použitie metódy je nasledovné.

Kľúčový rozdiel medzi týmto a super v Jave
Kľúčový rozdiel medzi týmto a super v Jave

Obrázok 03: Program Java, ktorý vyvoláva metódu nadtriedy

Podľa vyššie uvedeného programu má trieda A spôsob zobrazenia. Trieda B má tiež spôsob zobrazenia. Trieda B rozširuje A. Pri vytváraní objektu typu B a volaní metódy zobrazenia bude výstup uvedený ako A a B. V metóde zobrazenia triedy B sa metóda zobrazenia triedy A volá pomocou super.display (). Pri tejto metóde sa najskôr vytlačí písmeno „A“. Potom vytlačí „B“.

Aká je podobnosť medzi týmto a super?

Obidve kľúčové slová sú v programovaní Java

Aký je rozdiel medzi týmto a super?

Rozdielny článok v strede pred tabuľkou

Toto vs Super

„Toto“je referenčná premenná, ktorá sa používa na odkazovanie na aktuálny objekt. „Super“je referenčná premenná, ktorá sa používa na označenie okamžitého objektu nadradenej triedy.
Premenná inštancie
Aktuálnu premennú inštancie triedy je možné odkazovať pomocou tohto parametra. Premennú inštancie nadtriedy je možné odkazovať pomocou super.
Metóda triedy
Aktuálnu metódu triedy je možné vyvolať pomocou tohto parametra. Metódu nadtriedy je možné vyvolať pomocou super.
Konštruktér
Aktuálny konštruktor triedy je možné vyvolať pomocou this (). Konštruktor nadtriedy je možné vyvolať pomocou super ().

Zhrnutie - toto vs super v Jave

Kľúčové slová „this“a „super“sa používajú v jazyku Java. Kľúčové slová nemožno použiť ako premenné alebo iný názov identifikátora. Zdá sa, že sú rovnakí, ale majú rozdiel. Rozdiel medzi týmto a super je ten, že super je referenčná premenná, ktorá sa používa na označenie okamžitého objektu nadradenej triedy, zatiaľ čo toto je referenčná premenná, ktorá odkazuje na aktuálny objekt.

Stiahnite si súbor PDF tohto a super v jazyku Java

Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ho na offline účely podľa citačnej poznámky. Stiahnite si verziu PDF tu: Rozdiel medzi týmto a super v Jave

Odporúčaná: