Pour commencer voici les 4 points clés communs à la déclaration des classes, qu’elles soient concrète, abstraite, et des classes spécifiques de type enum :
- Une seul classe publique par fichier source.
- S’il le fichier source contient une classe publique alors leur nom doivent être identique (public Class Patate {} -> Patate.java).
- S’il la classe appartient à un package alors il sera déclaré en premier.
- Les imports doivent être declarés entre le package (s’il est défini) et la déclaration de la classe.
Note : Pour le choix du nom du package, Sun préconise l’utilisation des noms de domaine inversé (com.jisser.programme.action).
Il existe 2 variétés de modificateur de classes, les modificateurs d’accès (visibilité) et les autres ceux qui ne modifient pas l’accès.
Il y a 4 modificateurs d’accès pour les classes.
- public : pas de limitation d’accès à la classe, elle est accessible depuis n’importe quelle autre classe de n’importe quel package.
- default (quand rien n’est précisé lors de la déclaration ) : Limite la visibilité de la classe au package auquel elle appartient.
- protected et private : ne sont pas utilisé que dans des cas particuliers comme les classes internes.
Ensuite il reste les modificateurs final, abstract, strictfp :
- strictfp : permet de spécifier que cette classe est conforme à la norme IEEE 754, afin que les nombres à virgule flottante soit indépendant de la plateforme.
- final : son utilisation est plutôt rare. Il permet de bloquer la possibilité d’héritage sur une classe. Donc une classe final ne pourra jamais être modifié ca permet de s’assurer que personne ne pourra redéfinir ou étendre le comportement de la classe.
- abstract : une classe abstraite ne peut pas être instanciée. Elle doit être étendue. La classe abstraite Patate pourrait être étendu par PatateCharlotte. Une classe doit être marquée abstraite si au moins une de ses méthodes est aussi marquée abstraite.
Note : il est impossible d’avoir une classe avec les modificateurs final et abstract en même temps.


