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: What is the difference between this() and super() | Core Java FAQs Videos | Naresh IT 2024, December
Anonim

Belangrijk verschil - dit versus super in Java

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

Wat is dit in Java?

Het trefwoord 'this' wordt gebruikt om naar een huidig object te verwijzen. Raadpleeg 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 Werknemer twee instantievariabelen. Ze zijn id en naam. Lokale variabelen zijn de variabelen die bij methoden horen. Klassevariabelen worden gedeeld door alle objecten. De id en naam worden doorgegeven aan de constructor van de werknemer. Als de programmeur id=id schrijft; het zal de instantievariabelen niet initialiseren omdat de constructor al een id en naam heeft. Er zijn geen waarden voor bijvoorbeeld variabelen. 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 klassenmethode aan te roepen. Raadpleeg het gegeven Java-programma.

openbare les ThisDemo{

public static void main(String args){

Mijnklasse mijnKlasse=nieuwe Mijnklasse();

mijnKlasse. B();

}

}

class Mijnklas{

openbare leegte A(){

Systeem.uit.println(“A”);

}

public void B(){

System.out.prinltn(“B”);

this. A();

}

}

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

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

openbare les ThisDemo{

public static void main(String args){

A obj=nieuwe A(5);

}

}

klasse A{

public A(){

System.out.println(“Constructor A”);

}

public A(int x){

this();

System.out.println(“Geparameteriseerde Constructor A”);

}

}

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

Wat is super in Java?

Het trefwoord 'super' is gerelateerd aan overerving. Overerving is een belangrijk concept van objectgeoriënteerd programmeren. Hiermee kunnen de eigenschappen en methoden van de reeds bestaande klasse worden gebruikt 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 naar het directe bovenliggende klasseobject te verwijzen. Het sleutelwoord super kan verwijzen naar de instantievariabele van de directe bovenliggende klasse of de methode van de directe bovenliggende klasse aanroepen. De super() wordt gebruikt om de constructor van de onmiddellijke bovenliggende klasse aan te roepen.

Veronderstel dat er twee klassen zijn als A en B. Klasse A is de superklasse en klasse B is de subklasse. Klasse A en B hebben beide een weergavemethode.

publieke klasse A{

public void display(){

Systeem.uit.println(“A”);

}

}

publieke klasse B breidt A uit{

public void display(){

Systeem.uit.println(“B”);

}

}

Bij het maken van een object van het type B en het aanroepen van de methode display, zal dit de output B geven. klasse A heeft de display methode, maar deze wordt overschreven door de subklasse B display methode. Als de programmeur de weergavemethode in klasse A wil aanroepen, kan hij het super-trefwoord gebruiken. Raadpleeg het gegeven Java-programma.

Verschil tussen dit en super in Java_Figuur 02
Verschil tussen dit en super in Java_Figuur 02

Figuur 02: Java-programma met super trefwoord

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, bij het maken van een object van het type B en het aanroepen van de weergavemethode moet het nummer in de subklasse geven omdat de superklassewaarde wordt overschreven door de nieuwe klasse. Door 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.

publieke klas Hoofd {

public static void main(String args){

B obj=nieuwe B();

}

}

klasse A{

A(){

Systeem.uit.println(“A”);

}

}

klasse B breidt A uit{

B(){

super();

Systeem.uit.println(“B”);

}

}

Volgens het bovenstaande programma heeft klasse A een constructor A (). Klasse B heeft de constructor B (). Klasse B breidt klasse A uit. Wanneer een object van type B wordt gemaakt, wordt A, B als uitvoer afgedrukt. De B () constructor heeft super (). Daarom wordt eerst de A-constructor aangeroepen en gaat vervolgens 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 superklassemethode 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 het type B en het aanroepen van de weergavemethode zal uitvoer worden gegeven als A en B. In de weergavemethode van klasse B wordt de weergavemethode van klasse A aangeroepen met behulp van super.display(). Die methode drukt eerst "A" af. 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?

Dit vs 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 naar een direct superklasse-object te verwijzen.
Instantievariabele
Een huidige klasse instantievariabele kan hiermee worden verwezen. Superclass instantievariabele kan worden verwezen met super.
Klasmethode
De huidige klassenmethode kan hiermee worden aangeroepen. Superclass-methode kan worden aangeroepen met super.
Constructeur
De huidige klassenconstructor kan worden aangeroepen met deze(). Superclass-constructor kan worden aangeroepen met super().

Samenvatting – dit vs super in Java

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

Download de PDF van dit vs super in Java

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

Aanbevolen: