Razlika med tem in super v Javi

Kazalo:

Razlika med tem in super v Javi
Razlika med tem in super v Javi

Video: Razlika med tem in super v Javi

Video: Razlika med tem in super v Javi
Video: More than Coffee: Golang. Почему Java разработчики учат GO как второй язык. 2024, Julij
Anonim

Ključna razlika – to proti super v Javi

Ključni besedi 'ta' in 'super' se uporabljata v programiranju Java. Teh ključnih besed ni mogoče uporabiti kot spremenljivke ali katero koli drugo identifikatorsko ime. Java podpira objektno usmerjeno programiranje (OOP). Program ali programsko opremo je mogoče modelirati z uporabo predmetov. Objekti so nenasitni z uporabo razredov. Eden od stebrov OOP je dedovanje. Omogoča ponovno uporabo kode. Razredi, ki že obstajajo, so nadrazredi, izpeljani razredi pa podrazredi. Ključno besedo super lahko uporabite za sklicevanje na objekt nadrazreda. V sistemu je več objektov. Ključna beseda 'ta' se uporablja za sklicevanje na trenutni predmet. Ključna razlika med tem in super je, da je 'this' referenčna spremenljivka, ki se uporablja za sklicevanje na trenutni objekt, medtem ko je 'super' referenčna spremenljivka, ki se uporablja za sklicevanje na neposredni objekt nadrazreda.

Kaj je to v Javi?

Ključna beseda 'this' se uporablja za sklicevanje na trenutni predmet. Oglejte si dani program Java.

Razlika med tem in super v Javi
Razlika med tem in super v Javi

Slika 01: Program Java, ki uporablja to ključno besedo

V Javi obstajajo tri vrste spremenljivk. So spremenljivke instance, lokalne spremenljivke in spremenljivke razreda. V skladu z zgornjim programom ima razred Employee dve instančni spremenljivki. So id in ime. Lokalne spremenljivke so spremenljivke, ki pripadajo metodam. Spremenljivke razreda si delijo vsi objekti. ID in ime se posredujeta konstruktorju Employee. Če programer napiše id=id; ne bo inicializiral spremenljivk primerka, ker ima konstruktor že ID in ime. Ni vrednosti za spremenljivke primera. Torej bo njihovo tiskanje prikazalo ničelno vrednost. Pri uporabi tega se nanaša na trenutni objekt. Zato lahko podajanje ID-ja in imena konstruktorju nastavi spremenljivke primerka.

Ključno besedo 'this' lahko uporabite za priklic trenutne metode razreda. Glejte dani program java.

javni razred ThisDemo{

javni statični void main(String args){

Myclass myClass=nov moj razred();

myClass. B();

}

}

razred Moj razred{

javna praznina A(){

System.out.println(“A”);

}

javna praznina B(){

System.out.printltn(“B”);

this. A();

}

}

Razred Myclass vsebuje dve metodi. To sta metodi A in B. Ko ustvarite objekt Myclass in prikličete metodo B, bo natisnil B, A kot izhod. Pri metodi B je po tiskanju B stavek kot this. A(). S tem je bila priklicana metoda trenutnega razreda.

Možno je tudi uporabiti to ključno besedo za priklic trenutnega konstruktorja razreda. Oglejte si dani program.

javni razred ThisDemo{

javni statični void main(String args){

A obj=nov A(5);

}

}

razred A{

javno A(){

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

}

javno A(int x){

to();

System.out.println(“Parametriziran konstruktor A”);

}

}

Glede na zgornji program ima razred A privzeti konstruktor in parametriran konstruktor. Pri ustvarjanju objekta A se pokliče parametrirani konstruktor. V parametriziranem konstruktorju obstaja izjava, kot je ta(); Poklical bo trenutni konstruktor razreda, ki je A().

Kaj je super v Javi?

Ključna beseda 'super' je povezana z dedovanjem. Dedovanje je glavni koncept objektno usmerjenega programiranja. Omogoča uporabo lastnosti in metod že obstoječega razreda v novem razredu. Že obstoječi razred je znan kot nadrejeni razred ali nadrazred. Novi razred je znan kot podrejeni razred ali podrazred.

