Académique Documents
Professionnel Documents
Culture Documents
Examen
Indication : ajoutez à la classe Client un attribut de type CompteBaneaire qui sera initialisé
dans un constructeur.
Exercicel :
Analyser le programme ci-dessous et donner le résultat qui sera produit ?
c.inc();
out.println(c)•,
Exercice3:
Écrivez une classe Matrice Triangulaire qui contient une méthode main O.
Dans la méthode main O initialisez la matrice triangulaire supérieure suivante :
Examen
Programmation Orientée objet : Java
(Durée : 11145min)
Université Chouan' Doukkali
Faculté des Sciences El Jadida
Département
Analyser le programme ci-dessous et donner le résultat qui sera produit ?
public class Compteur private int public class •rcstComptcur public
max; private int val; static Void main(Stringll args)
public Comptcuront max)
t this.max=max; Systctuout.println(c); //ql
System.out.
public int valo for(int
return val', c.inc();
System.out.println(c); //q2
public String to.String() t
return String.
public void
'ICCO t val
—;
val=max-l;
Examen
Programmation Orientée objet : Java
(Durée : 1H30min)
Exercice I
Fxrire un proZramme qui tire au hasard un nombre entier compris entre I et 10. Ce nombre
(secret) pas affiché. Puis le programme demande à l'utilisateur d'entrer un nombre entier au hasard
entre I ct 10. Si le nombre de l'utilisateur est différent au nombre secret, Ic programme lui indique
avec un message, et en lui demandant d'entrer un nouveau nombre. Inrsque l'utilisateur trouve la
solution, le programme lui dit qu'il a gagné et en lui indiquant le nombre qu'il lui fallu pour trouver
le nombre.
Math.random() est la fonction qui génère un nombre aléatoire compris entre 10,11. Si on veut
générer un nombre cnticr aléatoire entre on utilise +a)
• Le code pour lire un entier à partir du clavier :
import iava.util.• ; //Il faut insérer cette ligne juste avant votre classe
Scanner SC=r1CAV ; // Déclarer un Objet Scanner int
/'lit un entier à partir du clavie
Exercice 2
Soit le diagramme de classes UML suivant
Université Chouan' Doukkali
Faculté des Sciences El Jadida
Département
• Créer les classes "Personne.iava" et "Salarie.iava", sachant que la prime est calculée la de
la formule suivante : prime = (5'salairc'nbEnfants)/IOO Ecrirc un programme "Tcst.iava" pour
tcstcr vos classes
Exercice 3
On souhaite disposer d'une hiérarchie de classes permettant de manipuler des figures géométriques.
On veut qu'il soit touiours possible d'étendre la hiérarchie en dérivant de nouvelles classes mais On
souhaite pouvoir imposer que ccs dernières disposent toujours des méthodes
• void affichc 0
• Void homothctic (double cocff)
• Void rotation (double angle)
Ecrire la classe abstraite Figure qui pourra servir de classe de base à toutes ces classes.
2. Compléter la classe abstraite de façon qu'elle implémente :
• une méthode homoRot (double coef, double angle) qui applique à la fois unc homothétie ct une
rotation à la figure.
Exercice I
Le
code est
import
iava_
Scanner, class Devine
{ public static Void main( String args Il)
double l",
int
/ ("secret "*secret), int nbreessai=O, essai;
do nbreessai++;
System.out.println ("Entrez un essai Scanner = new
Scanncr(Systcm.in); essaie sc.nextlnt(); if (essai < secret)
System.out.println ("Désolé entrez un entier plus grand
if(essai secret)
System.out.println ("Bravo, vous avez gagné");
Systctn.out.println ("VOLLS avez essayé + nbrccssai + fois");
break;
}while(true);
Exercice 2
//Le code de la classe personne
public class Personne t
protected int nbF.nfants;
'tected String nom; public Personnc(int
nbEnfants,String nom) t this_nbEnfants
—nbEnfants; nom=nom;
//le
code
de la
classe
Exercice 3
Appliquer les règles de définition d'une classe abstraite. On y place les en-têtes des méthodes qu'on
souhaite voir redéfinies dans les clxsses dérivées, cn leur associant Ic mot clé abstract.
abstract class Figure abstract public Void afficheC) ;
abstract public Void homothetie (double coef) ;
abstract public void rotation (double angle) ;
mot clé abstract figurant devant class peut être omis (toute classe disposant au moins d'une
méthode abstraite est abstraite). Il est cependant conseillé de le conserver. Quant aux noms
d'arguments accompagnant les cn-têtcs de méthodes, ils sont syntaxiquement nécessaires.
Classes la hiérarchie de figures Seront alors simplement définies Comme Classes de
Figure et elles devront définir les trois méthodes affiche, homothétie et rotation, par exemple :
class Point extcnds IGgurc t public void affichc()
public Void homothetie (double coet)
public Void rotation (double angle)
l. Une classe abstraite peut comporter des définitions de méthodes (non abstraites) qui
pourront alors être utilisées par les classes dérivées sans qu'il soit nécessaire de les
redéfinir (mais on peut toujours le faire 5. D'autre part, une classe abstraite comporter
des méthodes statiques, pour peu que celles-ci ne soient pas abstraites (cc qui n'aurait
signification).
En définitive, voici la dcfinition de notre nouvelle clxsse Figure •
abstract class Figure abstract public void affiche() ;
abstract public Void homothetie (double coef) ;
abstract public Void rotation (double angle) ; public
void I lomoRot (double cocf, double angle)
thetie (coet) ; rotation (angle) ;
public static Void afficheFtgures (ligure [l t) for ont ; i<f.length ; i+4)
tlil.afficheO ; public static vod (double coef, l%gurcll i) for
(int i<f.lcngth ; i4+) ilil.homothctic(coef) ; public static Void
rotationEigures (double angle, l•igurell i) for (int ; i<f.length ;
i++) ilil.rotarion(angle) ;
On notera que, au sein de la méthode homoRot, il est possible d'appeler les méthodes
homothétie et rotation, et ceci bien qu'elles soient abstraites. En effet, d'après les du
rv.lymorphisme. méthode effectivement appelée sera celle correspondant au type effectif de
l'obiet ayant appelé la méthode homoRot; grâce aux contraintes portant sur les dérivées de
classes abstraittes, on est certain qu'elle existera.
Des réflexions analogues s'appliquent à l'appel des méthodes homothetie et rotation dans les
méthodes statiques homothetieFigures et rotationFtgures.