Kulcskülönbség – ez vs szuper Java-ban
A „this” és „super” kulcsszavakat a Java programozásban használják. Ezek a kulcsszavak nem használhatók változóként vagy más azonosító névként. A Java támogatja az objektumorientált programozást (OOP). A program vagy szoftver objektumok segítségével modellezhető. Az objektumok telhetetlenek az osztályok használatával. Az OOP egyik pillére az öröklődés. A kód újrafelhasználhatóságát biztosítja. A már létező osztályok szuperosztályok, a származtatott osztályok pedig alosztályok. A szuper kulcsszó a szuperosztály egy objektumára hivatkozhat. A rendszerben több objektum található. A „this” kulcsszó egy aktuális objektumra utal. A legfontosabb különbség ez és a szuper között az, hogy a „this” egy referenciaváltozó, amely az aktuális objektumra hivatkozik, míg a „super” egy referenciaváltozó, amelyet az azonnali szuperosztály objektumra használnak.
Mi ez a Java-ban?
A „this” kulcsszó egy aktuális objektumra vonatkozik. Nézze meg az adott Java programot.
01. ábra: Java program ezzel a kulcsszóval
A Java-ban háromféle változó létezik. Ezek példányváltozók, lokális változók és osztályváltozók. A fenti program szerint az Employee osztálynak két példányváltozója van. Ezek az azonosítók és a név. A lokális változók azok a változók, amelyek a metódusokhoz tartoznak. Az osztályváltozókat minden objektum megosztja. Az azonosító és a név átadásra kerül az Employee konstruktornak. Ha a programozó id=id; nem inicializálja a példányváltozókat, mert a Constructornak már van azonosítója és neve. A például változóknak nincsenek értékei. Tehát kinyomtatva nullát jelenít meg. Ennek használatakor az aktuális objektumra hivatkozik. Ezért az azonosító és név megadása a konstruktornak beállíthatja a példányváltozókat.
A ‘this’ kulcsszó az aktuális osztálymetódus meghívására használható. Lásd az adott java programot.
nyilvános osztály ThisDemo{
public static void main(String args){
Myclass myClass=new Myclass();
myClass. B();
}
}
class Myclass{
public void A(){
System.out.println(“A”);
}
public void B(){
System.out.prinltn(“B”);
this. A();
}
}
A Myclass osztály két metódust tartalmaz. Ezek az A és B metódusok. Amikor létrehozunk egy Myclass objektumot és meghívjuk a B metódust, B, A kimenetet fog kiírni. A B metódusban a B kinyomtatása után van egy utasítás, mint ez. A(). Ezzel az aktuális osztálymetódus került meghívásra.
Ez a kulcsszó az aktuális osztálykonstruktor meghívására is használható. Nézze meg az adott programot.
nyilvános osztály ThisDemo{
public static void main(String args){
A obj=new A(5);
}
}
A osztály{
nyilvános A(){
System.out.println(“A konstruktor”);
}
nyilvános A(int x){
this();
System.out.println(“A paraméterezett konstruktor”);
}
}
A fenti program szerint az A osztálynak van egy alapértelmezett konstruktora és egy paraméterezett konstruktora. Az A objektum létrehozásakor a paraméterezett konstruktor meghívásra kerül. A paraméterezett konstruktorban van egy ilyen utasítás (); Meghívja az aktuális osztálykonstruktort, amely A().
Mi a szuper a Java-ban?
A „szuper” kulcsszó az öröklődéshez kapcsolódik. Az öröklődés az objektum-orientált programozás egyik fő fogalma. Lehetővé teszi a már meglévő osztály tulajdonságainak és metódusainak felhasználását egy új osztályhoz. A már meglévő osztályt szülő osztálynak vagy szuperosztálynak nevezzük. Az új osztály gyermekosztályként vagy alosztályként ismert.
A „szuper” egy referenciaváltozó, amely a közvetlen szülő osztály objektumra hivatkozik. A szuper kulcsszó hivatkozhat közvetlen szülő osztálypéldányváltozóra, vagy meghívhatja az azonnali szülő osztály metódusát. A szuper() a közvetlen szülőosztály konstruktor meghívására szolgál.
Tegyük fel, hogy két osztály van, mint A és B. Az A osztály a szuperosztály, a B osztály pedig az alosztály. Az A és B osztálynak egyaránt van megjelenítési módja.
A nyilvános osztály{
public void display(){
System.out.println(“A”);
}
}
public B osztály kiterjeszti A{
public void display(){
System.out.println(“B”);
}
}
B típusú objektum létrehozásakor és a metódusmegjelenítés meghívásakor a B kimenetet adja. Az A osztály rendelkezik a megjelenítési módszerrel, de a B alosztályú megjelenítési metódus felülírja. Ha a programozó meg akarja hívni a megjelenítési metódust az A osztályban, akkor használhatja a szuper kulcsszót. Nézze meg az adott Java programot.
02. ábra: Java program szuper kulcsszó használatával
A fenti program szerint az A osztálynak van egy 10 értékű nevű változója. A B osztály kiterjeszti A-t és van egy változó nevű változója 20 értékű. Általában B típusú objektum létrehozásakor és a megjelenítési metódus meghívásakor meg kell adnia az alosztály számát, mert a szuperosztály értékét felülírja az új osztály. A super.num használatával a szuperosztályszám értéke kinyomtatásra kerül.
A szuper() a szuperosztály konstruktor meghívására használható. Tekintse meg az alábbi programot.
nyilvános osztály Fő {
public static void main(String args){
B obj=új B();
}
}
A osztály{
A(){
System.out.println(“A”);
}
}
B osztály kiterjeszti A{
B(){
szuper();
System.out.println(“B”);
}
}
A fenti program szerint az A osztálynak A () konstruktora van. A B osztály a B () konstruktorral rendelkezik. A B osztály kiterjeszti az A osztályt. B típusú objektum létrehozásakor az A, B kimenetet fogja nyomtatni. A B () konstruktornak van szuper (). Ezért először az A konstruktort hívják meg, majd a B-re lépnek. Annak ellenére, hogy a szuper () nincs írva, alapértelmezés szerint a szülő konstruktor kerül meghívásra.
A módszert használó szuper a következő.
03. ábra: Java program, amely meghívja a szuperosztály metódust
A fenti program szerint az A osztály rendelkezik megjelenítési módszerrel. A B osztálynak is van megjelenítési módja. A B osztály kiterjeszti az A-t. B típusú objektum létrehozásakor és a megjelenítési metódus meghívásakor A és B kimenet lesz. A B osztályú megjelenítési metódusban az A osztályú megjelenítési metódus a super.display() segítségével kerül meghívásra. Ez a módszer először az „A” betűt írja ki. Ezután kiírja a „B” betűt.
Mi a hasonlóság ez és a szuper között?
Mindkettő kulcsszó a Java programozásban
Mi a különbség ez és a szuper között?
Ez a szuper ellenében |
|
A ‘this’ egy referenciaváltozó, amely az aktuális objektumra hivatkozik. | A „szuper” egy referenciaváltozó, amely egy közvetlen szuperosztály objektumra hivatkozik. |
Példányváltozó | |
Egy aktuális osztálypéldányváltozó hivatkozható ezzel. | A szuperosztály-példányváltozó a super használatával hivatkozhat. |
Osztály módszer | |
Az aktuális osztálymetódus ezzel hívható meg. | A szuperosztály metódusa a super használatával hívható meg. |
Konstruktor | |
Az aktuális osztálykonstruktor ezzel(). | A szuperosztály-konstruktor a super() segítségével hívható meg. |
Összefoglaló – ez kontra szuper Java-ban
A „this” és a „super” kulcsszavakat a Java nyelvben használják. A kulcsszavak nem használhatók változóként vagy más azonosító névként. Úgy tűnik, ugyanazok, de van különbség. A különbség e és a super között az, hogy a super egy referenciaváltozó, amely az azonnali szuperosztály objektumra hivatkozik, míg ez egy referenciaváltozó, amely az aktuális objektumra hivatkozik.
Töltse le a PDF-et a vs szuperről Java-ban
Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF verziót innen: Különbség a Java és a szuper között