Si vous décompiler un à l'intérieur de la classe (ou les visionner à l'aide du débogueur) vous pouvez voir qu'il y a le code généré pour l'accès à l'instance de l'extérieur de la classe qui a été utilisé pour les créer. Les frais généraux pour ce qui est de plus de mémoire pour le pointeur supplémentaires, plus de cpu pour la collecte des ordures à cause de pointeur supplémentaires pour tester, et si vous voulez la petite bête, plus le temps de compilation. La création des instances de non-statiques, les classes internes est un peu plus compliqué parce que vous avez besoin d'une instance de l'extérieur de la classe pour les créer.
La visibilité à la fois statiques et non statiques et les classes internes peuvent être contrôlés. Habituellement, ils sont privés si leur mise en œuvre est fortement connnected de détails internes de l'extérieur de la classe, et le développeur ne pense pas que le code peut être réutilisé. En ce sens, ils ne sont pas meilleurs que les fonctions privées. Les classes internes peuvent être publics dans des cas comme Carte.Entrée, où l'intérieur de la classe est fortement connecté à l'interface exposée par la classe, et le développeur ne pense pas que la Carte.L'entrée peut être utilisé sans une sorte de Carte. Les deux types ont accès aux membres privés de l'extérieur de la classe et à l'extérieur de la classe a accès aux membres privés de l'intérieur de la classe.
Les Instances statiques et non statiques et les classes internes sont des ordures collectées comme toutes les autres classes. Il n'y a pas de relation particulière entre le grabage collection de l'extérieur de la classe et de la collecte des déchets de l'intérieur de la classe.
Dans le cas de classes de l'INTERFACE utilisateur de mise en œuvre comme de la balançoire ou android, vous verrez statique à l'intérieur des classes, car ils sont traités comme fonction privée. Ces classes ne sont pas développés pour la réutilisation en dehors de l'extérieur de la classe et sont fortement liées à la mise en œuvre interne de l'extérieur de la classe. Il n'y a pas de raison de les exposer et de s'assurer qu'ils peuvent travailler dans les cas plus que le contexte spécifique de l'extérieur de la classe des exigences.