Les classes imbriquées
Jusqu'à présent, dans les classes, on retrouvait des déclarations de variables et de méthodes, d'instance ou de classe. On peut également y déclarer des classes. Ces classes sont également considérées comme des membres de la classe dans laquelle elles sont déclarées, on les appelle classes imbriquées.
La classe imbriquée peut être « d'instance » ou « de classe ». Dans le premier cas, elle aura accès à toutes les variables et méthodes de la classe qui la contient. Les classes imbriquées sont donc à utiliser dans des situations qui autorisent ces classes à s'immiscer dans la classe conteneur.
Les classes imbriquées vont être dans un fichier class séparé lors de la compilation, ce fichier class porte le nom de la classe conteneur suivi d'un $
et suivi du nom de la classe imbriquée.
Visibilité
Les classes imbriquées peuvent bien entendu voir leur visibilité modifiée grâce aux mots réservés public
, protected
et static
.
Une classe imbriquée statique n'aura pas accès aux champs non statiques de la classe qui la contient étant donné que cette classe imbriquée sera associée à la classe et non aux instances de la classe comme on vient de le voir à la section précédente.
Il sera impossible d'accéder à une classe imbriquée privée depuis l'extérieur de la classe qui la contient, il est ainsi possible de structurer une classe en différentes classes tout en le cachant des autres. On utilise souvent ce principe pour simplifier la structure d'une classe en créant plusieurs classes, ces classes n'ayant aucun sens toutes seules on les place comme des classes imbriquées. Voici par exemple une classe représentant une voiture et une classe pour ses pneus comme une classe imbriquée.