2012-06-30 14 views
21

Nel Effective Java all'interno della voce "Item 22: Favorire classi membro statiche sopra non statico" Josh Bloch dice:Cosa significa "qualificato questo" in java?

Ogni istanza di una classe membro non statico è implicitamente associato ad un racchiude un'istanza della sua classe che contiene. All'interno dei metodi di istanza di una classe membro non statica , è possibile richiamare metodi sull'istanza acclusa o ottenere un riferimento all'istanza che lo include utilizzando il costrutto qualificato.

Cosa vuole dire con qualificato questo costrutto?

+12

'EnclosingType.this' –

+1

Nella terminologia informatica un qualificatore o identificativo qualificato è un nome (percorso di selezione)' x.y.z'. Questo pre-date java. –

+1

[Leggi tutto a riguardo alla fonte.] (Http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.4) –

risposta

28

Senza il qualificatore, si invierà x(). Con il qualificatore, invece, viene invocato il metodo x() dell'istanza allegata.

8

Una classe membro non statica ha un riferimento implicito a un'istanza della classe di chiusura. Il Qualificato Questo termine si riferisce all'istanza della classe di inclusione. Se la classe di inclusione è A e la classe interna è B, è possibile indirizzare il riferimento di riferimento di A da B come A.this.

Problemi correlati