Vous êtes sur la page 1sur 2

ISTAG BAB TIZIMI Module : Programmation Oriente Objets Srie N6: les Classes/Constructeurs C# Exercice 1 Soit le programme suivant

: class Point { // deux attributs de type int int abscisse; int ordonnee; // constructeur Point() { abscisse = 0; ordonnee = 0; } // mthode permettant de changer les coordonnes dun point void set(int u, int v) { abscisse = u; ordonnee = v; } // mthode permettant de translater un point void translate(int u, int v) { abscisse = abscisse + u; ordonnee = ordonnee + v; } }

Section: TSDI 1

1. Ajouter la classe Point la mthode affiche, de type de retour void, de sorte que p.affiche() affiche lcran labscisse et lordonne de p. Ajouter la classe Point la mthode origine, de type de retour boolean qui teste si les coordonnes du point sont nulles. Ajouter galement une mthode egale telle que p.egale(q) renvoie true si et seulement si les abscisses et ordonnes des points p et q sont gaux.
Prof. M. TIMMI Page 1

ISTAG BAB TIZIMI

Section: TSDI 1

2. crire un deuxime constructeur de la classe Point, dont la signature est Point( int u , int v ) qui permet dinitialiser labscisse et lordonne avec u et v. crire une seconde mthode set, prenant en argument un objet de la classe Point, et qui recopie les attributs de ces arguments. 3. Ajouter la classe Point une mthode symetrie telle que p.symetrie() renvoie un nouvel objet Point qui reprsente le symtrique du point p, dans une symtrie centrale par rapport lorigine du repre. 4. On veut numroter les points au fur et mesure de leur cration. On ajoute donc les variables suivantes : static int nombre ; int numero ; O lattribut numero indique le numro du point et o la variable de classe nombre indique combien dobjets ont t crs. Rcrire les constructeurs Point en consquence. Rcrire galement la mthode affiche pour observer la valeur de ces nouveaux attributs.

Exercice2 : Rutilisation de classes existantes Lors de lExercice 1, nous avons crit une classe Point. On souhaite construire une classe Disque. Un disque est dfini par : son centre (qui est un Point), son rayon, son paisseur et sa couleur. 1. Lister les attributs, proposer un type pour chacun. 2. Commencer l.criture de la classe Disque. 3. Dfinir un constructeur par dfaut qui initialise un disque de la manire suivante : rayon et hauteur unit, couleur noir, l.origine pour centre. 4. Que doit-on faire pour pouvoir tester l.galit stricte entre deux disques ? 5. crire la mthode suivante de la classe Disque permettant d.effectuer une translation sur un disque : public void translate(double dx, double dy)

Prof. M. TIMMI

Page 2