Static et classes utilitaires
static
static : Ce mot clef est utilisable sur des variables, méthodes ou classes. Il indique que ce qui suit n'est pas lié à une instance mais à une classe: Cette solution permet par exemple d'utiliser une classe sans avoir à l'instancier (C'est ce qui se passe avec Math.PI qui donne la valeur de PI, vous ne déclarez jamais une instance de Math pour connaître la valeur de PI).
Evidemment, les variables
et méthodes resteront manipulables dans une instance.
Les methodes statiques
étant indépendantes des instances, elles ne pourront pas manipuler
les variables d'intances ou accéder aux méthodes non statiques.
Dans le cas d'une
classe static, le constructeur est lancé au chargement de la classe.
Le constructeur ne pouvant pas exister autrement.
les méthodes
static ne peuvent évidemment pas utiliser this, car this fait référence
à une variable d'instance et non de classe.
Les classes utilitaires
Les classes utilitaires regroupent des constantes ou des méthodes. Celles-ci sont définies en static, ce qui évite de devoir instancier la classe pour obtenir un résultat.
Exemple, la classe java.lang.Math.
Exemple
Exemple de cas d'utilisation d'une classe static, le singleton:
Il y a un setter et un getter pour vérifier que l'on travail sur une seule et même classe.
Une classe contenant le main qui va stocker une valeur dans le singleton:
Et une classe pour lire la donnée positionnée dans le singleton.