Key Difference – dette vs super i Java
Nøkkelordene "this" og "super" brukes i Java-programmering. Disse nøkkelordene kan ikke brukes som variabler eller andre identifikasjonsnavn. Java støtter objektorientert programmering (OOP). Programmet eller programvaren kan modelleres ved hjelp av objekter. Objekter er mette ved hjelp av klasser. En pilar i OOP er arv. Det gir kodegjenbrukbarhet. Klassene som allerede eksisterer er superklasser, og de avledede klassene er underklasser. Supernøkkelordet kan brukes til å referere til et objekt av superklassen. Det er flere objekter i systemet. Nøkkelordet "dette" brukes til å referere til et gjeldende objekt. Den viktigste forskjellen mellom dette og super er at "dette" er en referansevariabel som brukes til å referere det gjeldende objektet, mens "super" er en referansevariabel som brukes til å referere til umiddelbar superklasseobjekt.
Hva er dette i Java?
Nøkkelordet «dette» brukes for å referere til et gjeldende objekt. Se det gitte Java-programmet.
Figur 01: Java-program som bruker dette søkeordet
I Java er det tre typer variabler. De er instansvariabler, lokale variabler og klassevariabler. I henhold til programmet ovenfor har klassen Employee to instansvariabler. De er id og navn. Lokale variabler er variablene som tilhører metoder. Klassevariabler deles av alle objekter. ID og navn sendes til Ansatt-konstruktøren. Hvis programmereren skriver id=id; den vil ikke initialisere forekomstvariablene fordi konstruktøren allerede har id og navn. Det er ingen verdier for for eksempel variabler. Så hvis du skriver ut dem, vises null. Når du bruker dette, refererer det til gjeldende objekt. Derfor kan det å gi id og navn til konstruktøren sette instansvariablene.
Nøkkelordet «this» kan brukes til å påkalle gjeldende klassemetode. Se det gitte java-programmet.
public class ThisDemo{
public static void main(String args){
Myclass myClass=new Myclass();
myClass. B();
}
}
class Myclass{
public void A(){
System.out.println(“A”);
}
public void B(){
System.out.prinltn(“B”);
this. A();
}
}
Klassen Myclass inneholder to metoder. De er metode A og B. Når du oppretter et objekt av Myclass og påkaller metode B vil B, A skrives ut som utdata. I metode B er det etter utskrift B en setning som this. A(). Ved å bruke dette ble den gjeldende klassemetoden påk alt.
Det er også mulig å bruke dette nøkkelordet for å starte den gjeldende klassekonstruktøren. Se det gitte programmet.
public class ThisDemo{
public static void main(String args){
A obj=new A(5);
}
}
klasse A{
public A(){
System.out.println(“Konstruktør A”);
}
public A(int x){
this();
System.out.println(“Parameterisert konstruktør A”);
}
}
I følge programmet ovenfor har klasse A en standardkonstruktør og en parameterisert konstruktør. Når du oppretter et objekt av A, kalles den parameteriserte konstruktøren. I den parameteriserte konstruktøren er det en setning som denne(); Den vil kalle opp den nåværende klassekonstruktøren som er A().
Hva er super i Java?
Søkeordet «super» er relatert til arv. Arv er et hovedbegrep innen objektorientert programmering. Den gjør det mulig å bruke egenskapene og metodene til den allerede eksisterende klassen til en ny klasse. Den allerede eksisterende klassen er kjent som foreldreklassen eller superklassen. Den nye klassen er kjent som barneklassen eller underklassen.
‘super’ er en referansevariabel som brukes til å referere til det umiddelbare overordnede klasseobjektet. Supernøkkelordet kan referere til umiddelbar overordnet klasseforekomstvariabel eller påkalle den umiddelbare overordnede klassemetoden. Super() brukes til å påkalle umiddelbar overordnet klassekonstruktør.
Anta at det 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{
public void display(){
System.out.println(“A”);
}
}
public class B forlenger A{
public void display(){
System.out.println(“B”);
}
}
Når du oppretter et objekt av type B og kaller metoden display, vil det gi utdata B. klasse A har displaymetoden, men den overstyres av subclass B display-metoden. Hvis programmereren ønsker å kalle visningsmetoden i klasse A, kan han bruke supernøkkelordet. Se det gitte Java-programmet.
Figur 02: Java-program som bruker supernøkkelord
I henhold til programmet ovenfor har klasse A en variabel k alt nummer med verdi 10. Klasse B utvider A og har en variabel k alt nummer med verdi 20. Vanligvis når du oppretter et objekt av type B og kaller visningsmetoden skal gi tallet i underklassen fordi superklasseverdien overstyres av den nye klassen. Ved å bruke super.num, skrives superklassens tallverdi ut.
Super() kan brukes til å kalle superklassekonstruktøren. Se programmet nedenfor.
offentlig klasse Hoved {
public static void main(String args){
B obj=new B();
}
}
klasse A{
A(){
System.out.println(“A”);
}
}
klasse B forlenger A{
B(){
super();
System.out.println(“B”);
}
}
I følge programmet ovenfor har klasse A en konstruktør A (). Klasse B har konstruktøren B (). Klasse B utvider klasse A. Når du oppretter et objekt av type B, vil det skrive ut A, B som utdata. B () konstruktøren har super (). Derfor blir først A-konstruktøren påk alt og går deretter til B. Selv om super () ikke er skrevet, kalles overordnet konstruktør som standard.
Superen som bruker metoden er som følger.
Figur 03: Java-program som påkaller superklassemetoden
I følge programmet ovenfor har klasse A visningsmetode. Klasse B har også visningsmetode. Klasse B utvider A. Når du oppretter et objekt av type B og kaller visningsmetoden vil det gi utdata som A og B. I klasse B visningsmetode kalles klasse A visningsmetode ved å bruke super.display(). Den metoden skriver ut "A" først. Deretter skrives "B".
Hva er likheten mellom dette og super?
Begge er nøkkelord i Java-programmering
Hva er forskjellen mellom dette og super?
This vs Super |
|
«dette» er en referansevariabel som brukes til å referere det gjeldende objektet. | «super» er en referansevariabel som brukes til å referere til et umiddelbart superklasseobjekt. |
Forekomstvariabel | |
En gjeldende klasseforekomstvariabel kan refereres ved å bruke denne. | Superclass-forekomstvariabel kan henvises ved hjelp av super. |
Klassemetode | |
Den gjeldende klassemetoden kan startes ved å bruke denne. | Superclass-metoden kan påkalles ved å bruke super. |
Konstruktør | |
Den nåværende klassekonstruktøren kan startes ved å bruke denne(). | Superclass-konstruktør kan startes ved å bruke super(). |
Sammendrag – dette vs super i Java
Nøkkelordene "this" og "super" brukes i Java. Nøkkelordene kan ikke brukes som variabler eller andre identifikasjonsnavn. De ser ut til å være like, men de har en forskjell. Forskjellen mellom dette og super er at super er en referansevariabel som brukes til å referere til umiddelbar superklasseobjekt, mens dette er en referansevariabel som refererer til det gjeldende objektet.
Last ned PDF-en av dette vs super i Java
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til offline-formål i henhold til sitat. Last ned PDF-versjonen her: Difference Between this and super in Java