Differenza tra questo e super in Java

Differenza chiave - questo vs super in Java
 

Le parole chiave "this" e "super" sono usate nella programmazione Java. Queste parole chiave non possono essere utilizzate come variabili o altri nomi di identificatori. Java supporta Object Oriented Programming (OOP). Il programma o il software possono essere modellati utilizzando gli oggetti. Gli oggetti sono insaziati usando le classi. Un pilastro di OOP è l'ereditarietà. Fornisce la riusabilità del codice. Le classi che esistono già sono superclassi e le classi derivate sono sottoclassi. La parola chiave super può essere utilizzata per riferire un oggetto della superclasse. Ci sono più oggetti nel sistema. La parola chiave "this" viene utilizzata per riferirsi a un oggetto corrente. Il differenza fondamentale tra questo e super è 'questa 'è una variabile di riferimento che viene utilizzata per riferirsi all'oggetto corrente mentre 'super' è una variabile di riferimento che viene usata per riferirsi all'oggetto superclasse immediato. 

CONTENUTO

1. Panoramica e differenza chiave
2. Cos'è questo in Java
3. Cosa è super in Java
4. Somiglianze tra questo e super in Java
5. Confronto fianco a fianco - questo vs super in Java in forma tabulare
6. Sommario

Cos'è questo in Java?

La parola chiave 'this' è usata per riferire un oggetto corrente. Fare riferimento al programma Java specificato.

Figura 01: programma Java che utilizza questa parola chiave

In Java, ci sono tre tipi di variabili. Sono variabili di istanza, variabili locali e variabili di classe. Secondo il programma precedente, la classe Employee ha due variabili di istanza. Sono id e nome. Le variabili locali sono le variabili che appartengono ai metodi. Le variabili di classe sono condivise da tutti gli oggetti. L'id e il nome vengono passati al costruttore Employee. Se il programmatore scrive id = id; non inizializzerà le variabili di istanza perché il Costruttore ha già un ID e un nome. Non ci sono valori per le variabili di istanza. Quindi, stampandoli verrà visualizzato null. Quando si utilizza questo, si riferisce all'oggetto corrente. Pertanto, dare id e nome al costruttore può impostare le variabili di istanza.

La parola chiave 'this' può essere utilizzata per richiamare il metodo corrente della classe. Fare riferimento al programma java fornito.

public class ThisDemo

public static void main (String [] args)

Myclass myClass = new Myclass ();

myClass.B ();

classe Myclass

public void A ()

System.out.println ( “A”);

public void B ()

System.out.prinltn ( “B”);

questo un();

La classe Myclass contiene due metodi. Sono metodo A e B. Quando si crea un oggetto di Myclass e si richiama il metodo B, verrà stampato B, A come output. Nel metodo B, dopo aver stampato B, c'è una dichiarazione come this.A (). Usando questo, è stato richiamato il metodo di classe corrente.

È anche possibile utilizzare questa parola chiave per richiamare il costruttore della classe corrente. Riferisci il programma indicato.

public class ThisDemo

public static void main (String [] args)

A obj = new A (5);

classe A

pubblico A ()

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

pubblico A (int x)

Questo();

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

Secondo il programma di cui sopra, la classe A ha un costruttore predefinito e un costruttore parametrizzato. Quando si crea un oggetto di A, viene chiamato il costruttore parametrizzato. Nel costruttore parametrizzato, c'è una dichiarazione come this (); Chiamerà il costruttore della classe corrente che è A ().

Cosa è super in Java?

La parola chiave "super" è correlata all'ereditarietà. L'ereditarietà è un concetto importante di programmazione orientata agli oggetti. Consente di utilizzare le proprietà e i metodi della classe già esistente in una nuova classe. La classe già esistente è nota come classe genitore o superclasse. La nuova classe è nota come classe figlia o sottoclasse.

Il 'super' è una variabile di riferimento che viene utilizzata per riferirsi all'oggetto della classe genitore immediato. La parola chiave super può riferirsi alla variabile istanza della classe genitore immediata o invocare il metodo della classe genitore immediata. Il super () è usato per invocare il costruttore della classe genitore immediata.

