Nyckelskillnad - detta mot super i Java
Nyckelorden "detta" och "super" används i Java-programmering. Dessa nyckelord kan inte användas som variabler eller något annat namn. Java stöder Object Oriented Programming (OOP). Programmet eller programvaran kan modelleras med hjälp av objekt. Objekt är omättliga med hjälp av klasser. En pelare i OOP är arv. Det ger återanvändbar kod. De klasser som redan finns är superklasser och de härledda klasserna är underklasser. Super-nyckelordet kan användas för att hänvisa ett objekt från superklassen. Det finns flera objekt i systemet. Nyckelordet 'detta' används för att hänvisa ett aktuellt objekt. Huvudskillnaden mellan detta och super är 'detta' är en referensvariabel som används för att hänvisa det aktuella objektet medan 'super' är en referensvariabel som används för att hänvisa omedelbart superklassobjekt.
INNEHÅLL
1. Översikt och nyckelskillnad
2. Vad är detta i Java
3. Vad är super i Java
4. Likheter mellan detta och super i Java
5. Jämförelse sida vid sida - detta vs super i Java i tabellform
6. Sammanfattning
Vad är det här i Java?
Nyckelordet "detta" används för att hänvisa ett aktuellt objekt. Se det angivna Java-programmet.
Figur 01: Java-program med detta nyckelord
I Java finns det tre typer av variabler. De är instansvariabler, lokala variabler och klassvariabler. Enligt ovanstående program har klassanställd två instansvariabler. De är id och namn. Lokala variabler är variablerna tillhör metoder. Klassvariabler delas av alla objekt. Id och namn skickas till anställdkonstruktören. Om programmeraren skriver id = id; det initialiserar inte förekomstvariablerna eftersom konstruktören redan har id och namn. Det finns inga värden för exempelvis variabler. Så, om du skriver ut dem visas null. När du använder detta hänvisar det till det aktuella objektet. Därför kan du ge id och namn till konstruktorn inställningsvariabler.
Nyckelordet 'detta' kan användas för att åberopa den nuvarande klassmetoden. Se det givna Java-programmet.
allmän klass ThisDemo {
public static void main (String args) {
Myclass myClass = ny Myclass ();
myClass. B ();
}
}
klass Myclass {
offentligt tomrum A () {
System.out.println (“A”);
}
offentligt tomrum B () {
System.out.prinltn (“B”);
this. A ();
}
}
Klassen Myclass innehåller två metoder. De är metod A och B. När du skapar ett objekt från Myclass och anropar metoden B kommer B, A att skrivas ut som utdata. I metod B, efter utskrift B finns det ett uttalande som detta. A (). Med detta användes den nuvarande klassmetoden.
Det är också möjligt att använda detta nyckelord för att åberopa den nuvarande klasskonstruktören. Se det givna programmet.
allmän klass ThisDemo {
public static void main (String args) {
En obj = ny A (5);
}
}
klass A {
allmän A () {
System.out.println (“Konstruktör A”);
}
offentlig A (int x) {
detta();
System.out.println (“Parameterized Constructor A”);
}
}
Enligt ovanstående program har klass A en standardkonstruktör och en parametrerad konstruktör. När du skapar ett objekt av A anropas den parametrerade konstruktorn. I den parametrerade konstruktören finns det ett uttalande som detta (); Den kallar den nuvarande klasskonstruktören som är A ().
Vad är super i Java?
Nyckelordet "super" är relaterat till arv. Arv är ett stort koncept för objektorienterad programmering. Det gör det möjligt att använda egenskaperna och metoderna för den redan existerande klassen till en ny klass. Den redan existerande klassen är känd som moderklassen eller superklassen. Den nya klassen är känd som barnklassen eller underklassen.
'Super' är en referensvariabel som används för att hänvisa det omedelbara föräldraklassobjektet. Super-nyckelordet kan hänvisa till omedelbar överordnad klassinstansvariabel eller åberopa metod för omedelbar överordnad klass. Super () används för att anropa omedelbar föräldraklasskonstruktör.
Antag att det finns två klasser som A och B. Klass A är superklassen och klass B är underklassen. Klass A, B har båda visningsmetod.
allmän klass A {
offentlig ogiltig visning () {
System.out.println (“A”);
}
}
offentlig klass B sträcker sig A {
offentlig ogiltig visning () {
System.out.println (“B”);
}
}
När du skapar ett objekt av typ B och anropar metodvisningen kommer det att ge utdata B. klass A har visningsmetoden, men den åsidosätts av underklassens B-visningsmetod. Om programmeraren vill anropa visningsmetoden i klass A kan han använda supernyckelordet. Se det angivna Java-programmet.
Figur 02: Java-program med supernyckelord
Enligt ovanstående program har klass A en variabel med namnet värde med värde 10. Klass B sträcker sig A och har en variabel som heter nummer med värde 20. Generellt, när man skapar ett objekt av typ B och anropar visningsmetoden bör man underklassen eftersom superklassvärdet åsidosätts av den nya klassen. Genom att använda super.num skrivs ut superklassvärdet.
Super () kan användas för att anropa superklasskonstruktören. Se nedanstående program.
allmän klass Main {
public static void main (String args) {
B obj = ny B ();
}
}
klass A {
A () {
System.out.println (“A”);
}
}
klass B sträcker sig A {
B () {
super();
System.out.println (“B”);
}
}
Enligt ovanstående program har klass A en konstruktör A (). Klass B har konstruktören B (). Klass B utökar klass A. När du skapar ett objekt av typ B kommer det att skriva ut A, B som utdata. Konstruktören B () har super (). Därför anropas först A-konstruktorn och går sedan till B. Även om super () inte är skrivet, kallas som standard föräldrakonstruktören.
Super använder metoden är som följer.
Figur 03: Java-program som åberopar superklassmetoden
Enligt ovanstående program har klass A visningsmetod. Klass B har också visningsmetod. Klass B sträcker sig A. När du skapar ett objekt av typ B och anropar visar visningsmetoden output som A och B. I klass B-visningsmetod kallas klass A-visningsmetod med super.display (). Den metoden skriver ut "A" först. Skriv sedan ut “B”.
Vad är likheten mellan detta och super?
Båda är nyckelord i Java-programmering
Vad är skillnaden mellan detta och super?
Skilja artikeln mitt före bordet
Detta vs Super |
|
Den här är en referensvariabel som används för att hänvisa det aktuella objektet. | 'Super' är en referensvariabel som används för att hänvisa ett omedelbart superklassobjekt. |
Instansvariabel | |
En aktuell klassinstansvariabel kan hänvisas med detta. | Superclass-instansvariabel kan hänvisas med super. |
Klassmetod | |
Den aktuella klassmetoden kan åberopas med hjälp av detta. | Superclass-metoden kan åberopas med super. |
Konstruktör | |
Den aktuella klasskonstruktören kan åberopas med detta (). | Superclass-konstruktören kan åberopas med super (). |
Sammanfattning - detta vs super i Java
Nyckelorden "detta" och "super" används i Java. Nyckelorden kan inte användas som variabler eller något annat identifieringsnamn. De verkar vara desamma, men de har skillnad. Skillnaden mellan detta och super är att super är en referensvariabel som används för att hänvisa omedelbart superklassobjekt medan detta är en referensvariabel som refererar till det aktuella objektet.
Ladda ner PDF av denna vs super i Java
Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här: Skillnaden mellan detta och super i Java