Sono confuso con la parola chiave this
in Java. Se una classe ha due costruttori e usiamo la parola chiave this
in qualche metodo, l'oggetto rappresentato da this
viene istanziato usando quale dei due costruttori?Utilizzo della parola chiave "this" nei costruttori Java
risposta
non si preoccupa ed è indistinguibile
E 'un po' come la costruzione di una macchina. A seconda delle caratteristiche di un altro costruttore viene utilizzato, ma alla fine avete una macchina (questo)
Si può pensare la parola this
come segnaposto. In fase di esecuzione, la parola chiave viene scambiata con il riferimento all'oggetto dell'oggetto con cui si ha a che fare.
Non deve fare nulla con costruttori, allocazione di memoria o qualcosa del genere. La parola chiave this
è solo il riferimento di istanza dell'oggetto corrente.
La parola chiave this
ha due significati e la confusione potrebbe essere intorno a questi due significati.
Nel costruttore, this(...)
è come una chiamata di metodo per i costruttori. Il compilatore sceglie quale costruttore chiamare in base al numero e ai tipi degli argomenti utilizzati.
Quando si utilizza this
come riferimento, significa che questo oggetto e quale costruttore è stato utilizzato non è importante.
si deve distinguere tra this.
e this()
, per così dire:
maggior parte delle volte, si utilizza this
come riferimento all'oggetto corrente, vale a dire il riferimento di questo oggetto è sostituito in fase di esecuzione per this
. Ad esempio, se si utilizza this
come parametro o riferimento this.someMember
.
È possibile avere diversi costruttori con parametri diversi, ad esempio i costruttori di overload. All'inizio di un costruttore, puoi chiamare un costruttore diverso usando this(parameter_1, ... parameter_n);
come prima istruzione.
Una bella spiegazione di entrambi i casi è disponibile al numero the java tutorial about the this keyword.
L'utilizzo di this
all'interno di un corpo del metodo fa riferimento all'istanza della classe in cui esiste il metodo.
Ciò implica anche che this
non può essere utilizzato da un contesto static
.
this
significa l'istanza stessa regarldless di come l'istanza è stata costruita Chiave
1.'this' si riferisce ad oggetto della classe in cui è used.Generally scriviamo esempio variabili, costruttori e metodi in questo class.All i membri sono rappresentati da "questo".
2. Quando un oggetto viene creato in una classe, viene creato anche un riferimento predefinito internamente all'oggetto. Non è altro che "questo".
3.Example per questo parola chiave:
campione (int x) // parametrizzato Costruttore {
questo.x = x; // Memorizza la variabile locale x nella variabile istanza di classe attuale x
}
- 1. Java: quando utilizzare la parola chiave "this"
- 2. diverso comportamento della parola chiave "this" tra node.js e browser
- 3. Come posso sbarazzarmi della parola chiave `this` nelle funzioni locali?
- 4. Posso forzare l'uso della parola chiave 'this' in C# .NET?
- 5. Interpretazione TypeScript della parola chiave "this" all'interno di $ .ajax()
- 6. La parola chiave "this" nelle classi astratte
- 7. C# ref utilizzo della parola chiave
- 8. Utilizzare la parola chiave "this" nell'oggetto JavaScript
- 9. Perché JSLint proibisce la parola chiave "this"?
- 10. Ruolo della nuova parola chiave in Java
- 11. Parola chiave del metodo Java "final" e il suo utilizzo
- 12. UTILIZZO parola chiave in MySQL
- 13. Esempio completo per l'utilizzo della parola chiave volatile in java?
- 14. Scopo della parola chiave 'instancetype' nei metodi 'objectWith'?
- 15. Come disabilitare (o modificare) l'evidenziazione della parola chiave nei commenti?
- 16. Perché utilizzare la parola chiave "this" per ottenere i metodi della superclasse
- 17. L'utilizzo di questa parola chiave Java
- 18. Errore di gestione del costruttore e utilizzo di questa parola chiave Java
- 19. C# equivalente della parola chiave "implements" di Java?
- 20. Utilizzo della memoria dei costruttori in Haskell
- 21. Uso pratico della parola chiave `stackalloc`
- 22. inferenza generico nei costruttori
- 23. nidificati sincronizzato parola chiave
- 24. uso della parola chiave "that" in javascript
- 25. Inizializzazione nei costruttori, best practice?
- 26. Java ".addActionListener (this)"
- 27. La parola chiave `this` è facoltativa quando si accede ai membri in C#?
- 28. Parola chiave statica in C#
- 29. utilizzo di parole chiave esplicita per i costruttori
- 30. Costruttori Java
grazie per i fiori ;-) –