Verschil Tussen Dit En Super In Java

Inhoudsopgave:

Verschil Tussen Dit En Super In Java
Verschil Tussen Dit En Super In Java

Video: Verschil Tussen Dit En Super In Java

Video: Verschil Tussen Dit En Super In Java
Video: Difference between this and super keyword 2024, December
Anonim

Belangrijkste verschil - dit versus super in Java

De trefwoorden 'dit' en 'super' worden gebruikt bij het programmeren van Java. Deze sleutelwoorden kunnen niet worden gebruikt als variabelen of een andere identificatienaam. Java ondersteunt Object Oriented Programming (OOP). Met behulp van objecten kan het programma of de software gemodelleerd worden. Objecten zijn niet geschikt om klassen te gebruiken. Een pijler van OOP is overerving. Het biedt herbruikbaarheid van code. De reeds bestaande klassen zijn superklassen en de afgeleide klassen zijn subklassen. Het super sleutelwoord kan worden gebruikt om een object van de superklasse te verwijzen. Er zijn meerdere objecten in het systeem. Het trefwoord 'dit' wordt gebruikt om naar een huidig object te verwijzen. Het belangrijkste verschil tussen dit en super is dat 'dit' een referentievariabele is die wordt gebruikt om naar het huidige object te verwijzen, terwijl 'super' een referentievariabele is die wordt gebruikt om een onmiddellijk superklasse-object te verwijzen.

INHOUD

1. Overzicht en belangrijkste verschil

2. Wat is dit in Java

3. Wat is super in Java

4. Overeenkomsten tussen dit en super in Java

5. Vergelijking zij aan zij - dit versus super in Java in tabelvorm

6. Samenvatting

Wat is dit in Java?

Het trefwoord 'dit' wordt gebruikt om naar een huidig object te verwijzen. Verwijs naar het gegeven Java-programma.

Verschil tussen dit en super in Java
Verschil tussen dit en super in Java

Figuur 01: Java-programma dat dit trefwoord gebruikt

In Java zijn er drie soorten variabelen. Het zijn instantievariabelen, lokale variabelen en klassevariabelen. Volgens het bovenstaande programma heeft klasse Medewerker twee instantievariabelen. Ze zijn id en naam. Lokale variabelen zijn de variabelen die bij methoden horen. Klassevariabelen worden door alle objecten gedeeld. De id en naam worden doorgegeven aan de constructor Employee. Als de programmeur id = id; het zal de instantievariabelen niet initialiseren omdat de constructor al id en naam heeft. Er zijn geen waarden voor instantievariabelen. Dus als u ze afdrukt, wordt null weergegeven. Bij gebruik hiervan verwijst het naar het huidige object. Daarom kan het geven van id en naam aan de constructor de instantievariabelen instellen.

Het sleutelwoord 'this' kan worden gebruikt om de huidige klassemethode aan te roepen. Verwijs naar het gegeven Java-programma.

openbare les ThisDemo {

public static void main (String args) {

Myclass myClass = nieuwe Myclass ();

myClass. B ();

}

}

klasse Myclass {

openbare leegte A () {

System.out.println ("A");

}

openbare leegte B () {

System.out.prinltn ("B");

dit is();

}

}

De klasse Myclass bevat twee methoden. Het zijn methode A en B. Bij het maken van een object van Myclass en het aanroepen van methode B zal B, A als uitvoer worden afgedrukt. In methode B is er na het afdrukken van B een verklaring als deze A (). Hiermee werd de huidige klassemethode aangeroepen.

Het is ook mogelijk om dit sleutelwoord te gebruiken om de huidige klassenconstructor aan te roepen. Verwijs naar het gegeven programma.

openbare les ThisDemo {

public static void main (String args) {

A obj = nieuwe A (5);

}

}

klasse A, eerste klasse{

openbaar A () {

System.out.println ("Constructor A");

}

openbaar A (int x) {

deze();

System.out.println ("Geparameteriseerde Constructor A");

}

}

Volgens het bovenstaande programma heeft klasse A een standaardconstructor en een geparametriseerde constructor. Bij het maken van een object van A, wordt de geparametreerde constructor aangeroepen. In de constructor met parameters is er een statement zoals dit (); Het zal de huidige klassenconstructor aanroepen die A () is.

Wat is super in Java?

Het trefwoord 'super' heeft betrekking op overerving. Overerving is een belangrijk concept van Object Oriented Programming. Het maakt het mogelijk om de eigenschappen en methoden van de reeds bestaande klasse te gebruiken voor een nieuwe klasse. De reeds bestaande klasse staat bekend als de bovenliggende klasse of superklasse. De nieuwe klasse staat bekend als de onderliggende klasse of subklasse.

De 'super' is een referentievariabele die wordt gebruikt om te verwijzen naar het direct bovenliggende klasseobject. Het trefwoord super kan verwijzen naar instantievariabele van de direct bovenliggende klasse of de methode van de directe bovenliggende klasse aanroepen. De super () wordt gebruikt om de constructor van de directe bovenliggende klasse aan te roepen.

Stel dat er twee klassen zijn, namelijk A en B. Klasse A is de superklasse en klasse B is de subklasse. Klasse A, B hebben beide een weergavemethode.

openbare klasse A {

openbare ongeldige weergave () {

System.out.println ("A");

}

}

openbare klasse B breidt A {

openbare ongeldige weergave () {

System.out.println ("B");

}

}

Bij het maken van een object van het type B en het aanroepen van de methode display, geeft het de uitvoer B. klasse A heeft de weergavemethode, maar deze wordt overschreven door de subklasse B weergavemethode. Als de programmeur de weergavemethode in klasse A wil aanroepen, kan hij het supersleutelwoord gebruiken. Verwijs naar het gegeven Java-programma.

Verschil tussen dit en super in Java Figure 02
Verschil tussen dit en super in Java Figure 02

Figuur 02: Java-programma met supersleutelwoord

Volgens het bovenstaande programma heeft klasse A een variabele met de naam getal met waarde 10. Klasse B breidt A uit en heeft een variabele met de naam getal met waarde 20. Over het algemeen moet bij het maken van een object van het type B en het aanroepen van de weergavemethode het nummer in de subklasse omdat de waarde van de superklasse wordt overschreven door de nieuwe klasse. Door het super.num te gebruiken, wordt de getalwaarde van de superklasse afgedrukt.

De super () kan worden gebruikt om de constructor van de superklasse aan te roepen. Raadpleeg het onderstaande programma.

openbare klas Main {

public static void main (String args) {

B obj = nieuwe B ();

}

}

klasse A, eerste klasse{

EEN(){

System.out.println ("A");

}

}

klasse B breidt A {

B () {

super();

System.out.println ("B");

}

}

Volgens het bovenstaande programma heeft klasse A een constructor A (). Klasse B heeft de constructor B (). Klasse B breidt klasse A uit. Bij het maken van een object van type B, zal het A, B als uitvoer afdrukken. De constructor B () heeft super (). Daarom wordt eerst de constructor A aangeroepen en gaat dan naar B. Hoewel super () niet is geschreven, wordt standaard de bovenliggende constructor aangeroepen.

De super die de methode gebruikt, is als volgt.

Belangrijkste verschil tussen dit en super in Java
Belangrijkste verschil tussen dit en super in Java

Figuur 03: Java-programma dat de superklasse-methode aanroept

Volgens het bovenstaande programma heeft klasse A een weergavemethode. Klasse B heeft ook een weergavemethode. Klasse B breidt A uit. Bij het maken van een object van type B en het aanroepen van de weergavemethode, wordt uitvoer weergegeven als A en B. In de weergavemethode van klasse B wordt de weergavemethode van klasse A aangeroepen met super.display (). Bij die methode wordt eerst "A" afgedrukt. Drukt vervolgens "B" af.

Wat is de overeenkomst tussen dit en super?

Beide zijn sleutelwoorden in Java-programmering

Wat is het verschil tussen dit en super?

Diff Artikel Midden voor Tafel

Dit versus Super

De 'this' is een referentievariabele die wordt gebruikt om naar het huidige object te verwijzen. De 'super' is een referentievariabele die wordt gebruikt om een onmiddellijk superklasse-object te verwijzen.
Instantievariabele
Hiermee kan naar een huidige instantievariabele van de klasse worden verwezen. De instantievariabele van de superklasse kan worden verwezen met super.
Klasse Methode
Hiermee kan de huidige klassemethode worden aangeroepen. De superklasse-methode kan worden aangeroepen met super.
Constructor
De huidige klassenconstructor kan worden aangeroepen met this (). De constructor Superklasse kan worden aangeroepen met super ().

Samenvatting - dit versus super in Java

In Java worden de trefwoorden 'dit' en 'super' gebruikt. De trefwoorden kunnen niet worden gebruikt als variabelen of een andere identificatienaam. Ze lijken hetzelfde te zijn, maar ze hebben een verschil. Het verschil tussen dit en super is dat super een referentievariabele is die wordt gebruikt om een onmiddellijk superklasse-object te verwijzen, terwijl dit een referentievariabele is die verwijst naar het huidige object.

Download de PDF van deze vs super in Java

U kunt de PDF-versie van dit artikel downloaden en voor offline doeleinden gebruiken volgens de citatienota. Download de pdf-versie hier: Verschil tussen dit en super in Java

Aanbevolen: