Vous êtes sur la page 1sur 2

TD1_introduction_poo_java.

odt

TD1 POO / Java : bases du langage, encapsulation et hritage : les compteurs


Objectif : Dcouvrir les bases du langage Java. Matriel / Logiciel : Environnement de dveloppement sur PC (sous Linux) : JDK1.6 (ou suprieur) : compilateur java (javac) et JVM (java) IDE Geany / diteur gedit et console / Eclipse. Acquisition : Matrise des concepts objets fondamentaux : classe, objet, attribut, mthode, paquetages, encapsulation (niveaux de visibilit private, protected, package et public) et hritage, lments de syntaxe (this, this(), super, super(), extends)

Prparation de votre environnement


1. Crer un rpertoire classes la racine de votre compte utilisateur (rpertoire personnel ou home directory ). 2. Afficher les fichiers cachs prsents dans ce rpertoire. (sous linux, les fichiers cachs commencent par un point). 3. diter le fichier .bashrc et ajouter les lignes suivantes la fin du fichier : export CLASSPATH=$HOME/classes alias javac="javac -d $HOME/classes " Remarque : le dossier classes sera utilis par le compilateur, vos programmes d'extension .java sont placer dans un sous-dossier de Documents .

Vrification de votre configuration (tape 1) :


diter, compiler et excuter le programme Hello World (fichier Hello.java) : public class Hello { public static void main(String[] args) { System.out.println("Hello Wordl !!") ; } } Remarque : vous pouvez utiliser l'IDE Geany pour ce premier programme simple.

Vrification de votre configuration (tape 2) :


Ajouter un paquetage test et vrifier en mode console (terminal) les commandes javac et java sur ce premier programme : javac Hello.java java test.Hello

Les classes Point et PointColore Question 0 :


Reprendre les classes Point et PointColore vues en CM et vrifier les tapes de compilation et d'excution. Tester avec les commandes javac et java dans la console. p. 1 / 2

TD1_introduction_poo_java.odt

Les classe Compteur, CompteurBorne, CompteurCyclique


On souhaite implmenter diverses classes reprsentant des compteurs entiers. Un tel objet se caractrise par une valeur entire, positive ou nulle, en tenant compte du fait qu'elle ne peut varier que par pas de 1 (incrmentation ou dcrmentation). Remarque : pour ces exercices, on pourra utiliser l'IDE Eclipse.

Question 1 :
On veut crer un simple compteur ayant une valeur initiale nulle. On convient ici qu'une dcrmentation d'un compteur nul est sans effet. Il s'agit donc de crer une classe Compteur pour rendre le service demand ; rdiger en particulier les mthodes incrementer( ) et decrementer( ). On crira en outre une petite classe de test qui : a) crera un compteur et affichera sa valeur; b) l'incrmentera 10 fois, puis affichera nouveau sa valeur; c) le dcrmentera 20 fois, puis affichera une troisime fois sa valeur On pourra si ncessaire, dans un premier temps ne pas se proccuper des paquetages et crire lensemble du programme dans un fichier source unique (.java) : les classes cres seront alors dans le paquetage par dfaut. crire ensuite les classes dans des fichiers distincts : Compteur.java et TestCompteur.java. Laffichage de ce programme doit donner (quelque chose comme) "0 10 0".

Question 2 :
Modifier la classe Compteur en ajoutant un deuxime constructeur de Compteur initialis une valeur positive de dpart.

Question 3 :
Crer par hritage une classe CompteurBorne qui dfinit un compteur born variant entre les valeurs 0 et N.

Question 4 :
Organiser les classes cres dans des paquetages : les classes Compteur et CompteurBorne appartiennent au package comptage , les classes TestCompteur et TestCompteurBorne appartiennent au package test .

Question 5 :
Driver la classe CompteurBorne en une nouvelle classe CompteurCyclique : redfinir alors les mthodes incrementer( ) et decrementer( ).

Important : vous veillerez bien respecter le principe de l'encapsulation (niveaux d'accessibilit aux attributs et mthodes) et la prsentation de vos programmes (indentation et commentaires).

p. 2 / 2