Conception objet
Attributs et méthodes statiques
La méthode random est appelée par Math.random();. Avec la convention de l'API Java, Math est un nom de classe (car il commence par une majuscule) et non un nom d'objet. La méthode random est donc statique.
En TP, on écrivait g.drawLine(…);. g est une instance précise d'une classe, et drawLine est appliquée à cette instance précise. Ceci ne prouve pas que la méthode drawLine n'est pas statique, cependant elle dessine dans une fenêtre particulière, et elle n'est donc pas statique.
La méthode suivante :
static void methodeStatique2() { System.out.println("methodeStatique2: a:"+a+" s:" +s); }
ne pourrait pas être ajoutée à la classe Test, car une méthode statique n'est pas associée à une instance particulière et ne peut donc pas accéder à la variable non statique a.
Dans un point bidimensionnel, les champs x et y ne peuvent pas être statiques, sans quoi tous les points auraient les mêmes coordonnées.
Compteur de lapins
class Lapin { String nom; static int nombreDeLapinsCrees = 0; Lapin(String _nom) { nom = _nom; ++nombreDeLapinsCrees; } } class CompteurDeLapins { public static void main(String args[]) { Lapin roger = new Lapin("Roger"); Lapin bugs = new Lapin("Bugs"); Lapin eusebe = new Lapin("Eusebe"); System.out.println(Lapin.nombreDeLapinsCrees); } }
