Differenza Tra Questo E Super In Java

Sommario:

Differenza Tra Questo E Super In Java
Differenza Tra Questo E Super In Java

Video: Differenza Tra Questo E Super In Java

Video: Differenza Tra Questo E Super In Java
Video: Differenza tra equals e == - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE 2024, Novembre
Anonim

Differenza chiave: questo vs super in Java

Le parole chiave "questo" e "super" vengono utilizzate nella programmazione Java. Queste parole chiave non possono essere utilizzate come variabili o qualsiasi altro nome identificativo. Java supporta la programmazione orientata agli oggetti (OOP). Il programma o il software può essere modellato utilizzando oggetti. Gli oggetti sono insaziati usando le classi. Un pilastro dell'OOP è l'eredità. Fornisce la riusabilità del codice. Le classi già esistenti sono superclassi e le classi derivate sono sottoclassi. La parola chiave super può essere utilizzata per fare riferimento a un oggetto della superclasse. Sono presenti più oggetti nel sistema. La parola chiave "this" viene utilizzata per fare riferimento a un oggetto corrente. La differenza fondamentale tra this e super è "this" è una variabile di riferimento che viene utilizzata per fare riferimento all'oggetto corrente mentre "super" è una variabile di riferimento che viene utilizzata per fare riferimento a un oggetto superclasse immediato.

CONTENUTI

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. Riepilogo

Cos'è questo in Java?

La parola chiave "this" viene utilizzata per fare riferimento a un oggetto corrente. Fare riferimento al programma Java fornito.

Differenza tra questo e super in Java
Differenza tra questo e super in Java

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à id e nome. Non ci sono valori per le variabili di istanza. Quindi, stamparli visualizzerà null. Quando lo si utilizza, 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 della classe corrente. Fare riferimento al programma Java fornito.

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");

questo un();

}

}

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

È anche possibile utilizzare questa parola chiave per richiamare il costruttore della classe corrente. Fare riferimento al programma dato.

public class ThisDemo {

public static void main (String args) {

A obj = nuovo A (5);

}

}

classe A{

public A () {

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

}

public A (int x) {

Questo();

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

}

}

Secondo il programma 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'è un'istruzione come questa (); Chiamerà il costruttore della classe corrente che è A ().

Cos'è Super in Java?

La parola chiave "super" è correlata all'ereditarietà. L'ereditarietà è un concetto importante della 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 figlio o sottoclasse.

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

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

public class A {

public void display () {

System.out.println ("A");

}

}

la classe pubblica B estende A {

public void display () {

System.out.println ("B");

}

}

Quando si crea un oggetto di tipo B e si chiama il metodo display, verrà fornito l'output B. la classe A ha il metodo di visualizzazione, ma viene sovrascritta dal metodo di visualizzazione della sottoclasse B. Se il programmatore desidera chiamare il metodo di visualizzazione nella classe A, può utilizzare la parola chiave super. Fare riferimento al programma Java fornito.

Differenza tra questo e super in Java Figura 02
Differenza tra questo e super in Java Figura 02

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. In genere, quando si crea un oggetto di tipo B e si chiama il metodo di visualizzazione si dovrebbe fornire il numero in la sottoclasse perché il valore della superclasse è sovrascritto dalla nuova classe. Utilizzando super.num, viene stampato il valore del numero della superclasse.

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

public class Main {

public static void main (String args) {

B obj = nuovo B ();

}

}

classe A{

UN(){

System.out.println ("A");

}

}

la classe B estende A {

B () {

super();

System.out.println ("B");

}

}

Secondo il programma 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, verrà stampato A, B come output. Il costruttore B () ha super (). Pertanto, prima viene richiamato il costruttore A e poi va in B. Anche se super () non è scritto, per impostazione predefinita viene chiamato il costruttore genitore.

Il super che utilizza il metodo è il seguente.

Differenza chiave tra questo e super in Java
Differenza chiave tra questo e super in Java

Figura 03: programma Java che richiama il metodo della superclasse

Secondo il programma sopra, la classe A ha un metodo di visualizzazione. La classe B ha anche un metodo di visualizzazione. La classe B estende A. Quando si crea un oggetto di tipo B e si chiama il metodo di visualizzazione, l'output verrà visualizzato come A e B. Nel metodo di visualizzazione di classe B, il metodo di visualizzazione di classe A viene chiamato utilizzando super.display (). Questo metodo stampa prima "A". Quindi stampa "B".

Qual è la somiglianza tra questo e super?

Entrambe sono parole chiave nella programmazione Java

Qual è la differenza tra questo e super?

Articolo diff. Al centro prima della tabella

Questo vs Super

"This" è una variabile di riferimento utilizzata per fare riferimento all'oggetto corrente. Il "super" è una variabile di riferimento che viene utilizzata per fare riferimento a un oggetto superclasse immediato.
Variabile di istanza
È possibile fare riferimento a una variabile di istanza di classe corrente utilizzando questo. È possibile fare riferimento alla variabile di istanza della superclasse utilizzando super.
Metodo di classe
Il metodo della classe corrente può essere richiamato usando this. Il metodo Superclass può essere richiamato usando super.
Costruttore
Il costruttore della classe corrente può essere richiamato usando this (). Il costruttore della superclasse può essere invocato usando super ().

Riepilogo: questo vs super in Java

Le parole chiave "questo" e "super" vengono utilizzate in Java. Le parole chiave non possono essere utilizzate come variabili o qualsiasi altro nome identificativo. Sembrano essere gli stessi, ma hanno una differenza. La differenza tra this e super è che super è una variabile di riferimento che viene utilizzata per fare riferimento a un oggetto superclasse immediato mentre questa è una variabile di riferimento che fa riferimento all'oggetto corrente.

Scarica il PDF di questo vs super in Java

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

Raccomandato: