MMaattiièèrree PPrrooggrraammmmaattiioonn OOrriieennttééee OObbjjeett

Page 1 sur 4Lecteur de document UniversityLib

MMaattiièèrree PPrrooggrraammmmaattiioonn OOrriieennttééee OObbjjeett

Programmation, Math · exam

Voir tous les documents en programmation

MMaattiièèrree :: PPrrooggrraammmmaattiioonn OOrriieennttééee OObbjjeett

TTPP33

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)

Publicité

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

Publicité

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

Publicité

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