Nøgleforskel - dette vs super i Java
Nøgleordene 'dette' og 'super' bruges i Java-programmering. Disse nøgleord kan ikke bruges som variabler eller ethvert andet identifikationsnavn. Java understøtter Object Oriented Programming (OOP). Programmet eller softwaren kan modelleres ved hjælp af objekter. Objekter er umættelige ved hjælp af klasser. En søjle i OOP er arv. Det giver kode genanvendelighed. De klasser, der allerede findes, er superklasser, og de afledte klasser er underklasser. Super-nøgleordet kan bruges til at henvise et objekt fra superklassen. Der er flere objekter i systemet. Nøgleordet 'dette' bruges til at henvise til et aktuelt objekt. Hovedforskellen mellem dette og super er 'dette' er en referencevariabel, der bruges til at henvise det aktuelle objekt, mens 'super' er en referencevariabel, der bruges til at henvise øjeblikkelig superklasseobjekt.
INDHOLD
1. Oversigt og nøgleforskel
2. Hvad er dette i Java
3. Hvad er super i Java
4. Ligheder mellem dette og super i Java
5. Sammenligning side om side - dette vs super i Java i tabelform
6. Resumé
Hvad er dette i Java?
Nøgleordet 'dette' bruges til at henvise til et aktuelt objekt. Se det givne Java-program.
Figur 01: Java-program ved hjælp af dette nøgleord
I Java er der tre typer variabler. De er instansvariabler, lokale variabler og klassevariabler. I henhold til ovenstående program har klasse medarbejder to instansvariabler. De er id og navn. Lokale variabler er de variabler, der hører til metoder. Klassevariabler deles af alle objekter. Id og navn videregives til medarbejderkonstruktøren. Hvis programmøren skriver id = id; det initialiserer ikke forekomstvariablerne, fordi konstruktøren allerede har id og navn. Der er ingen værdier for eksempel variabler. Så udskrivning af dem vises nul. Når du bruger dette, refererer det til det aktuelle objekt. Derfor kan id og navn til konstruktøren indstille instansvariablerne.
Nøgleordet 'dette' kan bruges til at påkalde den aktuelle klassemetode. Se det givne Java-program.
offentlig klasse ThisDemo {
offentlig statisk ugyldig hoved (String args) {
Myclass myClass = ny Myclass ();
myClass. B ();
}
}
klasse Myclass {
offentligt tomrum A () {
System.out.println (“A”);
}
offentligt tomrum B () {
System.out.prinltn (“B”);
det();
}
}
Klassen Myclass indeholder to metoder. De er metode A og B. Når du opretter et objekt fra Myclass og påkalder metoden B, udskrives B, A som output. I metode B er der efter udskrivning B en erklæring som denne. A (). Ved hjælp af dette blev den aktuelle klassemetode påberåbt.
Det er også muligt at bruge dette nøgleord til at påkalde den aktuelle klassekonstruktør. Se det givne program.
offentlig klasse ThisDemo {
offentlig statisk ugyldig hoved (String args) {
A obj = ny A (5);
}
}
klasse A {
offentlig A () {
System.out.println (“Konstruktør A”);
}
offentlig A (int x) {
det her();
System.out.println (“Parameterized Constructor A”);
}
}
I henhold til ovenstående program har klasse A en standardkonstruktør og en parametreret konstruktør. Når du opretter et objekt af A, kaldes den parametriserede konstruktør. I den parametriserede konstruktør er der en erklæring som denne (); Det kalder den aktuelle klassekonstruktør, der er A ().
Hvad er super i Java?
Nøgleordet 'super' er relateret til arv. Arv er et stort koncept for objektorienteret programmering. Det gør det muligt at bruge egenskaberne og metoderne i den allerede eksisterende klasse til en ny klasse. Den allerede eksisterende klasse er kendt som overordnet klasse eller superklasse. Den nye klasse er kendt som barneklassen eller underklassen.
'Super' er en referencevariabel, der bruges til at henvise det umiddelbare overordnede klasseobjekt. Super-nøgleordet kan henvise øjeblikkelig overordnet klasseforekomstvariabel eller påberåbe sig metoden til øjeblikkelig overordnet klasse. Super () bruges til at påkalde øjeblikkelig overordnet klassekonstruktør.
Antag at der er to klasser som A og B. Klasse A er superklassen og klasse B er underklassen. Klasse A, B har begge displaymetode.
offentlig klasse A {
offentlig tom skærm () {
System.out.println (“A”);
}
}
offentlig klasse B udvider A {
offentlig tom skærm () {
System.out.println (“B”);
}
}
Når du opretter et objekt af type B og kalder metodevisningen, vil det give output B. klasse A har visningsmetoden, men den tilsidesættes af underklasse B-visningsmetoden. Hvis programmøren vil kalde displaymetoden i klasse A, kan han bruge super-nøgleordet. Se det givne Java-program.
Figur 02: Java-program ved hjælp af super nøgleord
I henhold til ovenstående program har klasse A en variabel, der hedder nummer med værdi 10. Klasse B udvider A og har en variabel, der hedder nummer med værdi 20. Generelt, når der oprettes et objekt af type B og kalder displaymetoden, skal tallet angive i underklassen, fordi superklasseværdien tilsidesættes af den nye klasse. Ved at bruge super.num udskrives superklassens nummerværdi.
Super () kan bruges til at kalde superklassekonstruktøren. Se nedenstående program.
offentlig klasse Main {
offentlig statisk ugyldig hoved (String args) {
B obj = ny B ();
}
}
klasse A {
EN(){
System.out.println (“A”);
}
}
klasse B udvider A {
B () {
super();
System.out.println (“B”);
}
}
I henhold til ovenstående program har klasse A en konstruktør A (). Klasse B har konstruktøren B (). Klasse B udvider klasse A. Når der oprettes et objekt af type B, udskrives det A, B som output. Konstruktøren B () har super (). Derfor påkræves først A-konstruktøren og går derefter til B. Selvom super () ikke er skrevet, kaldes forældrekonstruktøren som standard.
Super ved hjælp af metoden er som følger.
Figur 03: Java-program, der påberåber sig superklassemetoden
I henhold til ovenstående program har klasse A visningsmetode. Klasse B har også visningsmetode. Klasse B udvider A. Når du opretter et objekt af type B og kalder displaymetoden, får output som A og B. I klasse B-visningsmetode kaldes klasse A-visningsmetode ved hjælp af super.display (). Denne metode udskriver først “A”. Udskriver derefter “B”.
Hvad er ligheden mellem dette og super?
Begge er nøgleord i Java-programmering
Hvad er forskellen mellem dette og super?
Diff artikel midt foran bordet
Dette vs Super |
|
Denne er en referencevariabel, der bruges til at henvise det aktuelle objekt. | 'Super' er en referencevariabel, der bruges til at henvise til et øjeblikkeligt superklasseobjekt. |
Instansvariabel | |
En aktuel klasseinstansvariabel kan henvises ved hjælp af denne. | Superclass-instansvariabel kan henvises ved hjælp af super. |
Klassemetode | |
Den aktuelle klassemetode kan påberåbes ved hjælp af denne. | Superclass-metoden kan påberåbes ved hjælp af super. |
Konstruktør | |
Den aktuelle klassekonstruktør kan påberåbes ved hjælp af dette (). | Superclass-konstruktør kan påberåbes ved hjælp af super (). |
Resumé - dette vs super i Java
Nøgleordene 'dette' og 'super' bruges i Java. Nøgleordene kan ikke bruges som variabler eller noget andet identifikationsnavn. De ser ud til at være de samme, men de har en forskel. Forskellen mellem dette og super er, at super er en referencevariabel, der bruges til at henvise øjeblikkelig superklasseobjekt, mens dette er en referencevariabel, der refererer til det aktuelle objekt.
Download PDF'en af denne vs super i Java
Du kan downloade PDF-version af denne artikel og bruge den til offlineformål som pr. Citatnote. Download venligst PDF-versionen her: Forskellen mellem dette og super i Java