Exam on Object-Oriented Programming

Programming · exam

Voir tous les documents en programmation

ECOLE SUPÉRIEURE D’ECONOMIE NUMÉRIQUE, UNIVERSITÉ DE

MANOUBA

EXAMEN : SESSION PRINCIPALE

Module

Enseign

ant

Programmation Orientée

Objet

Chiheb-Eddine Ben N’Cir

et Zeineb ElKhalf

Date

11/01/2016

Durée

2h

: Merci de respecter l’ordre des questions. Laisser du « blanc » si vous n’avez pas de

NB

réponse pour une question.

c) variable d'interface

d) variable locale

4/ Un objet

a) est une variable en mémoire

b) doit avoir obligatoirement un

type

c) est un ensemble de variables

primitives ( int, char, ..) définit

dans la classe « Object »

d) est une instanciation d’une

classe

e) est obligatoirement créé à partir

d’une classe

5/ Une classe abstraite:

a) est une classe qui est

obligatoirement déclarée avec le

mot clef « abstract »

b) doit contenir toujours (au

moins une) des méthodes

abstraites si elle est déclarée

Publicité

avec le mot clef « abstract »

c) peut ne pas contenir des

méthodes abstraites si elle est

déclarée avec le mot clef

« abstract »

d) Peut être instanciée en utilisant

un de ses constructeurs

e) Peut être utilisé comme « type »

d’objets lors de leur déclaration.

Exercice 1

: Donner les réponses justes. (5pts)

1/ Un constructeur:

a) est une méthode qui ne possède

pas de paramètres

b) est une méthode sans type de

retour

c) est exécuté seulement une fois,

au démarrage du programme

d) est exécuté pour déclarer un

objet en mémoire

e) est utilisé pour instancier l'objet

à sa création

2/ Si la classe B est une extension de la

classe A par héritage:

a)

b)

les attributs publics de A sont

accessibles directement dans la

classe B

les attributs privés de A sont

accessibles directement dans la

classe B

les méthodes publiques de A

sont accessibles dans B.

d) on doit obligatoirement

c)

redéfinir les méthodes de B

Publicité

dans A

on ne peut pas redéfinir les

méthodes de B dans A

e)

3/ Un attribut « static » est aussi appelé:

a) variable d'instance

b) variable de classe

1

Exercice 2

: (15pts)

On propose de construire une petite application pour une agence de location immobilière.

L’activité de l’agence consiste à louer des maisons et des appartements aux locataires.

L’immobilier à louer possède un numéro séquentiel, attribué automatiquement lors de l’ajout

d’un nouvel immobilier, le nom de la ville où situé l’immobilier, une personne propriétaire,

une surface en m2 et une description de l’état actuel de l’immobilier (oui=libre, non= loué)

indiquant si l’immobilier est libre ou non. Les immobiliers à louer peuvent être des

appartements ou bien des maisons. Un appartement est caractérisé par le nom de la résidence,

le numéro de l’étage et le numéro de l’appartement alors que la maison est caractérisée par le

nom de la rue et le numéro de la maison.

Soit la conception objet suivante d’une partie de l’application. Répondre aux questions ci-

dessous en utilisant le langage JAVA.

Class : Personne

Nom : String

Contact : String

SaisirDetailPersonne

()

AfficherDetail()

Class :

Appartement

Residence :

String

Etage : int

NumApp : int

SaisirImmo()

AfficherImmo()

Class : Immobilier

Numero : int(auto)

Publicité

Ville : String

Numero : int(auto)

Surface : int

Ville : String

Surface : int

Etat: boolean

Etat: boolean

Proprietaire : Personne

Proprietaire :

Personne

SaisirImmo()

AfficherImmo()

Interface :

OperationImmobilier

SaisirImmo()

AfficherImmo()

Class : Maison

Rue : String

numMaison : int

SaisirImmo()

AfficherImmo()

Classe Personne :

1) Déclaré les attributs (visibilité privé) de la classe Personne.

2) Donner le code source du constructeur Personne (String Nom, String Contact).

3) Est-ce que le constructeur par défaut de la classe personne reste disponible après la

définition du constructeur ci-dessus. (question 2). pourquoi ? Redéfinir alors le

constructeur par défaut de la classe personne.

Il est possible de définir deux constructeurs (ou bien d’une manière générale deux

méthodes) dans la même classe ayant le même nom. Qu’appelle-t-on ce principe en

programmation orientée objet ? quelles sont les conditions nécessaires à satisfaire pour

définir deux méthodes ayant le même nom ?

4)

5) Donner le code source de la méthode AfficherDetail( ) permettant d’afficher les

informations relatives à une personne.

6) Donner le code source de la méthode SaisirDetailPersonne() permettant de donner la

main à l’utilisateur pour saisir le Nom et le Contact d’une personne.

7)

Publicité

Donner le code source des accesseurs (set et get) de chaque attribut déclaré dans la

classe Personne.

8) Est-ce que la définition des accesseurs est obligatoire dans la classe Personne.

Pourquoi ?

Classes : Immobilier, Appartement et Maison

9) Donner le code source de la déclaration des attributs (visibilité privé) de la classe

Immobilier.

10) Donner le code source du constructeur de la classe « Immobilier » qui permet de créer

un nouvel immobilier vide en initialisant le numéro de l’immobilier (numéro

séquentiel) et en initialisant les autres attributs à « 0 » ou bien « null » ou bien

« false » si c’est un type booléen. (vous pouvez ajouter d’autres attributs à la classe

Immobilier si c’est nécessaire).

11) Donner le code source de la méthode « AfficherImmo » dans la classe « Immobilier »

qui permet d’afficher les informations relatives à un immobilier.

12) Sachant que les classes « Appartement » et « Maison » héritent de la classe

« Immobilier », donner le code source de la redéfinition de la méthode

« AfficherImmo » dans chacune des ces classes.

Classe Application

On suppose que nous avons une classe « Application » qui contient une méthode

main(). On suppose aussi que toutes les méthodes dans les classes « Personne »,

« Immobilier », « Maison » et « Appartement » sont déjà définis.

13) En se basant sur le principe du Polymorphisme, donner le code source de la méthode

main () qui permet :

1) Déclarer un tableau « Tab » de 10 Immobiliers.

2) Pour chaque Immobilier dans le tableau « Tab » :

2.1) demander à l’utilisateur s’il veut ajouter une maison ou bien un

appartement.

2.2) selon le choix de l’utilisateur : créer une nouvelle maison ou bien un

nouvel appartement.

2.3) Saisir les informations relatives à l’appartement ou bien à la maison

3) Pour chaque Immobilier dans le tableau « Tab » : afficher les informations

relatives à un immobilier.

Interface OperationImmobilier

14) Donner le code source de l’interface « OperationImmobilier » qui contient les

méthodes SaisirImmo() et AfficherImmo(). Donner aussi l’entête de déclaration de la

classe « Immobilier » qui Implémente cette interface.