TP N°2

2
Said EL KAFHALI Page 1/2 UNIVERSITÉ HASSAN 1 er ECOLE NATIONALE DES SCIENCES APPLIQUEES KHOURIBGA Module : Programmation Java Filière : GRT (2 ème année) TP N°2 : Héritage et Interface Exercice 1 : Ecrire une classe Animal où un animal est caractérisé par son nombre de pattes et la couleur de son pelage. N'oubliez pas d'implémenter les constructeurs (avec argument(s) et par défaut), les accesseurs et modifieurs, ainsi que la méthode toString. De plus définissez une méthode jeMangeQuoi renvoyant une chaîne de caractères répondant à la question posée. A partir de cette classe de base, dérivez ensuite les classes Omnivore et Herbivore. Dérivez enfin les classes Homme et Vache où un homme dispose en plus d'un salaire, et une vache d'une quantité de lait produit. Exercice 2 : Ecrire une classe Ville où une ville est définie par son nom et son nombre d'habitants. N'oubliez pas d'implémenter les constructeurs (avec argument(s) et par défaut), les accesseurs et modifieurs, ainsi que la méthode toString. A partir de cette classe de base, dérivez ensuite une classe Capitale où une capitale mémorise en plus le nom des monuments qu'elle abrite. N'oubliez pas définir les méthodes setMonument, getMonument et afficheMonuments. Exercice 3 : On modélise une application devant servir à l’inventaire d’une bibliothèque. Elle devra traiter des documents de nature diverse : des livres, des dictionnaires, et autres types de documents qu’on ne connaît pas encore précisément mais qu’il faudra certainement ajouter un jour (articles, bandes dessinées...). Tous les documents possèdent un numéro d’enregistrement et un titre. À chaque livre est associé, en plus, un auteur et un nombre de pages, les dictionnaires ont, eux, pour attributs supplémentaires une langue et un nombre de tomes. On veut manipuler tous les articles de la bibliothèque au travers de la même représentation: celle d’un document. 1) Définissez les classes Document, Livre et Dictionnaire. Définissez pour chacune un constructeur permettant d’initialiser toutes ses variables d’instances. 2) Définissez une classe Bibliothèque réduite à une méthode main permettant de tester les classes précédentes (ainsi que les suivantes). 3) Définissez la classe ListeDeDocuments permettant de créer une liste vide de documents, puis y adjoindre une fonction permettant d’ajouter un document. 4) Dans la classe ListeDeDocuments définissez une méthode tousLesAuteurs() qui affiche la liste des numéros des documents de la liste avec, pour chacun, l’éventuel auteur.

Transcript of TP N°2

Page 1: TP N°2

Said EL KAFHALI Page 1/2

UNIVERSITÉ HASSAN 1er

ECOLE NATIONALE DES SCIENCES APPLIQUEESKHOURIBGA

Module : Programmation JavaFilière : GRT (2ème année)

TP N°2 : Héritage et Interface

Exercice 1 :

Ecrire une classe Animal où un animal est caractérisé par son nombre de pattes et la couleur de sonpelage. N'oubliez pas d'implémenter les constructeurs (avec argument(s) et par défaut), lesaccesseurs et modifieurs, ainsi que la méthode toString.

De plus définissez une méthode jeMangeQuoi renvoyant une chaîne de caractères répondant à laquestion posée.

A partir de cette classe de base, dérivez ensuite les classes Omnivore et Herbivore.

Dérivez enfin les classes Homme et Vache où un homme dispose en plus d'un salaire, et une vached'une quantité de lait produit.

Exercice 2 :

Ecrire une classe Ville où une ville est définie par son nom et son nombre d'habitants. N'oubliez pasd'implémenter les constructeurs (avec argument(s) et par défaut), les accesseurs et modifieurs, ainsique la méthode toString.A partir de cette classe de base, dérivez ensuite une classe Capitale où une capitale mémorise enplus le nom des monuments qu'elle abrite. N'oubliez pas définir les méthodes setMonument,getMonument et afficheMonuments.

Exercice 3 :

On modélise une application devant servir à l’inventaire d’une bibliothèque. Elle devra traiter desdocuments de nature diverse : des livres, des dictionnaires, et autres types de documents qu’on neconnaît pas encore précisément mais qu’il faudra certainement ajouter un jour (articles, bandesdessinées...). Tous les documents possèdent un numéro d’enregistrement et un titre. À chaque livreest associé, en plus, un auteur et un nombre de pages, les dictionnaires ont, eux, pour attributssupplémentaires une langue et un nombre de tomes. On veut manipuler tous les articles de labibliothèque au travers de la même représentation: celle d’un document.1) Définissez les classes Document, Livre et Dictionnaire. Définissez pour chacune un

constructeur permettant d’initialiser toutes ses variables d’instances.

2) Définissez une classe Bibliothèque réduite à une méthode main permettant de tester les classes

précédentes (ainsi que les suivantes).

3) Définissez la classe ListeDeDocuments permettant de créer une liste vide de documents, puis y

adjoindre une fonction permettant d’ajouter un document.

4) Dans la classe ListeDeDocuments définissez une méthode tousLesAuteurs() qui affiche la

liste des numéros des documents de la liste avec, pour chacun, l’éventuel auteur.

Page 2: TP N°2

Said EL KAFHALI Page 2/2

5) Redéfinissez la méthode toString() dans la classe Document ainsi que dans les classes Livre et

Dictionnaire et qui renvoie une chaîne de caractères décrivant un document, un livre ou un

dictionnaire. Ajoutez alors dans la classe ListeDeDocuments une méthode

tousLesDocuments() qui affiche consécutivement la description de tous les documents.

Exercice 4:

On veut construire un programme capable d'afficher et de déplacer des figures géométriquescolorées et d'afficher du texte coloré. On aura les classes Figure, Carre, Rectangle et Texte.1) Chaque classe sera dotée d'une méthode pour être affichée (dessinée).

2) Figure a des attributs abscisse et ordonnée, ainsi qu'une couleur (encodée par un entier), et une

méthode pour se déplacer.

3) Carre et Rectangle héritent de Figure, mais ont en plus une ou deux longueurs pour les côtés.

4) Texte a un attribut String, ainsi qu'une couleur.

Un graphique est un ensemble de figures et de textesPour traiter ensemble texte et figures nous décidons d'utiliser des interfaces pour décrire leurscomportements communs.Après avoir étudié les différences et les points communs entre les classes, décrivez là où lesinterfaces peuvent être utiles et précisez les classes qui les implémenteront.Décrivez en détail les classes mentionnées ci-dessus. Décrivez en particulier la méthode de la,classe Graphique qui permettra d'afficher un tableau d'objets dessinables.