Examen TP Poo

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Examen TP Programmation orientée objet Sections 

: GL

Niveaux : 2ème année

Enseignant : Mohamed Amine Ghimaji Année Universitaire : 2022 - 2023

On veut développer un système de mini blog, un site web constitué de plusieurs posts.
Ces posts peuvent être des paragraphes, des images ou des vidéos.
Les posts de type image ou vidéo sont dits taggables ( il est possible de leur associer des
mots clés (tag) ). Cela permet de rechercher tous les articles de ce type qui incluront un
certain ensemble de tags. Quant au type texte des publications, elles ne peuvent pas être
taguées, la recherche se fera alors sur le contenu du texte.

1. Implémentez une interface publique Examen.Publiable dont les méthodes sont les
suivants :
● datePublication() sans paramètre et dont le type de retour est long.
● author() sans paramètre et dont le type de retour est String.

2. Implémentez une classe abstraite Examen.ArticlePubliable qui implémente


l’interface Examen.Publiable.
Cette classe doit :
● Conserver la date de la publication (type long) et l’auteur de l'article (type
String).
● Définir un constructeur dont les paramètres sont la date et l’auteur de l'article
(respecter cet ordre de définition).
● Définir les méthodes de l’interface Publiable.

3. Implémentez une interface publique Examen.Etiquetable dont les méthodes sont


les suivants :
● ajouterEtiquette() dont le paramètre est une étiquette (type String) et sans
type de retour.
Cette méthode sera utilisée pour ajouter une étiquette (tag).
● enleverEtiquette() dont le paramètre est une étiquette (type String) et sans
type de retour.
Cette méthode sera utilisée pour supprimer une étiquette (tag).
● nbEtiquettes() sans paramètre dont le type de retour est un entier (int).
Cette méthode permettra de connaître le nombre des étiquettes sur une
publication.
● etiquettes() sans paramètre et dont le type de retour est une liste de chaîne
de caractères (List<String>).
Cette méthode permettra d’obtenir la liste des étiquettes définis sur une
publication.

4. Implémentez une classe abstraite Examen.Article qui hérite de la classe


ArticlePubliable et qui implémente l’interface Etiquetable.
Cette classe doit :
● Conserver une liste d'étiquettes (liste de chaînes de caractères).
● Définir un constructeur dont les paramètres sont la date et l’auteur du post
(respecter cet ordre de définition).
● Définir les méthodes de l’interface Etiquetable.

Notez que :
● La méthode ajouterEtiquette() ne permettra pas d'ajouter deux fois la même
étiquette.
● La méthode etiquettes() retournera une liste vide si nécessaire et non une
référence null.

5. Implémentez une classe Examen.Text qui hérite de la classe ArticlePubliable.


Cette classe doit :
● Conserver un contenu de type chaîne de caractères (le corps de la
publication).
● Définir un constructeur dont les paramètres sont la date de la publication,
l’auteur de la publication et le corps de la publication (respecter cet ordre de
définition).
● Définir une méthode contenu() sans paramètre dont le type de retour est une
chaîne de caractères qui correspond au contenu de la publication.
6. Implémentez une classe Examen.Image qui hérite de la classe Article.
Cette classe doit :
● Conserver un contenu de type chaîne de caractères, l’adresse (URL) de
l’image.
● Définir un constructeur dont les paramètres sont la date de la publication,
l’auteur de la publication et l’adresse de l’image (respecter cet ordre de
définition).
● Définir une méthode URL() sans paramètre dont le type de retour est une
chaîne de caractères qui correspond à l’adresse de l’image.

7. Implémentez une classe Examen.Video qui hérite de la classe Article.


Cette classe doit :
● Conserver un contenu de type chaîne de caractères, l’adresse (URL) de la
vidéo.
● Définir un constructeur dont les paramètres sont la date de la publication,
l’auteur de la publication et l’adresse de la vidéo (respecter cet ordre de
définition).
● Définir une méthode URL() sans paramètre dont le type de retour est une
chaîne de caractères qui correspond à l’adresse de la vidéo.

8. Implémentez une classe Examen.Blog dont les méthodes sont les suivants :
● publier() dont le paramètre est une publication et sans type de retour.
Cette méthode permettra de publier un nouveau post sur le blog.
● nbArticlesPubliable() sans paramètre et dont le type de retour est une valeur
entière.
Cette méthode permettra de connaître le nombre des publications sur le
blog.
● nbArticlesEtiquetable() sans paramètre et dont le type de retour est une
valeur entière.
Cette méthode permettra de connaître le nombre de publications sur
lesquelles on peut ajouter des tags (et donc qui possède une méthode
ajouterEtiquette()).
● articlesParAuteur() dont le paramètre est le nom d’un auteur (une chaîne de
caractères) et dont le type de retour est une liste de publications.
Cette méthode permettra de consulter toutes les publications rédigées par
un auteur donné.

Cette classe doit :


● Conserver le nom du blog (type String) et la liste de tous les posts
publiés sur le blog (type List<Publiable>).
● Définir un constructeur dont le paramètre est le nom du blog.

9. Créer un programme principal qui teste votre implémentation complète.

Vous aimerez peut-être aussi