Documente Academic
Documente Profesional
Documente Cultură
2008 2009
Contrle
Programmation Objet Java
C ORRECTION
Consignes
Tous les documents sont autoriss, mais ils seront peu utiles.
Indiquez vos nom et prnom sur chaque feuille.
Le corrig sera mis sur la page du cours dans la journe.
Nom :
Prnom :
Barme
Note globale : / 20
Exercice 1 5 points Questions rapides
Vrai / Faux
Vrai Faux
Exemples
Java est un langage objet 7
Eclipse est un lecteur demails 7
Compilation
La commande pour compiler un fichier java depuis un terminal est javac. 7
Il serait plausible que javac utilise Eclipse en arrire plan. 7
Il serait plausible quEclipse utilise javac en arrire plan. 7
La commande pour excuter une classe java est java 7
Le compilateur Java est crit en Java. Il est donc plausible que javac utilise java 7
pour excuter le compilateur.
Pour la mme raison, il est plausible que java utilise javac. 7
javadoc ouvre un navigateur web. 7
javadoc permet de naviguer dans le source du programme java. 7
La compilation gnre autant de fichiers quil y a dobjets dans le programme. 7
Lorsque Chuck Norris compile du Java, le compilateur nose pas lui signaler les 7
exceptions non attrapes. (Argumentez votre rponse au dos de la dernire page)
Environnement dexcution
Pour excuter un programme Java, il faut obligatoirement une machine virtuelle 7
Java (JVM).
Le fichier Foo.class contient le rsultat de lexcution de la classe Foo. 7
lexcution, de nouveaux fichiers .class sont fabriqus. 7
Si jexcute la classe Foo, cest la premire mthode du source qui est excute. 7
Si jexcute la classe Foo, cest le constructeur de la classe qui est excut. 7
On ne peut jamais excuter directement une classe java. 7
On ne peut jamais excuter directement une interface java. 7
Nom : Prnom : Groupe :
Vrai Faux
Classes et objets
La librairie standard Java na pas peur du ridicule, au point davoir une classe qui 7
sappelle DefaultStyledDocument.AttributeUndoableEdit.
En Java, les types string et String existent mais sont diffrents. 7
int et Integer hritent tous deux de la classe Object. 7
Mme lorsquune classe Foo hrite dune classe Bar, elle est toujours un sous-type 7
dObject.
Lhritage (extends) permet dimporter automatiquement les mthodes de la 7
classe parent dans sa propre classe.
Lhritage importe aussi les attributs de la classe parent. 7
Lhritage importe aussi les constructeurs de la classe parent. 7
Un itrateur (ou Enumeration, que lon peut utiliser dans une boucle for) est un 7
objet.
Il est possible de dfinir ses propres itrateurs (Enumeration). 7
Divers
On peut crire tout un programme java (qui fonctionne) sans crire un seul 7
constructeur.
On peut dfinir le constructeur dune classe dans une autre classe. 7
Dans le constructeur de la classe Foo, je peux faire appel new Bar. 7
Si je remplace tous les private et protected dun programme compilable par des 7
public, le programme compile toujours.
Si je remplace tous les public dun programme compilable par des private, le 7
programme compile toujours
Si je passe tous les attributs dun programme compilable en static, le programme 7
compile toujours
Si je passe tous les attributs dun programme compilable en static, le programme 7
sexcute de la mme manire
Q3 Restez calme. Mme question que Q1 si on ajoute static devant lattribut pote ?
Je suis Robot 1 pote de Robot 1
(lol)
Je suis Robot 2 John pote de Robot 1
(lol)
Je suis Robot 1 (pas lol)
(lol)
Je suis Robot 1 pote de Robot 1
(lol)
Q4 Maintenant que vous tes chaud : mme question que Q1 si on enlve le mot-clef try et les
blocs catch et finally.
Je suis Robot 1 pote de Robot 0
Je suis Robot 2 John pote de Robot 1
Je suis Robot 0Exception in thread "main" java.lang.SecurityException
at Robot.hello(Robot.java:20)
at Robot.go(Robot.java:27)
at Cyborg.main(Cyborg.java:17)
(Pour cette question, contentez-vous dtre raisonnablement prcis.)
Exercice 3 5 points Questions avances
1 La compilation croise consiste compiler depuis une machine pour une autre machine. Par
exemple, compiler un programme C sur son PC-Intel en un excutable pour C167.
Quavez-vous dire au sujet de la compilation croise pour Java ?
La compilation dun programme Java produit un fichier .class qui est en principe portable sur nim-
porte quelle JVM. La compilation croise nexiste donc pas. (Ou, si on prfre, toute compilation
est automatiquement croise).
2 Vous tes embauch depuis six mois chez Autopilot un sous-traitant dAirbus charg du pilote
automatique. Votre chef de projet vous invite (malgr vos protestations) une runion o, parat-
il, il sera question de Java. Il vous prvient que la plupart des gens de la runion sont comptents
en C embarqu, mais sans doute pas en Java.
Il ny a pas dinstruction malloc, cest vrai, mais il y a linstruction new, qui alloue dynamiquement
de la mmoire pour crer un nouvel objet
Il faudra donc veiller ce que le programme ne fasse pas de new.