Vous êtes sur la page 1sur 4

Matière : Programmation Orientée Objet

TP3

Niveau : 2ère année TSI,ECOM,LFIG

AU : 2019-2020

Objectifs : Apprendre quelques concepts de la Programmation Orientée Objet en Java:


classe, objet et instanciation.
-----------------------------------------------------------------------------------------------------------------

Exercice 1:

Créer une classe Point caractérisée par :

- deux coordonnées de types doubles

- un constructeur pour initialiser les données

- une méthode translation qui permet de décaler le point

- une méthode qui permet d'afficher les coordonnées avant et après translation.

Une méthode main pour le test. Ainsi, créer un tableau contenant des objets Point et l'afficher.

Exercice 2 :
Ecrire une classe nommée Personne permettant de décrire complètement une personne,
sachant qu’une personne est caractérisée par les informations suivantes : nom, prénom, sexe
(male ou femelle), année de naissance, état civil (célibataire, marié ou veuf) et conjoint (c’est
variable de type boolean égale à vrai si la personne est mariée et égale à faux si non)

1. Créer la classe Personne avec les attributs nécessaires.

2. Ajouter un constructeur à la classe Personne.

3. Ajouter, à la classe Personne, une méthode void retourneInfos(). Cette méthode peut
retourner 3 types de messages.

Exemples :

"M. ABIDI Ali est né en 1975, il est célibataire." : si la personne est un monsieur.
1
"Mme. AMRI Sarra est née en 1970, elle est mariée." Si la personne est une madame.

"Mlle. ALLANI Wassila est née en 1980, elle est célibataire." Si la personne est une
mademoiselle.

4. Ajouter, à la classe Personne, une méthode int age(Personne p) qui renvoie l’âge de
l'individu en fonction l’année de sa naissance.

5. Ajouter, à la classe Personne, une méthode void marier (Personne p1, Personne p2) qui
permet de marier une personne à une autre.

Cette méthode doit permettre de changer l’état civil des 2 mariés, l’état de la variable conjoint
et le nom de famille de la femme.

Pour simplifier : quand une femme se marie son nom devient : "nom de l'époux + nom de
jeune fille", par exemple : si Mlle. ALLANI Wassila se marie avec M. ABIDI Ali, son nom
deviendra Mme " ABIDI ALLANI "

Attention: un homme peut se marier avec une seule femme et une femme peut se marier
avec un seul homme.

6. Ecrire un programme qui déclare 2 variables de type Personne, crée 2 instances de personne
(un homme célibataire et une mademoiselle) pour les affecter dans les variables et afficher les
informations qui leurs concernent.

Appeler la méthode marier (Personne p1, personne p2) pour marier les 2 personnes puis
afficher leurs informations misent à jour.

Exercice 3 :

Représentation des dates. Ecrivez une classe Date dont chaque instance représente une date
précise. Mettez-y 3 variables d’instance privées : an (un entier non négatif),mois(un entier
compris entre 1 et 12 ), jour (un entier compris entre 1 et une borne supérieure qui dépend du
mois) .

Ecrivez les méthodes :

2
–public Date(int jour, int mois, int an) : initialisation d’une date, à partir des trois nombres
données . La validité des ces nombres doit être vérifiée (voyez ci-dessous comment) et, en cas
de date incohérente, un message doit être affiché.

–int getJour(),int getMois(),int getAn() : pour obtenir les valeurs correspondantes.

–public String toString() : renvoie l’expression d’une date sous forme de texte, comme " 8
/nouvembre /2019".

–public boolean infeg(Date d) comparaison : a.infeg(b) renvoie true si la date a est antérieure
ou égale à la date b, sinon cela renvoie false.

Indications :

Voici une expression évaluant la validité d’une date (années bissextiles simplifiées). Vous
pouvez vous contenter de la copier-coller dans votre programme, lequel se contentera de
tester la valeur de date Invalide:

boolean dateInvalide = mois < 1 || mois > 12|| jour < 1 || jour > 31|| jour > 30 && (mois == 4 ||
mois == 6 || mois == 9 || mois == 11)|| jour > 29 && mois == 2|| jour > 28 && mois == 2 &&
!(an % 4 == 0 && an % 100 != 0 || an % 400 == 0);

3
4

Vous aimerez peut-être aussi