Diferència clau: això vs super a Java
Les paraules clau "això" i "super" s'utilitzen a la programació Java. Aquestes paraules clau no es poden utilitzar com a variables o cap altre nom d'identificador. Java admet programació orientada a objectes (OOP). El programa o programari es pot modelar mitjançant objectes. Els objectes són insaciables utilitzant classes. Un dels pilars de la POO és l'herència. Proporciona la reutilització del codi. Les classes que ja existeixen són superclasses, i les classes derivades són subclasses. La paraula clau super es pot utilitzar per referir un objecte de la superclasse. Hi ha diversos objectes al sistema. La paraula clau "això" s'utilitza per referir un objecte actual. La diferència clau entre això i super és que "això" és una variable de referència que s'utilitza per referir l'objecte actual, mentre que "super" és una variable de referència que s'utilitza per referir un objecte de superclasse immediat.
Què és això a Java?
La paraula clau "això" s'utilitza per fer referència a un objecte actual. Consulteu el programa Java donat.
Figura 01: programa Java que utilitza aquesta paraula clau
A Java, hi ha tres tipus de variables. Són variables d'instància, variables locals i variables de classe. Segons el programa anterior, la classe Employee té dues variables d'instància. Són id i nom. Les variables locals són les variables que pertanyen als mètodes. Les variables de classe són compartides per tots els objectes. L'identificador i el nom es passen al constructor Employee. Si el programador escriu id=id; no inicialitzarà les variables d'instància perquè el Constructor ja té id i nom. No hi ha valors per exemple variables. Per tant, imprimir-los es mostrarà nul. Quan s'utilitza, es refereix a l'objecte actual. Per tant, donar id i nom al constructor pot establir les variables d'instància.
La paraula clau "això" es pot utilitzar per invocar el mètode de classe actual. Consulteu el programa java donat.
classe pública Aquesta demostració{
public static void main(String args){
Myclass myClass=new Myclass();
myClass. B();
}
}
class La meva classe{
public void A(){
System.out.println(“A”);
}
public void B(){
System.out.prinltn(“B”);
this. A();
}
}
La classe Myclass conté dos mètodes. Són els mètodes A i B. En crear un objecte de Myclass i invocar el mètode B, s'imprimirà B, A com a sortida. En el mètode B, després d'imprimir B hi ha una declaració com aquesta. A(). Amb això, es va invocar el mètode de classe actual.
També és possible utilitzar aquesta paraula clau per invocar el constructor de classe actual. Consulteu el programa donat.
classe pública Aquesta demostració{
public static void main(String args){
A obj=nou A(5);
}
}
classe A{
public A(){
System.out.println(“Constructor A”);
}
public A(int x){
this();
System.out.println(“Constructor parametritzat A”);
}
}
Segons el programa anterior, la classe A té un constructor per defecte i un constructor parametritzat. Quan es crea un objecte d'A, s'anomena el constructor parametritzat. En el constructor parametritzat, hi ha una instrucció com aquesta(); Cridarà al constructor de classe actual que és A().
Què és super a Java?
La paraula clau "super" està relacionada amb l'herència. L'herència és un concepte important de la programació orientada a objectes. Permet utilitzar les propietats i mètodes de la classe ja existent a una classe nova. La classe ja existent es coneix com a classe pare o superclasse. La nova classe es coneix com a classe o subclasse secundaria.
El "super" és una variable de referència que s'utilitza per referir l'objecte de classe pare immediat. La paraula clau super pot fer referència a la variable d'instància de classe pare immediata o invocar el mètode de classe pare immediata. El super() s'utilitza per invocar el constructor de classe pare immediat.
Suposem que hi ha dues classes com A i B. La classe A és la superclasse i la classe B és la subclasse. Les classes A i B tenen un mètode de visualització.
classe pública A{
visualització nul pública(){
System.out.println(“A”);
}
}
classe pública B amplia A{
visualització nul pública(){
System.out.println(“B”);
}
}
Quan es crea un objecte de tipus B i es crida a la visualització del mètode, donarà la sortida B. La classe A té el mètode de visualització, però el mètode de visualització de la subclasse B la substitueix. Si el programador vol trucar al mètode de visualització de la classe A, pot utilitzar la paraula clau super. Consulteu el programa Java donat.
Figura 02: programa Java que utilitza súper paraula clau
Segons el programa anterior, la classe A té un nombre de variable amb el valor 10. La classe B s'estén A i té un nombre de variable amb el valor 20. Generalment, quan es crea un objecte de tipus B i es crida al mètode de visualització hauria de donar el número a la subclasse perquè la nova classe substitueix el valor de la superclasse. En utilitzar el super.num, s'imprimeix el valor del número de superclasse.
El super() es pot utilitzar per cridar al constructor de la superclasse. Consulteu el programa següent.
classe pública Principal {
public static void main(String args){
B obj=nou B();
}
}
classe A{
A(){
System.out.println(“A”);
}
}
classe B amplia A{
B(){
super();
System.out.println(“B”);
}
}
Segons el programa anterior, la classe A té un constructor A (). La classe B té el constructor B (). La classe B amplia la classe A. Quan es crea un objecte de tipus B, imprimirà A, B com a sortida. El constructor B () té super (). Per tant, primer s'invoca el constructor A i després passa a B. Tot i que no s'escriu super(), per defecte s'anomena el constructor principal.
El súper que utilitza el mètode és el següent.
Figura 03: programa Java que invoca el mètode de la superclasse
Segons el programa anterior, la classe A té un mètode de visualització. La classe B també té un mètode de visualització. La classe B s'estén A. Quan es crea un objecte de tipus B i es crida al mètode de visualització, es donarà una sortida com a A i B. En el mètode de visualització de classe B, el mètode de visualització de classe A s'anomena mitjançant super.display(). Aquest mètode imprimeix primer "A". A continuació, imprimeix "B".
Quina semblança hi ha entre això i super?
Totes dues són paraules clau en programació Java
Quina diferència hi ha entre això i super?
Això vs Super |
|
El "això" és una variable de referència que s'utilitza per referir l'objecte actual. | El "super" és una variable de referència que s'utilitza per referir un objecte de superclasse immediat. |
Variable d'instància | |
Una variable d'instància de classe actual es pot referir amb això. | La variable d'instància de la superclasse es pot referir mitjançant super. |
Mètode de classe | |
El mètode de classe actual es pot invocar amb això. | El mètode de la superclassees pot invocar amb super. |
Constructor | |
El constructor de classes actual es pot invocar amb això(). | El constructor de la superclasse es pot invocar mitjançant super(). |
Resum: això vs super a Java
Les paraules clau "això" i "super" s'utilitzen a Java. Les paraules clau no es poden utilitzar com a variables o cap altre nom d'identificador. Sembla que són iguals, però tenen una diferència. La diferència entre això i super és que super és una variable de referència que s'utilitza per referir un objecte de superclasse immediat mentre que aquesta és una variable de referència que fa referència a l'objecte actual.
Descarregueu el PDF d'aquest vs super en Java
Podeu baixar la versió PDF d'aquest article i utilitzar-la per a finalitats fora de línia segons la nota de citació. Si us plau, descarregueu la versió PDF aquí: Diferència entre això i super en Java