Programmation Objet Java Correction



Documents pareils
Programmer en JAVA. par Tama

Initiation à JAVA et à la programmation objet.

Développement Logiciel

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Traitement de données

Cours 1: Java et les objets

Programmation Orientée Objet

Auto-évaluation Programmation en Java

TP1 : Initiation à Java et Eclipse

as Architecture des Systèmes d Information

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Premiers Pas en Programmation Objet : les Classes et les Objets

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Traduction des Langages : Le Compilateur Micro Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Java Licence Professionnelle CISII,

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Remote Method Invocation en Java (RMI)

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

La gestion des exceptions

COMPARAISONDESLANGAGESC, C++, JAVA ET

Gestion distribuée (par sockets) de banque en Java

Synchro et Threads Java TM

Remote Method Invocation (RMI)

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

TP1. Outils Java Eléments de correction

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Langage Java. Classe de première SI

INITIATION AU LANGAGE JAVA

Flux de données Lecture/Ecriture Fichiers

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Java 1.5 : principales nouveautés

TP, première séquence d exercices.

Chapitre VI- La validation de la composition.

Bases Java - Eclipse / Netbeans

Héritage presque multiple en Java (1/2)

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Java c est quoi? Java pourquoi?

TP1 : Initiation à Java et Eclipse

Utiliser Java sans BlueJ

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Java DataBaseConnectivity

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Généralités sur le Langage Java et éléments syntaxiques.

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Un ordonnanceur stupide

RMI le langage Java XII-1 JMF

F. Barthélemy. 17 mai 2005

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

LOG4430 : Architecture logicielle et conception avancée

Une introduction à Java

Architecture Orientée Service, JSON et API REST

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Interfaces graphiques avec l API Swing

Environnements de développement (intégrés)

Programmation d application Bases de données avec Java

Objets et Programmation. origine des langages orientés-objet

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Corrigé des exercices sur les références

Programmation par les Objets en Java

TD3: tableaux avancées, première classe et chaînes

PROGRAMMATION PAR OBJETS

Programmeur Java 1.4 et 5.0

TD/TP PAC - Programmation n 3

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Programmation avec des objets : Cours 7. Menu du jour

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Tp 1 correction. Structures de données (IF2)

Apprendre Java en 154 minutes

Programmation Orientée Objet application au langage Java Version Novembre 2007

Java Licence Professionnelle CISII,

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Classes et Objets en Ocaml.

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

La carte à puce. Jean-Philippe Babau

Package Java.util Classe générique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Chapitre 10. Les interfaces Comparable et Comparator 1

Utilisation d objets : String et ArrayList

ACTIVITÉ DE PROGRAMMATION

Génie Logiciel avec Ada. 4 février 2013

Programmation MacOSX / ios

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

TD/TP PAC - Programmation n 3

Support de cours et TD Programmation Orientée Objet

Transcription:

INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le corrigé sera mis sur la page du cours dans la journée. Nom : Prénom : Barème Exercice Barème Note Total partiel Exercice 1 Questions rapides Exercice 2 Sémantique de Java Exercice 3 Questions avancées 5 points 10 points 5 points Note globale : / 20

Exercice 1 5 points Questions rapides Vrai / Faux Pour dissuader les réponses au hasard, des points négatifs sont mis à partir de trois réponses incorrectes (mieux vaut ne rien cocher lorsque l on ne sait pas). Vrai Faux Exemple Java signifie café Java appartient à Bill Gates Eclipse est le seul moyen de compiler du Java Compilation Si je compile une classe Bar qui utilise ma classe Foo, le compilateur a besoin du fichier Foo.java Si je compile une classe Bar qui utilise ma classe Foo, le compilateur a besoin du fichier Foo.class Si mon programme compile bien, en principe il ne provoquera pas d exception à l exécution Si mon programme compile bien, en principe il ne fera pas d erreur de segmentation (segfault, comme en C) Environnement d exécution Toute classe Java-standard (J2SE) doit contenir un main Toute classe Java-embarqué (J2ME) doit contenir un main Une classe Java-standard (J2SE) contenant un main est directement exécutable par la machine virtuelle Java une fois compilée. Une classe Java-standard (J2SE) sans main est directement exécutable par la machine virtuelle Java une fois compilée. Pour qu une classe Java-embarqué (J2ME) soit exécutable sur un mobile, il est nécessaire qu elle contienne un main. Pour qu une classe Java-embarqué (J2ME) soit exécutable sur un mobile, il est nécessaire qu elle hérite d une certaine classe.

