• Aucun résultat trouvé

iUT ORSAY

N/A
N/A
Protected

Academic year: 2022

Partager "iUT ORSAY"

Copied!
2
0
0

Texte intégral

(1)

iUT ORSAY

DUT Informatique Module JAVA Apprentis

Département Informatique 2008 / 2009

Travaux Pratiques no3 : Interfaces

Nom(s) : Groupe : Date :

Objectifs : Maîtriser le mécanisme d’héritage. Savoir manipuler les classes abstraites et les interfaces.

1 Introduction

On désire réaliser une application graphique dans laquelle on manipule différents types de figures. Toutes les figures se caractérisent par une couleur de fond, une couleur de bordure et des coordonnées dans un espace à deux dimensions. Une figure doit pouvoir afficher toutes les informations la concernant et se cloner pour créer une nouvelle figure identique. Il doit être possible de consulter et modifier tous les paramètres d’une figure.

Une figure est en réalité un type abstrait (on ne peut en créer des instances). Les figures réelles sont par exemple des cercles, des carrées, des rectangles qui vont implémenter de façon un peu différente certaines méthodes, ou avoir des structures de données plus adaptées.

Le but de ce TP est de réaliser une application manipulant ces figures réelles.

2 Classe principale

Créez une classe Principale dans un paquetage TP3 qui ne contiendra qu’une méthode main()(vide pour l’instant) et sera destinée à tester les autres classes.

3 Héritage et classes abstraites

Créez la classe abstraiteFigure, implantez dansFigureles méthodes communes à toutes les figures, par exemple les accesseurs en consultation et modification pour les couleurs.

Certaines méthodes devront être implantées différement en fonction de la figure réelle finale, on souhaite par exemple disposer des méthodes suivantes :

– La méthode de signature Figure clone() qui retourne un nouvel objet, copie de l’objet appelant (mêmes valeurs des attributs).

– La méthode de signatureString toString()qui retourne une chaîne de caractères et ser- vira à afficher textuellement l’objet, par exemple lors d’un appel àSystem.out.println() avec en paramètre une référence à un objet de typeFigure.

(2)

Travaux Pratiques no3 Interfaces 2/2

Déclarez dansFigureles méthodes abstraitesclone()ettoString().

Créez les classes concrètesCercle etRectangle, qui héritent deFigure. Pensez à créer des constructeurs adaptés et à implanter les méthodes abstraites héritées.

Créez dans la méthodemain()de la classePrincipaleun jeu d’instructions permettant de tester convenablement votre travail dans cette partie (on ne demande cependant pas un test JUnit !).

4 Interfaces

Les figures peuvent être dotées de propriétés spéciales comme être dessinables, déplaçables ou transformables. Ces propriétés sont des « contrats » que l’on passe. On souhaite donc les formaliser au sein d’interfaces qui indiquent les signatures des méthodes à utiliser et implanter.

Définissez une interface Deplacable ainsi que la signature d’une ou plusieurs méthodes destinées à modifier les coordonnées.

Définissez une interfaceTransformableainsi que les signatures des méthodes pour effec- tuer une symétrie verticale et une symétrie horizontale d’une figure.

Modifiez la classeFigureafin qu’elle implante les nouvelles interfaces.

Modifiez les classesCercleetRectangleen implantant les différentes méthodes.

Créez dans la méthodemain()de la classePrincipaleun jeu d’instructions permettant de tester convenablement votre travail dans cette partie non plus, sauf si vous le souhaitez).

5 Collections et variables de classe

On veut créer une classe Chevalet contenant une structure de données de type Vector(ou ArrayList, au choix) pour stocker toutes les figures que l’on souhaite dessiner (voir la Javadoc pour des informations concernant ces classes).

Écrivez une classeChevalet.

Créez une variable de classe permettant de conserver le nombre de figures crées au sein de tous les chevalets.

Créez une méthode pour déplacer toutes les figures d’un chevalet.

Créez dans la méthodemain()de la classePrincipaleun jeu d’instructions permettant de tester convenablement votre travail dans cette partie (pas de test JUnit).

Vous rendrez avec votre compte rendu tous les codes correctement commentés, on devra en particulier pouvoir générer une javadoc appropriée à partir de vos codes sources.

IUT d’Orsay – DUT Informatique 2008 / 2009 Module JAVA Apprentis

Références

Documents relatifs

Ayant découvert la possibilité de créer plusieurs processus (et donc d’exploiter ses deux processeurs) il voulut s’en servir pour réaliser le tra- vail suivant qu’il

Utilisez comme arguments pour runame le nom de votre machine renvoyé par la commande hostname (ou utilisez le nom localhost directement), et comme numéro de port celui que vous

Mettre en place le serveur pour qu’il soit pris en compte par inetd : Quelles modifications faut-il faire dans /etc/services ?... Quelles modifications faut-il faire

Pour être en mesure de gérer les connexions en parallèle, un processus est dédié à chacune d’entre elles : dès qu’une connexion est acceptée par le serveur, un nouveau

On étend maintenant le programme de manière à ce qu’il prenne en argument un nombre quelconque de chaînes de caractères et qu’il manipule une matrice m (un tableau de tableaux)

Dans la classe Principale (contenant le main ), créez une méthode dont la signature correspond à void inserer(String nom, int age, Tueur t1), qui crée un nou- veau Tueur avec

La classe devra proposer une mé- thode de signature String chaineInformations() qui renvoie une chaîne décrivant les informations d’une capitale, par exemple "Paris,

Sa- voir gérer les exceptions standard et créer, lancer, rattraper ses propres excep- tions.. 1 Exercice 1 :