38 0 84KB
TD Programmation par objets - Java, LPATC Enseignant resp : BOURAOUI Bessem
TD 2 : Java, La classe ! Exercice 1: Définissez une classe Point permettant de manipuler un point du plan. Cette classe contiendra : • un constructeur, • les méthodes d'accès et de modification des coordonnées, • une méthode deplacer qui effectue une translation définie par les arguments, • une méthode afficher qui affiche les coordonnées d'un point, • une méthode toString qui transforme un point en une chaîne de caractères ``(x,y)''. On donnera un exemple d'utilisation avec une méthode main Exercice 2: Définissez une classe Individu composée d'un nom, d'une adresse, et d'un numéro de telephone. Vous écrirez aussi les méthodes constructeur, affectation et consulation des champs et affichage. Exercice 3: Modifiez la classe Individu pour pouvoir : • afficher le nombre d'objets créés, • gérer la liste des individus créés, • afficher la liste des individus créés, Exercice 4: La classe Mesure modélise des mesures entières (températures par exemple) : • une mesure a une Valeur de type entier. • le constructeur de la classe Mesure permet d'instancier un objet de cette classe avec la valeur entière fournie en paramètre. Si la valeur fournie est en-dehors de l'intervalle [-100,100] (Min et Max), le message ``mesure hors intervalle'' est affiché et la valeur n'est pas prise en compte. • NbMesures, le nombre d'instances de la classe Mesure est géré par la classe ainsi que SomMesures la somme des valeurs des mesures instanciées. • la méthode afficherMoyenne calcule et affiche la moyenne de toutes les mesures instanciées, le nombre de mesures est également affiché. S'il n'y a pas de mesures, le message ``zéro mesures'' est affiché. La méthode main de la classe EntrerMesures permet à l'utilisateur d'entrer un nombre arbitraire de valeurs au clavier. Ces valeurs sont utilisées pour instancier des Mesures. Quand la valeur 0 est entrée, le programme fait appel à afficherMoyenne avant de terminer. Voici un exemple d'affichage lors de l'exécution du programme : Entrez une mesure :120 Mesure hors intervalle Entrez une mesure :10 Entrez une mesure :20 Entrez une mesure :30 Entrez une mesure :0 La moyenne des 3 mesures est :20
Voici le squelette du programme (la classe EntrerMesures est complètement écrite). Il vous faut compléter la classe Mesure selon les spécifications ci-dessus.
import java.io.*; import java.util.*; class Mesure{ ///////// A COMPLETER ///////// definir ici les attributs de la classe... ///////// Valeur, Min, Max, NbMesures, SomMesures
}
Mesure(int val) { //////// A COMPLETER
static void afficherMoyenne(){ //////// A COMPLETER //////// preciser la signification du mot cle ``static'' devant cette methode } } class EntrerMesures { public static void main(String arg[]) throws IOException, NumberFormatException { int valeur; do { System.out.print("Entrez une mesure :"); BufferedReader entree =new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(entree.readLine()); valeur=Integer.valueOf(st.nextToken()).intValue(); if (valeur!=0) new Mesure(valeur); } while (valeur !=0); }
Mesure.afficherMoyenne();
}
Exercice 5: On veut créer une classe Livre ayant pour attribut obligatoire le nom de l'auteur, le titre et comme attribut optionnel le nombre de pages et l'éditeur. Les attributs seront privés, et on utilisera des méthodes d'accès publiques. On veut également une méthode toString() renvoyant une chaîne de caractères contenant les informations sur le livre présentées pour l'affichage. 1. Quels sont les constructeurs nécessaires (et leurs prototypes) ? 2. Implantez cette classe avec un jeu d'essais. 3. On veut maintenant connaître le nombre de livres instanciés. Pour cela on utilisera la variable private static int numLivre pour stocker cette information. Modifiez les constructeurs de manière à ce que cela fonctionne. 4. On ajoute le champs numero à chaque livre qui contiendra le numéro du livre dans l'ordre de création. Modifier en conséquence la méthode toString() et les constructeurs.