Kľúčový rozdiel – toto vs super v Jave
Kľúčové slová „toto“a „super“sa používajú v programovaní v jazyku Java. Tieto kľúčové slová nemožno použiť ako premenné ani žiadne iné názvy identifikátorov. Java podporuje objektovo orientované programovanie (OOP). Program alebo softvér je možné modelovať pomocou objektov. Objekty sú nenásytné pomocou tried. Jedným z pilierov OOP je dedičnosť. Poskytuje opätovnú použiteľnosť kódu. Triedy, ktoré už existujú, sú nadtriedy a odvodené triedy sú podtriedy. Kľúčové slovo super možno použiť na odkazovanie na objekt nadtriedy. V systéme je viacero objektov. Kľúčové slovo „toto“sa používa na označenie aktuálneho objektu. Kľúčový rozdiel 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 objekt bezprostrednej nadtriedy.
Čo je toto v jazyku Java?
Kľúčové slovo „toto“sa používa na označenie aktuálneho objektu. Pozrite si daný Java program.
Obrázok 01: Program Java používajúci toto kľúčové slovo
V jazyku Java existujú tri typy premenných. Sú to premenné inštancie, lokálne premenné a premenné triedy. Podľa vyššie uvedeného programu má trieda Zamestnanec dve premenné inštancie. Sú to ID a meno. Lokálne premenné sú premenné patriace do metód. Premenné triedy zdieľajú všetky objekty. ID a meno sa prenesú do konštruktora Zamestnanec. Ak programátor napíše id=id; neinicializuje premenné inštancie, pretože konštruktor už má ID a názov. Neexistujú žiadne hodnoty pre napríklad premenné. Pri ich tlači sa teda zobrazí hodnota null. Pri použití sa to vzťahuje na aktuálny objekt. Preto zadaním ID a názvu konštruktorovi môžete nastaviť premenné inštancie.
Kľúčové slovo „toto“možno použiť na vyvolanie aktuálnej metódy triedy. Pozrite si daný java program.
verejná trieda Táto ukážka{
public static void main(String args){
Myclass myClass=new Myclass();
myClass. B();
}
}
class Mojatrieda{
public void A(){
System.out.println(“A”);
}
public void B(){
System.out.prinltn(“B”);
this. A();
}
}
Trieda Myclass obsahuje dve metódy. Sú to metódy A a B. Pri vytváraní objektu Myclass a vyvolaní metódy B vytlačí B, A ako výstup. V metóde B je po vytlačení B výrok ako tento. A(). Pomocou tohto bola vyvolaná aktuálna metóda triedy.
Toto kľúčové slovo je tiež možné použiť na vyvolanie konštruktora aktuálnej triedy. Pozrite si daný program.
verejná trieda Táto ukážka{
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ým je A().
Čo je super na Jave?
Kľúčové slovo „super“súvisí s dedičnosťou. Dedičnosť je hlavným konceptom 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 podtrieda alebo podtrieda.
„super“je referenčná premenná, ktorá sa používa na odkaz na objekt bezprostrednej nadradenej triedy. Kľúčové slovo super môže odkazovať na premennú bezprostrednej nadradenej triedy alebo vyvolať metódu bezprostrednej nadradenej triedy. Super() sa používa na vyvolanie konštruktora bezprostrednej nadradenej triedy.
Predpokladajme, že existujú dve triedy ako A a B. Trieda A je nadtrieda a trieda B je podtrieda. Triedy A a B majú metódu zobrazenia.
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í metódy display poskytne výstup B. trieda A má metódu display, ale je prepísaná metódou zobrazenia podtriedy B. Ak chce programátor volať metódu zobrazenia v triede A, môže použiť kľúčové slovo super. Pozrite si daný Java program.
Obrázok 02: Program Java používajúci super kľúčové slovo
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. Vo všeobecnosti platí, že pri vytváraní objektu typu B a volaní metódy zobrazenia by mal dať číslo v podtriede, pretože hodnota nadtriedy je prepísaná novou triedou. Použitím super.num sa vytlačí hodnota čísla nadtriedy.
Na volanie konštruktora supertriedy možno použiť super(). Pozrite si program nižšie.
verejná trieda Hlavná {
public static void main(String args){
B obj=new B();
}
}
trieda A{
A(){
System.out.println(“A”);
}
}
trieda B rozširuje 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 vytlačí A, B ako výstup. Konštruktor B () má super (). Preto sa najprv vyvolá konštruktor A a potom prejde do B. Aj keď super () nie je napísané, predvolene sa volá nadradený konštruktor.
Super použitie tejto metódy je nasledovné.
Obrázok 03: Java program, ktorý vyvoláva metódu nadtriedy
Podľa vyššie uvedeného programu má trieda A zobrazovaciu metódu. Trieda B má tiež zobrazovaciu metódu. Trieda B rozširuje A. Pri vytváraní objektu typu B a volaní metódy display poskytne výstup ako A a B. V metóde zobrazenia triedy B sa metóda zobrazenia triedy A volá pomocou super.display(). Táto metóda najprv vytlačí písmeno „A“. Potom vytlačí „B“.
Aká je podobnosť medzi týmto a super?
Obaja sú kľúčové slová v programovaní Java
Aký je rozdiel medzi týmto a super?
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 odkazovanie na objekt bezprostrednej nadtriedy. |
Premenná inštancie | |
Na premennú inštancie aktuálnej triedy možno odkazovať pomocou tohto. | Premennú inštancie supertriedy možno odkazovať pomocou super. |
Metóda triedy | |
Aktuálnu metódu triedy možno vyvolať pomocou tohto. | Metódu supertriedy možno vyvolať pomocou super. |
Konštruktor | |
Aktuálny konštruktor triedy možno vyvolať pomocou tejto(). | Konštruktor nadtriedy možno vyvolať pomocou super(). |
Zhrnutie – toto vs super v Jave
Kľúčové slová „toto“a „super“sa používajú v jazyku Java. Kľúčové slová nemožno použiť ako premenné ani iné názvy identifikátorov. Zdá sa, že sú rovnaké, ale majú rozdiel. Rozdiel medzi týmto a super je v tom, že super je referenčná premenná, ktorá sa používa na odkazovanie na bezprostredný objekt nadtriedy, zatiaľ čo toto je referenčná premenná, ktorá odkazuje na aktuálny objekt.
Stiahnite si PDF tohto vs super v jazyku Java
Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si verziu PDF tu: Rozdiel medzi týmto a super v jazyku Java