Conception objet
Voici une liste de termes. Dans cette liste identifiez des classes, des relations entre ces classes et les instances (objets) de ces classes, et éventuellement des attributs de ces classes. Ce travail est bien sur un peu subjectif, plusieurs solutions sont possibles.
-
Rolls-Royce
-
humain,
-
Rantanplan
-
moi,
-
Bill Gates
-
chien
-
voiture
-
Médor
-
Deux-chevaux
-
animal
-
Fred
-
ma 2CV
-
patron
-
employé
-
le labrador de Fred
-
la Rolls-Royce de Bill Gates
Attributs et méthodes statiques
Les attributs et les méthodes statiques d'une classe sont communs à toutes les instances de cette classe. Voici un exemple de fonctionnement :
class Test { static int s=0; int a=0; void methode() { System.out.println("methode: a vaut " + a + " s vaut " + s);} static void methodeStatique(){ System.out.println("methodeStatique: s vaut " + s);} } class StaticExemple { public static void main(String args[]) { Test o1=new Test(); Test o2=new Test(); Test o3=new Test(); o1.s=5; o1.a=10; System.out.println("o2.s:"+o2.s); // ceci affiche o2.s:5 System.out.println("o2.a:"+o2.a); // ceci affiche o2.a:0 // en general on ecrira directement: Test.s=5; // par contre on on ne peut pas ecrire Test.a=10 o3.methodeStatique(); // ceci affiche methodeStatique: s vaut 5 } }
Dans les questions suivantes nous tiendrons compte des conventions de nommage (en particulier les minuscules/majuscules) utilisées dans l'API Java.
-
La méthode méthode
randomvue en TP est-elle statique? -
La méthode méthode
drawLinevue en TP est-elle statique? -
Pourrait-on ajouter la méthode suivante à la classe
Test:
static void methodeStatique2() { System.out.println("methodeStatique2: a:"+a+" s:" +s); }
-
Si on écrit une classe
Pointreprésentant des points à deux dimensions, est-ce que les champsxetypourraient être statiques?
Compteur de lapins
Étendez la classe Lapin du TD précédent de manière à ce qu'elle prenne en compte le nombre total de lapins qui ont été créés. La classe s'utilisera de la façon suivante :
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); } }