Vous êtes sur la page 1sur 2

TP 2– Les Classes en Java

Exercice n°1
Soit le programme suivant :
// Fichier Point.java
class Point { // deux attributs de type int
int abscisse; int ordonnee;
// constructeur
Point(){ abscisse = 0 ; ordonnee = 0 ; }
// méthode permettant de changer les coordonnées d’un point
void set( int u , int v ){ abscisse = u ; ordonnee = v ; }
// méthode permettant de translater un point
void translate( int u , int v ){ abscisse = abscisse + u ; ordonnee = ordonnee + v ; } }
1. Ajouter à la classe Point la méthode afficher, de type de retour void, de sorte que p.afficher() affiche
à l’écran l’abscisse et l’ordonnée de p.
2. Ajouter à la classe Point la méthode origine, de type de retour boolean qui teste si les coordonnées
du point sont nulles. Ajouter également une méthode egale telle que p.egale(q) renvoie true si et
seulement si les abscisses et ordonnées des points p et q sont égaux.
3. Ecrire un deuxième constructeur de la classe Point, dont le prototype est Point( int u , int v ) qui
permet d’initialiser l’abscisse et l’ordonnée avec u et v. Ecrire une seconde méthode set, prenant
en argument un objet de la classe Point, et qui recopie les attributs de ces arguments.
4. Ajouter à la classe Point une méthode symetrie telle que p.symetrie() renvoie un nouvel objet Point
qui représente le symétrique du point p, dans une symétrie centrale par rapport à l’origine du repère.
5. On veut numéroter les points au fur et à mesure de leur création. On ajoute donc les variables
suivantes :
static int nombre ; int numero ; où l’attribut numero indique le numéro du point et où la variable de
classe nombre indique combien d’objets ont été créés. Réécrire les constructeurs Point en
conséquence. Réécrire également la méthode ‘afficher’ pour observer la valeur de ces nouveaux
attributs.

Exercice n°2
Nous nous proposons dans cet exercice d’écrire une classe implémentant une paire d’entier,
pour cela :
1. Définir une classe Paire dont le constructeur initialise les attributs privés de la paire.
2. Définir une méthode affiche et une fonction main pour tester cette classe.
3. Définir un deuxième constructeur, qui initialisera à 0 les composants de la paire.
4. Définir un troisième constructeur, qui initialisera une paire à l’aide d’une autre paire.
5. Définir des fonctions permettant d’accéder et de modifier chaque élément de la paire. Enrichir la
classe Paire d’une méthode définissant quand une paire est inférieure à une autre selon la règle
lexicographique suivante : (x1, y1) < (x2, y2) ssi (x1 < x2) ou (x1 = x2 et y1 < y2).

Exercice 3
Ecrivez une classe Rationnel qui définit les nombres rationnels.
La classe a les attributs privés suivants :
• numerateur : Le numérateur;
• denominateur : Le dénominateur.
La classe Rationnel doit disposer des constructeurs suivants :

1/2
• Rationnel();
• Rationnel(int numerateur, int denominateur);
• Rationnel(Rationnel r).
La classe Rationnel doit contenir des accesseurs (get) et mutateurs (set) pour les différents attributs.
Elle doit aussi contenir les méthodes :
• void additionner(Rationnel r) : ajout du Rationnel en paramètre;
• void soustraire(Rationnel r) : soustraction du Rationnel en paramètre;
• void multiplier(Rationnel r) : multiplication avec le Rationnel en paramètre;
• void diviser(Rationnel r) : division par Rationnel en paramètre;
• double evaluer() : renvoie le résultat sous la forme d'un nombre réel;
• Rationnel inverser() : renvoie le Rationnel inverse ;
• void afficher() : affiche une représentation du rationnel (a/b).
Ecrivez aussi une classe TestRationnel afin de tester la classe Rationnel.
Exercice 4
On considère une classe nommée Polynome représentant des polynômes. Cette classe est dotée de
deux champs, ordre dénotant l’ordre du polynôme (la valeur du plus grand coefficient) et donnees,
un tableau stockant les coefficients du polynôme. Par exemple 2+5x+6x2 aura un ordre égal à 2 et
données égal à {2, 5, 6}.

1/ Voici le squelette de la classe à compléter :

class Polynome {
private double donnees [ ];
private int ordre;
// Constructeur ayant comme arguments l’ordre et un tableau de données
Polynome(int o, double[] tab) { ... }
// Constructeur par recopie du polynôme en paramètre
Polynome(Polynome p) { ... }
// Retourne un polynôme somme du polynôme courant et le polynôme en paramètre
Polynome ajouter(Polynome p) { ... }
// Retourne un polynôme résultat de la multiplication du polynôme courant par un double en
paramètre
Polynome multiplier(double d) { ... }
// Evaluation du polynôme courant en x
double evaluer(double x) { ... }
// La méthode affiche le polynôme sous sa forme habituelle
void affiche { ... }
}

2/ Tester dans main toutes ces méthodes.

2/2