Nom : Prénom : Précision : en Java, une classe est un type. Vrai Faux En Java, les types int et Integer existent. Le type int est un abrégé pour la classe Integer Classes et objets (1) En Java, les types String et char* sont équivalents. Les concepteurs des librairies Java aiment bien les identifiants à rallonge comme ByteArrayInputStream ou AnnotationTypeMismatchException. void est un nom de classe, synonyme de Object Classes et objets (2) L héritage (mot-clef extends) est une alternative à new pour créer de nouveaux objets à l exécution. Il existe une classe dont Integer et String sont deux sous-types. On reconnaît le constructeur d une classe à ce qu il porte le même nom que la classe. Le constructeur d une classe doit recevoir autant d arguments que la classe a d attributs. Une interface n a pas de constructeur. Il est possible de définir deux constructeurs dans la même classe. Il est possible de définir deux méthodes avec le même nom dans la même classe. Les programmeurs en langages à objet sont souvent très pointilleux sur le vocabulaire relatif à la programmation objet. Classes et objets (3) Un objet, c est essentiellement la même chose qu un struct en C dans lequel on met aussi des fonctions. this représente une classe (cocher Vrai) ou un objet (cocher Faux) Si Java permettait l héritage multiple (de plusieurs classes), on pourrait se passer des attributs. Quel que soit le problème à résoudre, une programmation à objets (POO) est toujours mieux adaptée que d autres styles de programmation.

Nom : Prénom : Exercice 2 10 points Sémantique de Java Le programme constitué des deux classes ci-dessous compile correctement. Précision : l exception SecurityException est connue du compilateur par défaut, et n a pas besoin d être signalée à chaque méthode avec un throws Répondez aux questions de la page ci-contre. L objectif est de vérifier que vous maîtrisez la sémantique de Java, c est-à-dire la manière précise dont un programme se déroule. Soyez très rigoureux, prenez votre temps! (Vous pouvez librement griffonner le programme) class Class A { static int alpha = 0 ; public int beta ; Class A ( ) { beta = alpha ; void foo ( ) { alpha++ ; System. out. p r i n t l n ( Alpha= + alpha + ; Beta= + beta ) ; void moo ( ) { throw new SecurityException ( ) ; void zoo ( ) { try { this. foo ( ) ; this. moo ( ) ; this. foo ( ) ; catch ( Exception E) { System. out. p r i n t l n ( GLOP! ) ; class Class B extends Class A { Class B ( ) { super ( ) ; void moo ( ) { try { i f ( this. beta >= 2) super. moo ( ) ; catch ( Exception E) { System. out. p r i n t l n ( ATARI! ) ; public static void main ( S t r i n g [ ] args ) { Class B b1 = new Class B ( ) ; b1. zoo ( ) ; Class B b2 = new Class B ( ) ; b2. zoo ( ) ;

Qu affiche le programme si je lance java Class B? Alpha=1 ;Beta=0 Alpha=2 ;Beta=0 Alpha=3 ;Beta=2 ATARI! Alpha=4 ;Beta=2 Qu affiche le programme si, après la première exécution, je lance une deuxième fois java Class B? La même chose Expliquez en quelques mots ce qui se passe si, dans la méthode zoo(), je remplace this.moo() par seulement moo(). Ça ne change rien. Expliquez en quelques mots ce qui se passe si, dans la méthode zoo(), je remplace catch (Exception E) par catch (SecurityException E). Ça ne change rien non plus.

Exercice 3 5 points Questions avancées 1 Expliquez pourquoi, à l inverse du compilateur C, une compilation Java ne se termine pas par l édition de liens (effectuée d habitude par le linker). Le compilateur ne produit pas un exécutable mais compile chaque classe indépendamment et produit un fichier.class La liaison se fait à l exécution (et peut provoquer la fameuse exception, Class Not Found). 2 Pour afficher un message, on utilise System.out.println (). System est une classe. Précisez la nature de out et de println (soyez bien précis). out : un attribut statique de la classe System (un objet statique) println : une méthode 3 Vous rejoignez la société Galère spécialisée dans les systèmes embarqués. Le jour de votre arrivée, vous êtes convoqués par votre chef de projet, qui vous dit bonjour, vous offre un café et vous tient le discours suivant : Je sais que vous connaissez bien Java, ce qui n est pas mon cas. L un de nos produits phare est un logiciel de pilotage de robot industriel, nommé Pilot. Ce logiciel est embarqué sur un C167 (dans le robot) ; il est codé en C et en assembleur. Pendant que Pilot pilote le robot, un technicien peut relier son ordinateur PC portable au robot par liaison USB afin d obtenir des informations en direct. Il utilise pour cela un autre de nos logiciels, BayWatch, installé sur son PC portable. Techniquement, Pilot scrute périodiquement le port USB pour savoir si un ordinateur est connecté. Lorsque BayWatch est lancé, un protocole de communication permet aux deux logiciels d échanger des données et de les afficher sur le PC portable. Pour l instant BayWatch est programmé en C, mais nous souhaitons moderniser l interface graphique et accélérer le processus de développement. Nous pensons lancer une version 2 de BayWatch codée en Java. Je me suis renseigné et il existe une machine virtuelle Java pour C167. Voyez-vous autre chose que nous devrions vérifier avant de lancer le projet? C est votre premier jour, trouvez une réponse intelligente. D une part, il n y a pas besoin de JVM pour C167 puisque le code Java ne tourne que sur l ordinateur portable. D autre part, il suffit de vérifier qu il existe bien une classe Java permettant d accéder au port USB (ce qui semble assez probable).