'Super' je referenčna spremenljivka, ki se uporablja za sklicevanje na neposredni nadrejeni objekt razreda. Ključna beseda super se lahko nanaša na spremenljivko primerka neposrednega nadrejenega razreda ali prikliče metodo neposrednega nadrejenega razreda. Super() se uporablja za priklic takojšnjega nadrejenega konstruktorja razreda.

Predpostavimo, da obstajata dva razreda kot A in B. Razred A je nadrazred, razred B pa podrazred. Razred A, B imata oba način prikaza.

javni razred A{

javni prazni prikaz(){

System.out.println(“A”);

}

}

javni razred B razširi A{

javni prazni prikaz(){

System.out.println(“B”);

}

}

Ko ustvarite objekt tipa B in pokličete prikaz metode, bo dal izhod B. Razred A ima metodo prikaza, vendar jo preglasi metoda prikaza podrazreda B. Če želi programer poklicati prikazno metodo v razredu A, lahko uporabi ključno besedo super. Oglejte si dani program Java.

Razlika med tem in super v Java_Figure 02
Razlika med tem in super v Java_Figure 02

Slika 02: Program Java z uporabo ključne besede super

V skladu z zgornjim programom ima razred A spremenljivko z imenom number z vrednostjo 10. Razred B razširja A in ima spremenljivko z imenom number z vrednostjo 20. Na splošno, ko ustvarjate objekt tipa B in kličete metodo prikaza mora dati številko v podrazredu, ker je vrednost nadrazreda preglasena z novim razredom. Z uporabo super.num se natisne vrednost številke nadrazreda.

Super() lahko uporabite za klic konstruktorja nadrazreda. Oglejte si spodnji program.

javni razred Glavni {

javni statični void main(String args){

B obj=novo B();

}

}

razred A{

A(){

System.out.println(“A”);

}

}

razred B razširi A{

B(){

super();

System.out.println(“B”);

}

}

Glede na zgornji program ima razred A konstruktor A (). Razred B ima konstruktor B (). Razred B razširja razred A. Ko ustvarite objekt tipa B, bo kot izhod natisnil A, B. Konstruktor B () ima super (). Zato se najprej prikliče konstruktor A in nato gre v B. Čeprav super () ni zapisan, se privzeto kliče nadrejeni konstruktor.

Super uporaba metode je naslednja.

Ključna razlika med tem in super v Javi
Ključna razlika med tem in super v Javi

Slika 03: Program Java, ki prikliče metodo superrazreda

V skladu z zgornjim programom ima razred A način prikaza. Razred B ima tudi način prikaza. Razred B razširi A. Ko ustvarite objekt tipa B in pokličete metodo prikaza, boste dobili izhod kot A in B. V metodi prikaza razreda B se metoda prikaza razreda A pokliče z uporabo super.display(). Ta metoda najprej natisne "A". Nato natisne "B".

Kakšna je podobnost med tem in super?

Obe sta ključni besedi v programiranju Java

Kakšna je razlika med tem in super?

To proti Super

'This' je referenčna spremenljivka, ki se uporablja za sklicevanje na trenutni objekt. 'Super' je referenčna spremenljivka, ki se uporablja za sklicevanje na neposredni objekt nadrazreda.
Spremenljivka primerka
S tem se lahko sklicujete na spremenljivko primerka trenutnega razreda. Spremenljivko primerka nadrazreda je mogoče navesti z uporabo super.
Metoda razreda
Trenutno metodo razreda lahko prikličete s tem. Metodo superrazreda lahko prikličete z uporabo super.
Konstruktor
Trenutni konstruktor razreda je mogoče priklicati z uporabo this(). Konstruktor superrazreda je mogoče priklicati z uporabo super().

Povzetek – to proti super v Javi

Ključni besedi 'ta' in 'super' se uporabljata v Javi. Ključnih besed ni mogoče uporabiti kot spremenljivke ali katero koli drugo identifikatorsko ime. Zdi se, da sta enaka, vendar imata razliko. Razlika med tem in super je v tem, da je super referenčna spremenljivka, ki se uporablja za sklicevanje na neposredni objekt nadrazreda, medtem ko je to referenčna spremenljivka, ki se sklicuje na trenutni objekt.

Prenesite PDF tega proti super v Javi

Lahko prenesete PDF različico tega članka in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj: Razlika med tem in super v Javi

Priporočena: