Põhierinevus – see vs Java puhul super
Java programmeerimises kasutatakse märksõnu "this" ja "super". Neid märksõnu ei saa kasutada muutujate ega muude tunnusnimedena. Java toetab objektorienteeritud programmeerimist (OOP). Programmi või tarkvara saab modelleerida objektide abil. Objektid on klasside abil küllastunud. Üks OOP-i sammas on pärimine. See tagab koodi korduvkasutatavuse. Juba olemasolevad klassid on ülemklassid ja tuletatud klassid on alamklassid. Supermärksõna saab kasutada superklassi objektile viitamiseks. Süsteemis on mitu objekti. Märksõna "see" kasutatakse praegusele objektile viitamiseks. Peamine erinevus selle ja super vahel on see, et see on võrdlusmuutuja, mida kasutatakse praegusele objektile viitamiseks, samas kui "super" on võrdlusmuutuja, mida kasutatakse vahetu superklassi objekti viitamiseks.
Mis see Javas on?
Märksõna "see" kasutatakse praegusele objektile viitamiseks. Vaadake antud Java programmi.
Joonis 01: Java-programm, mis kasutab seda märksõna
Javas on kolme tüüpi muutujaid. Need on eksemplarimuutujad, kohalikud muutujad ja klassimuutujad. Ül altoodud programmi kohaselt on klassil Töötaja kaks eksemplari muutujat. Need on ID ja nimi. Kohalikud muutujad on muutujad, mis kuuluvad meetoditesse. Klassimuutujaid jagavad kõik objektid. ID ja nimi edastatakse töötaja konstruktorile. Kui programmeerija kirjutab id=id; see ei initsialiseeri eksemplari muutujaid, kuna konstruktoril on juba ID ja nimi. Näiteks muutujatel pole väärtusi. Seega kuvatakse nende printimisel null. Selle kasutamisel viitab see praegusele objektile. Seetõttu saab konstruktorile ID ja nime andmisel määrata eksemplari muutujad.
Märksõna 'this' saab kasutada praeguse klassimeetodi käivitamiseks. Vaadake antud java programmi.
avalik klass ThisDemo{
public static void main(String args){
Myclass myClass=new Myclass();
minuklass. B();
}
}
klass Minuklass{
avalik tühine A(){
System.out.println(“A”);
}
avalik tühine B(){
System.out.prinltn(“B”);
this. A();
}
}
Klass Myclass sisaldab kahte meetodit. Need on meetodid A ja B. Myclassi objekti loomisel ja meetodi B käivitamisel prindib väljundina B, A. Meetodis B on pärast B trükkimist väide nagu this. A(). Seda kasutades käivitati praegune klassi meetod.
Seda märksõna on võimalik kasutada ka praeguse klassikonstruktori käivitamiseks. Vaadake antud programmi.
avalik klass ThisDemo{
public static void main(String args){
A obj=uus A(5);
}
}
klass A{
avalik A(){
System.out.println(“konstruktor A”);
}
avalik A(int x){
this();
System.out.println(“Parameterized Constructor A”);
}
}
Vastav alt ül altoodud programmile on klassil A vaikekonstruktor ja parameetritega konstruktor. A objekti loomisel kutsutakse välja parameetritega konstruktor. Parameetritega konstruktoris on selline lause nagu this(); See kutsub välja praeguse klassi konstruktori, mis on A().
Mis on Javas super?
Märksõna „super” on seotud pärimisega. Pärand on objektorienteeritud programmeerimise põhikontseptsioon. See võimaldab kasutada juba olemasoleva klassi atribuute ja meetodeid uude klassi. Juba olemasolevat klassi nimetatakse ülemklassiks või superklassiks. Uut klassi nimetatakse alamklassiks või alamklassiks.
Super on viitemuutuja, mida kasutatakse vahetule vanemklassi objektile viitamiseks. Supermärksõna võib viidata vahetule ülemklassi eksemplari muutujale või kutsuda välja vahetu vanemklassi meetodi. Super() kasutatakse vahetu vanemklassi konstruktori kutsumiseks.
Oletame, et on kaks klassi A ja B. Klass A on ülemklass ja klass B on alamklass. Mõlemal klassil A ja B on kuvamismeetod.
avalik klass A{
avalik tühikuva(){
System.out.println(“A”);
}
}
avalik klass B laiendab A{
avalik tühikuva(){
System.out.println(“B”);
}
}
B-tüüpi objekti loomisel ja meetodi kuva kutsumisel annab see väljundi B. Klassil A on kuvamismeetod, kuid alamklassi B kuvamismeetod tühistab selle. Kui programmeerija soovib kutsuda kuvamismeetodit klassis A, saab ta kasutada supermärksõna. Vaadake antud Java programmi.
Joonis 02: Java programm, mis kasutab supermärksõna
Vastav alt ül altoodud programmile on klassil A muutuja nimega number väärtusega 10. Klass B laiendab A-d ja sellel on muutuja nimega number väärtusega 20. Üldiselt B-tüüpi objekti loomisel ja kuvamismeetodi väljakutsumisel peaks andma alamklassi numbri, sest uus klass alistab ülemklassi väärtuse. Super.num kasutades prinditakse superklassi numbri väärtus.
Super() saab kasutada superklassi konstruktori kutsumiseks. Vaadake allolevat programmi.
avalik klass Peamine {
public static void main(String args){
B obj=uus B();
}
}
klass A{
A(){
System.out.println(“A”);
}
}
klass B laiendab A{
B(){
super();
System.out.println(“B”);
}
}
Vastav alt ül altoodud programmile on klassil A konstruktor A (). Klassil B on konstruktor B (). Klass B laiendab klassi A. B-tüüpi objekti loomisel trükib see väljundina A, B. B () konstruktoril on super (). Seetõttu kutsutakse esm alt välja konstruktor A ja seejärel minnakse B-sse. Kuigi super () pole kirjutatud, kutsutakse vaikimisi vanemkonstruktorit.
Meetodit kasutades on ülim alt järgmine.
Joonis 03: Java programm, mis kutsub esile superklassi meetodi
Vastav alt ül altoodud programmile on klassil A kuvamismeetod. B-klassil on ka kuvamismeetod. B-klass laiendab A-d. B-tüüpi objekti loomisel ja kuvamismeetodi kutsumisel saadakse väljundiks A ja B. Klassi B kuvamismeetodi puhul kutsutakse klassi A kuvamismeetodit kasutades super.display(). See meetod prindib kõigepe alt "A". Seejärel prindib “B”.
Mis on selle ja super sarnasus?
Mõlemad on Java programmeerimise märksõnad
Mis vahe on sellel ja superil?
See vs super |
|
See on võrdlusmuutuja, mida kasutatakse praegusele objektile viitamiseks. | Super on võrdlusmuutuja, mida kasutatakse vahetu superklassi objekti viitamiseks. |
Eksemplari muutuja | |
Selle abil saab viidata praegusele klassi eksemplari muutujale. | Superklassi eksemplari muutujale saab viidata kasutades super. |
Klassi meetod | |
Praeguse klassi meetodi saab seda kasutades välja kutsuda. | Superklassi meetodit saab käivitada kasutades super. |
Konstruktor | |
Praeguse klassikonstruktori saab käivitada, kasutades seda(). | Superklassi konstruktorit saab käivitada kasutades super(). |
Kokkuvõte – see vs super Javas
Javas kasutatakse märksõnu „see” ja „super”. Märksõnu ei saa kasutada muutujate ega muude tunnusnimedena. Tundub, et need on samad, kuid neil on erinevus. Erinevus selle ja super vahel seisneb selles, et super on võrdlusmuutuja, mida kasutatakse vahetu superklassi objekti viitamiseks, samas kui see on võrdlusmuutuja, mis viitab praegusele objektile.
Laadige selle vs super PDF-fail alla Javas
Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit: Erinevus selle ja super Java vahel