Forskel mellem dette og super i Java

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 et andet identifikationsnavn. Java understøtter Object Oriented Programming (OOP). Programmet eller softwaren kan modelleres ved hjælp af objekter. Objekter isolerer ved hjælp af klasser. En søjle i OOP er arv. Det giver genanvendelse af kode. De klasser, der allerede findes, er superklasser, og de afledte klasser er underklasser. Super-nøgleordet kan bruges til at henvise til et objekt i superklassen. Der er flere objekter i systemet. Nøgleordet "dette" bruges til at henvise til et aktuelt objekt. Det vigtigste forskel mellem dette og super er 'dette 'er en referencevariabel, der bruges til at henvise til det aktuelle objekt mens 'super' er en referencevariabel, der bruges til at henvise til det umiddelbare superklasse-objekt. 

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 ved side - denne vs super i Java i tabelform
6. Resume

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. Det er forekomstvariabler, lokale variabler og klassevariabler. I henhold til ovenstående program har klasse medarbejder to forekomstvariabler. De er id og navn. Lokale variabler er variablerne tilhører metoder. Klassevariabler deles af alle objekter. Id og navn overføres til medarbejderkonstruktøren. Hvis programmereren skriver id = id; det initialiserer ikke forekomstvariablerne, fordi konstruktøren allerede har id og navn. Der er ingen værdier for eksempelvariabler. Så udskrivning af dem viser null. Når du bruger dette, henviser det til det aktuelle objekt. Derfor kan det at give id og navn til konstruktøren indstille forekomstvariablerne.

Nøgleordet 'dette' kan bruges til at påkalde den aktuelle klassemetode. Se det givne java-program.

offentlig klasse ThisDemo

public static void main (String [] args)

Myclass myClass = new Myclass ();

myClass.B ();

klasse Myclass

offentligt ugyldigt A ()

System.out.println ( ”A”);

offentligt ugyldigt B ()

System.out.prinltn ( ”B”);

det();

Klassen Myclass indeholder to metoder. De er metode A og B. Når du opretter et objekt af Myclass og påberåber 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 denne 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

public static void main (String [] args)

En obj = ny A (5);

klasse A

offentlig A ()

System.out.println (“Konstruktør A”);

offentlig A (int x)

dette();

System.out.println (“Parameteriseret konstruktør A”);

I henhold til ovenstående program har klasse A en standardkonstruktør og en parameteriseret konstruktør. Når du opretter et objekt af A, kaldes den parameteriserede konstruktør. I den parameteriserede konstruktør er der en sætning 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 hovedkoncept af objektorienteret programmering. Det gør det muligt at bruge egenskaberne og metoderne for den allerede eksisterende klasse til en ny klasse. Den allerede eksisterende klasse kaldes forældreklassen eller superklassen. Den nye klasse kaldes barneklassen eller underklassen.

'Super' er en referencevariabel, der bruges til at henvise til det umiddelbare overordnede klasseobjekt. Super-nøgleordet kan henvise til den umiddelbare forældreklasse forekomstvariabel eller påkalde den umiddelbare forældreklasse metode. Super () bruges til at påkalde øjeblikkelig forældreklasse-konstruktø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 visningsmetode.

offentlig klasse A

visning af offentligt ugyldigt ()

System.out.println ( ”A”);

offentlig klasse B udvider A

visning af offentlig tomrum ()

System.out.println ( ”B”);

Når du opretter et objekt af type B og kalder metodevisningen, giver det output B. klasse A har visningsmetoden, men det tilsidesættes af underklasse B-visningsmetode. Hvis programmereren ønsker at kalde visningsmetoden i klasse A, kan han bruge det super nøgleord. 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 er navngivet nummer med værdien 10. Klasse B udvider A og har en variabel, der er navngivet nummer med værdien 20. Generelt, når man opretter et objekt af type B og kalder, skal visningsmetoden give tallet i underklassen, fordi superklassens værdi tilsidesættes af den nye klasse. Ved at bruge super.numet udskrives værdien for superklassens nummer.

Super () kan bruges til at kalde superklassekonstruktøren. Se nedenstående program.

offentlig klasse Main

public static void main (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 du opretter et objekt af type B, udskrives det A, B som output. B () -konstruktøren har super (). Derfor påkaldes først A-konstruktøren og går derefter til B. Selvom super () ikke er skrevet, kaldes standardkonstruktøren som standard.

Super ved hjælp af metoden er som følger.

Figur 03: Java-program, der påberåber superklasse-metoden

I henhold til ovenstående program har klasse A en visningsmetode. Klasse B har også visningsmetode. Klasse B strækker sig A. Når du opretter et objekt af type B og kalder visningsmetoden, vil det give output som A og B. I visningsmetode i klasse B kaldes klasse A-visningsmetode ved hjælp af super.display (). Denne metode udskriver først “A”. Derefter udskrives “B”.

Hvad er ligheden mellem dette og super?

  • Begge er nøgleord i Java-programmering.

Hvad er forskellen mellem dette og super?

Dette vs Super

'Dette' er en referencevariabel, der bruges til at henvise til det aktuelle objekt. 'Super' er en referencevariabel, der bruges til at henvise til et øjeblikkeligt superklasse-objekt.
 Forekomstvariabel
En nuværende klasseinstansvariabel kan henvises til ved hjælp af denne. Superclass-forekomstvariabel kan refereres til ved hjælp af super.
Klassemetode
Den aktuelle klassemetode kan påberåbes ved hjælp af denne. Superklassemetode kan påberåbes ved hjælp af super.
 Constructor
Den aktuelle klassekonstruktør kan påberåbes ved hjælp af denne (). Superklassekonstruktør kan påberåbes ved hjælp af super ().

Resume - dette vs super i Java

Nøgleordene 'dette' og 'super' bruges i Java. Nøgleordene kan ikke bruges som variabler eller andet navn. 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 til øjeblikkeligt superklasse-objekt, 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 offline-formål som pr. Citatnotat. Download PDF-versionen her: Forskel mellem denne og super i Java

Reference:

1. Dette () og super nøgleord i java og dets formål med et kort eksempel, Atoz viden, 31. januar 2015. Tilgængelig her 
2. "Dette nøgleord i java - java punkt." Tilgængelig her  
3.tutorialspoint.com. “Java-arv.” Punktet, tilgængeligt her