java this keyword tutorial with code examples
Questo tutorial spiega in dettaglio una parola chiave speciale 'this' in Java con semplici esempi di codice. Spiega come, quando e dove utilizzare la parola chiave 'questa':
In questo tutorial, abbiamo introdotto uno dei concetti importanti in Java: la parola chiave 'this'. Esploreremo i dettagli della parola chiave 'questa' e presenteremo anche alcuni esempi del suo utilizzo in Java.
La parola chiave 'questo' in Java è una variabile di riferimento. La variabile di riferimento 'this' punta all'oggetto corrente nel programma Java . Quindi, se desideri accedere a qualsiasi membro o funzione dell'oggetto corrente, puoi farlo utilizzando il riferimento 'this'.
Cosa imparerai:
- Introduzione 'questo' di Java
- Quando utilizzare 'questo' in Java?
- Accedi alla variabile di istanza utilizzando 'this'
- 'Questo' è passato come parametro del metodo
- Richiama il metodo della classe corrente con 'this'
- Torna con 'questo'
- Utilizzo di 'this' per invocare il costruttore della classe corrente
- Usare 'questo' come argomento per il costruttore
- Domande frequenti
- Conclusione
Introduzione 'questo' di Java
Il riferimento 'questo' è generalmente definito come 'questo puntatore' in quanto punta all'oggetto corrente. Il 'questo puntatore' è utile quando esiste un nome per gli attributi e i parametri della classe. Quando si verifica una situazione del genere, 'questo puntatore' elimina la confusione in quanto possiamo accedere ai parametri utilizzando il puntatore 'questo'.
In questo tutorial, discuteremo l'uso del puntatore 'this' in varie situazioni insieme ad esempi.
Quando utilizzare 'questo' in Java?
In Java il termine 'questo' ha i seguenti usi:
- Il riferimento 'this' viene utilizzato per accedere alla variabile di istanza della classe.
- Puoi anche passare 'this' come argomento nella chiamata al metodo.
- 'This' può essere utilizzato anche per invocare implicitamente il metodo della classe corrente.
- Se desideri restituire l'oggetto corrente dal metodo, utilizza 'this'.
- Se vuoi invocare il costruttore della classe corrente, puoi usare 'this'.
- Il costruttore può anche avere 'questo' come argomento.
Esaminiamo ora ciascuno di questi usi separatamente.
Accedi alla variabile di istanza utilizzando 'this'
Le variabili di istanza dei parametri di classe e metodo possono avere lo stesso nome. Il puntatore 'questo' può essere utilizzato per rimuovere l'ambiguità che ne deriva.
Il programma Java di seguito mostra come 'this' può essere utilizzato per accedere alle variabili di istanza.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
Produzione:
Nel programma sopra, puoi vedere che le variabili di istanza ei parametri del metodo condividono gli stessi nomi. Usiamo il puntatore 'this' con le variabili di istanza per distinguere tra le variabili di istanza e i parametri del metodo.
'Questo' è passato come parametro del metodo
È inoltre possibile passare questo puntatore come parametro del metodo. Il passaggio di questo puntatore come parametro del metodo è generalmente richiesto quando si ha a che fare con gli eventi. Per esempio, supponi di voler attivare qualche evento sull'oggetto / handle corrente, quindi devi attivarlo usando questo puntatore.
Di seguito è riportata una mostra di programmazione in cui abbiamo passato questo puntatore al metodo.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
Produzione:
In questo programma, creiamo un oggetto della classe Test_method nella funzione main e quindi chiamiamo il metodo get () con questo oggetto. All'interno del metodo get (), il puntatore 'this' viene passato al metodo printVal () che visualizza le variabili di istanza correnti.
Richiama il metodo della classe corrente con 'this'
Proprio come puoi passare il puntatore 'this' al metodo, puoi anche utilizzare questo puntatore per invocare un metodo. Se dimentichi di includere questo puntatore durante l'invocazione del metodo della classe corrente, il compilatore lo aggiunge per te.
Di seguito viene fornito un esempio di invocazione del metodo di classe con 'this'.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
Produzione:
In questo programma, il metodo di classe print () chiama il metodo show () usando questo puntatore quando viene invocato dall'oggetto classe nella funzione principale.
Torna con 'questo'
Se il tipo di ritorno del metodo è l'oggetto della classe corrente, puoi comodamente restituire il puntatore 'questo'. In altre parole, puoi restituire l'oggetto corrente da un metodo utilizzando il puntatore 'this'.
Di seguito è riportata l'implementazione della restituzione di un oggetto utilizzando il puntatore 'this'.
come dividere una stringa per carattere in python
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
Produzione:
Il programma sopra mostra il metodo get () che restituisce this che è un oggetto della classe Test_this. Usando l'oggetto corrente restituito dal metodo get (), il metodo display viene a sua volta chiamato.
Utilizzo di 'this' per invocare il costruttore della classe corrente
Puoi anche usare il puntatore 'this' per invocare il costruttore dell'attuale cla.ss. L'idea di base è riutilizzare il costruttore. Anche in questo caso, se hai più di un costruttore nella tua classe, puoi chiamare questi costruttori l'uno dall'altro risultando in concatenamento dei costruttori.
Considera il seguente programma Java.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
Produzione:
Nel programma sopra, abbiamo due costruttori nella classe. Chiamiamo l'altro costruttore utilizzando il puntatore 'this', dal costruttore predefinito della classe.
Usare 'questo' come argomento per il costruttore
Puoi anche passare il puntatore 'this' come argomento a un costruttore. Ciò è più utile quando si hanno più classi come mostrato nella seguente implementazione.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
Produzione:
Come mostrato nell'implementazione precedente, abbiamo due classi e ogni costruttore di classi chiama il costruttore dell'altra classe. Il puntatore 'questo' viene utilizzato per questo scopo.
Domande frequenti
D # 1) Qual è la differenza tra this e this () in Java?
Risposta: In Java, questo si riferisce all'oggetto corrente mentre this () si riferisce al costruttore con parametri corrispondenti. La parola chiave 'questo' funziona solo con gli oggetti. La chiamata 'this ()' viene utilizzata per chiamare più di un costruttore dalla stessa classe.
D # 2) Questa parola chiave è necessaria in Java?
Risposta: È necessario soprattutto quando è necessario passare l'oggetto corrente da un metodo a un altro, o tra i costruttori o semplicemente utilizzare l'oggetto corrente per altre operazioni.
D # 3) Qual è la differenza tra this () e super () in Java?
Risposta: Sia this () che super () sono parole chiave in Java. Mentre this () rappresenta il costruttore dell'oggetto corrente con parametri corrispondenti, super () rappresenta il costruttore della classe genitore.
D # 4) Puoi usare sia this () che super () in un costruttore?
Risposta: Sì, puoi usarlo. Il costruttore this () punterà al costruttore corrente mentre super () punterà al costruttore della classe genitore. Ricorda che sia this () che super () dovrebbero essere la prima istruzione.
Conclusione
La parola chiave 'this' è un riferimento all'oggetto corrente nel programma Java. Può essere utilizzato per evitare confusione derivante dagli stessi nomi per le variabili di classe (variabili di istanza) e per i parametri del metodo.
È possibile utilizzare il puntatore 'this' in molti modi, ad esempio accedere alle variabili di istanza, passare argomenti al metodo o al costruttore, restituire l'oggetto, ecc. Il puntatore 'this' è una parola chiave importante in Java ed è una funzionalità utile per accedere all'oggetto corrente e i suoi membri e le sue funzioni.
Ci auguriamo che tu abbia seguito l'utilizzo della parola chiave 'this' in Java da questo tutorial.
Lettura consigliata
- Tutorial JAVA per principianti: oltre 100 tutorial video Java pratici
- Tutorial Java Reflection con esempi
- Esercitazione sulla gestione delle eccezioni C # con esempi di codice
- Tutorial Python DateTime con esempi
- Esercitazione su funzioni / metodi C # con esempi di codice
- Tutorial Java SWING: contenitore, componenti e gestione degli eventi
- Tutorial su Java Collections Framework (JCF)
- Tutorial sull'interfaccia Java e sulla classe astratta con esempi