2010-11-15 24 views
8

Qual è il vantaggio dell'utilizzo di una classe statica interna? Dove dovrei preferirlo rispetto ad altre opzioni?Classe statica interna in Java

E come viene allocata la memoria?

+0

possibile duplicato del [classe innestata statica in Java, perché?] (Http://stackoverflow.com/questions/253492/static-nested-class-in-java-why) –

risposta

6

Se la classe interna è statico, non occorre un'istanza della classe esterna per creare un'istanza di esso.

Se la classe interna è pubblica, è fondamentalmente solo un nome-scoping tecnica per evidenziare il fatto che la classe "appartiene" alla classe esterna.

Se si effettua la classe interna privata tuttavia, non può essere utilizzato al di fuori di quella classe.

4

Una delle ragioni principali per l'utilizzo di classi interne è composizione. In caso di composizione, l'esistenza di una entità è esclusivamente ai fini della sua entità superiore. Ad esempio un'università. Un'università è composta da dipartimenti. I dipartimenti non hanno un'esistenza individuale al di fuori dell'università. Inoltre, l'accesso ai dipartimenti dovrebbe essere controllato dall'università. In questo caso, possiamo avere la classe del Dipartimento come classe interiore della classe University.

4

E come è allocata la memoria?

La risposta semplice è che la memoria per una classe statica interna è allocata allo stesso modo di una classe non annidata. Non c'è niente di speciale in questo caso, né rispetto alle istanze delle classi o membri statici della classe.

Problemi correlati