Supponiamo che ci siano due classi come A e B. La classe A è la superclasse e la classe B è la sottoclasse. Le classi A, B hanno entrambi il metodo di visualizzazione.

classe pubblica A

display public void ()

System.out.println ( “A”);

la classe pubblica B estende A

display public void ()

System.out.println ( “B”);

Quando si crea un oggetto di tipo B e si chiama la visualizzazione del metodo, esso fornisce l'output B. la classe A ha il metodo di visualizzazione, ma è sovrascritta dal metodo di visualizzazione della sottoclasse B. Se il programmatore desidera chiamare il metodo di visualizzazione in classe A, può utilizzare la parola chiave super. Fare riferimento al programma Java specificato.

Figura 02: programma Java che utilizza la parola chiave super

Secondo il programma di cui sopra, la classe A ha una variabile denominata numero con valore 10. La classe B estende A e ha una variabile denominata numero con valore 20. Generalmente, quando si crea un oggetto di tipo B e si chiama il metodo di visualizzazione si dovrebbe dare il numero in la sottoclasse perché il valore della superclasse è sovrascritto dalla nuova classe. Usando il super.num, viene stampato il valore del numero della superclasse.

Il super () può essere usato per chiamare il costruttore della superclasse. Fare riferimento al programma seguente.

public class Main

public static void main (String [] args)

B obj = new B ();

classe A

UN()

System.out.println ( “A”);

la classe B estende A

B ()

super();

System.out.println ( “B”);

Secondo il programma di cui sopra, la classe A ha un costruttore A (). La classe B ha il costruttore B (). La classe B estende la classe A. Quando si crea un oggetto di tipo B, stamperà A, B come output. Il costruttore B () ha super (). Quindi, prima viene invocato il costruttore A e poi passa a B. Anche se super () non è scritto, per impostazione predefinita viene chiamato il costruttore genitore.

Il super che usa il metodo è il seguente.

Figura 03: programma Java che richiama il metodo della superclasse

Secondo il programma di cui sopra, la classe A ha un metodo di visualizzazione. Anche la classe B ha un metodo di visualizzazione. La classe B si estende a A. Quando si crea un oggetto di tipo B e si chiama il metodo di visualizzazione si generano output come A e B. Nel metodo di visualizzazione di classe B, il metodo di visualizzazione di classe A viene chiamato usando super.display (). Questo metodo stampa prima "A". Quindi stampa "B".

Qual è la somiglianza tra questo e il super?

  • Entrambe sono parole chiave nella programmazione Java.

Qual è la differenza tra questo e il super?

Questo contro Super

Il 'questo' è una variabile di riferimento che viene utilizzata per riferirsi all'oggetto corrente. Il 'super' è una variabile di riferimento che viene utilizzata per riferirsi a un oggetto superclasse immediato.
 Istanza variabile
Una variabile istanza di classe corrente può essere riferita usando questo. La variabile di istanza di Superclasse può essere riferita usando super.
Metodo di classe
Il metodo corrente della classe può essere invocato usando questo. Il metodo della superclasse può essere invocato usando super.
 Costruttore
Il costruttore della classe corrente può essere invocato usando this (). Il costruttore della superclasse può essere invocato usando super ().

Sommario - questo vs super in Java

Le parole chiave "this" e "super" sono usate in Java. Le parole chiave non possono essere utilizzate come variabili o altri nomi di identificatori. Sembrano essere gli stessi, ma hanno una differenza. La differenza tra questo e super è che super è una variabile di riferimento che viene usata per riferirsi all'oggetto superclass immediato mentre questa è una variabile di riferimento che rimanda all'oggetto corrente.

Scarica il PDF di questo vs super in Java

È possibile scaricare la versione PDF di questo articolo e utilizzarlo per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui: Differenza tra questo e super in Java

Riferimento:

1.Questa () e super parola chiave in java e il suo scopo con un breve esempio, conoscenza di Atoz, 31 gennaio 2015. Disponibile qui 
2. "Questa parola chiave nel punto java-java." Disponibile qui  
3.tutorialspoint.com. "Java Inheritance". Il punto, Disponibile qui