Compléments sur des concepts et des idiomes Java

Dimension: px
Commencer à balayer dès la page:

Download "Compléments sur des concepts et des idiomes Java"

Transcription

1 Compléments sur des concepts et des idiomes Java D. Conan Rev : 951 CSC 4509 ASR4 Télécom SudParis Juin 2013

2 Table des matières Compléments sur des concepts et des idiomes Java D. Conan,, Télécom SudParis, CSC 4509 ASR4 Juin Plan de la présentation 3 1 Contexte : Étude de l application tchat multiclient et multiserveur 3 2 Architecture de l application Architecture des serveurs Architecture des clients Diagramme de classes des serveurs Diagramme de classes des clients Types paramétrés 10 4 Objets immuables et collections immuables 11 5 Blocs de code «static» 12 6 Type énuméré et constructeur de type énuméré 13 7 Classes anomymes 14 Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 2

3 Plan de la présentation # 2 1 Contexte : Étude de l application tchat multiclient et multiserveur Architecture de l application Types paramétrés Objets immuables et collections immuables Blocs de code «static» Type énuméré et constructeur de type énuméré Classes anomymes Contexte : Étude de l application tchat multiclient et multiserveur # 3 Infrastucture du système de tchat multiclient et multiserveur Réalisé pendant les séances de travail personnel Mise à disposition d une solution type par l équipe enseignante Utilisation de concepts avancés et d idiomes Java Quelques compléments de cours sont fournis dans cette présentation Documentation de référence : Tutoriels Java de Oracle/Sun Livre Effective Java, 2nd edition de Joshua Bloch, Addison Wesley, 2008 Ce livre a été traduit en français sous le titre «Java Efficace» Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 3

4 2 Architecture de l application Client 0 Client 1 Server 0 Server 1 # 4 Server 2 Server 3 Client 2 Client 3 Client 4 La figure de cette diapositive présente la configuration utilisée dans nos tests avant de vous fournir cette réalisation de l application de tchat. Les particularités sont les suivantes : test de l aspect multiclient avec deux clients attachés à certains serveurs, test de l aspect multiserveur avec des serveurs connectés à plusieurs voisins, test de la propagation des messages de tchat avec gestion des cycles dans la topologie des serveurs. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 4

5 2.1 Architecture des serveurs 2 Architecture de l application Access to the state of the server through ChatServerState.semaphore # 5 main thread infinite loop call to select() and call to the actions of the state machine ChatSelectorMultiServer thread infinite loop read command lines to control the server La figure de cette diapositive présente l architecture d un serveur multiactivité (en anglais, multithread). L activité principale du serveur est constituée d une boucle infinie organisée autour de l appel à la méthode select. Une seconde activité est ajoutée pour permettre la saisie de commandes à la console afin de contrôler le fonctionnement du serveur, par exemple lors des tests pour démarrer ou arrêter un algorithme réparti entre les serveurs de l application de tchat. Cette seconde activité est donc une boucle infinie de lecture de commandes au clavier. Dans chaque itération de la boucle infinie de l activité principale, le serveur reçoit soit une demande de connexion par un client ou un serveur, soit un message d un client ou d un serveur, puis le seveur exécute une action de réaction à cet événement. Cette action modifie l état du serveur et potentiellement émet des messages vers des clients et des serveurs. La seconde activité du serveur peut aussi modifier l état du serveur et émettre des messages. Donc, l état du serveur rassemblé dans la classe ChatServerState doit être accédé en exclusion mutuelle. C est pourquoi la classe ChatServerState contient un sémaphore qui doit être utilisé par les deux activités concurrentes du serveur. Par ailleurs, la forme des boucles de traitement des événements des deux activités du serveur donnent l indication de l orientation naturelle utilisée pour l insertion d algorithmes répartis : c est l orientation «événement» présentée dans la section 1.2 du cours d algorithmique répartie. Ainsi, les algorithmes répartis présentés selon l orientation «contrôle» doivent d abord être traduits dans une forme orientée «événement» avant d être insérés dans l architecture du serveur. L orientation «événement» suggère l utilisation du patron de conception «machine à états». Aussi, afin de faciliter l insertion d algorithmes répartis dans l architecture initiale, nous ajoutons un mécanisme de machine à états. C est la mise en œuvre de ce patron de conception qui requiert des compléments sur des concepts et des idiomes Java. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 5

6 2.2 Architecture des clients 2 Architecture de l application Access to the state of the client through ChatClientState.semaphore # 6 main thread infinite loop read command lines and send chat message to the server ChatClient thread infinite loop receive messages from the server and display them in the console Pour complétude, la figure de cette diapositive présente l architecture des clients. De manière similaire, les clients sont composés de deux activités : l activité principale pour la lecture des messages de tchat et une seconde activité pour la réception des messages depuis le serveur. Par conséquent, comme pour le serveur, l état du client est accédé en exclusion mutuelle grâce à un sémaphore (cf. l utilisation du sémaphore dans la méthode de classe receivechatmessagecontent de la classe AlgorithmChatActions). En outre, nous mettons en œuvre une machine à états pour insérer les algorithmes répartis entre les clients. Notons dès maintenant qu une des premières questions à se poser lors de l insertion d un algorithme réparti dans l architecture de l application de tchat est de savoir si l algorithme est à insérer dans la machine à états des serveurs ou dans celle des clients. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 6

7 2 Architecture de l application 2.3 Diagramme de classes des serveurs # 7 NB 1 : la figure est peut-être un peu trop petite pour la lecture papier. Elle est affichée à l échelle 1 dans le sujet en ligne. NB 2 : le diagramme de classes est construit (semi-)automatiquement à partir du code en utilisant le greffon Eclipse ObjectAid ( Nous ne détaillons pas ici chaque classe, voire chaque attribut et chaque méthode, car nous avons documenté le code. Merci donc de vous y reporter directement ; mais, attendez la fin de l étude de cette présentation, car nous présentons dans la suite des compléments sur des concepts et des idiomes Java. Remarquons cependant dès maintenant les éléments de modèle suivants : nous retrouvons le point d entrée du serveur (méthode ChatSelectorMultiServerMain.main) ainsi que l activité complémentaire (classes ChatSelectorMultiServer avec la méthode run) ; de nombreuses méthodes sont fournies pour la gestion des connexions et des émissions de messages. Elles ne sont pas toutes utilisées dans l ossature de départ, mais peuvent aider lors de l insertion de certains algorithmes répartis. Donc, pensez-y ; certaines classes sont abstraites car elles factorisent des éléments communs aux deux machines à états (celle du seveur et celle du client) : la classe State est utilisée à chaque fois qu une méthode générique (aux deux machines à états) manipule l état de la machine à états ; la classe AbstractContent est utilisée à chaque fois qu une méthode générique manipule le contenu d un message ; l énumération ListOfAlgorithms permet de collecter tous les algorithmes ; toutes les actions des algorithmes doivent respecter le contrat défini dans l interface AlgorithmAction- Interface, la méthode la plus importante étant la méthode execute qui contient l algorithme de l action à exécuter. Les collections d actions sont indexées par un entier qui est le numéro de l action ; chaque algorithme est déclaré sous la forme d une autre énumération. L exemple fictif mis dans l ossature est la déclaration des actions de l algorithme d élection dans la classe AlgorithmElection. C est d ailleurs le seul algorithme déclaré pour l instant dans la classe ListOfAlgorithms ; la déclaration d un algorithme dans le second type d énumération consiste à lister les types de messages que la machine à états peut recevoir et à définir le code de délégation du traitement de chaque message dans des méthodes de classe. Dans l exemple fictif introduit dans l ossature : AlgorithmElection déclare une action pour un type de messages (classe MyFirstMessageContent non montrée dans le diagramme de classes) ; Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 7

8 2 Architecture de l application l algorithme de l action correspondante est la méthode de classe AlgorithmElectionActions.- treatmyfirstmessage ; Le moteur de la machine à états correspond à la méthode de classe execute de la classe ListOf- Algorithms qui est appelée dans la boucle infinie (méthode loop) de l activité principale du serveur (classe ChatSelectorMultiServerMain). L algorithme de cette méthode consiste à parcourir la liste des actions pour trouver celle correspondant au message reçu, puis à appeler la méthode de même nom sur l action correspondante. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 8

9 2 Architecture de l application 2.4 Diagramme de classes des clients # 8 NB : la figure est peut-être un peu trop petite pour la lecture papier. Elle est affichée à l échelle 1 dans le sujet en ligne. Pour complétude, la figure de cette diapositive présente le diagramme de classes du client. Il est très similaire à celui du serveur ; nous ne le commentons donc pas et vous redirigeons vers les commentaires insérés dans le code. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 9

10 3 Types paramétrés Cf. # 9 Vector<A> n est pas un type parent de Vector<B> (new Vector< Vector<A> >()).add(new Vector<B>()) ne compile pas Type joker : Vector< Vector<? extends A> > Idiome utilisé dans la déclaration des attributs mapofalgorithms et mapofactions de la classe ListOfAlgorithms Idiome utilisé aussi dans la déclaration de l attribut contentclass de la classe AlgorithmElection Vector<A> est un collection contenant des références vers des instances de classe A ou des références vers des instances de classe enfant de A. Mais, en supposant que B soit une classe enfant de A, Java ne permet pas dire que Vector<B> est un sous-type de Vector<A>. Ainsi, dans un v vecteur Vector< Vector<A> >, il n est pas possible d y mettre des références vers des vecteurs de type Vector<B>, car la collection v ne peut contenir que des références vers des vecteurs de type Vector<A>. Java utilise le caractère «?» dans la déclaration Vector<?> (prononcée «vecteur d inconnu» ou en anglais «vector of unknown») qui est le type parent de toutes les Vector. Ce type est appelé un type «joker» (en anglais, «wildcard type»). Le même caractère est utilisé un peu différemment pour déclarer un type joker contraint : Vector< Vector<? extends A> > : le type est contraint au sens où le vecteur peut contenir des références vers des vecteurs contenant des références vers des instances de classe enfant de A. C est la signification du «? extends A». Par exemple, en ayant créé auparavant la classe A et la classe B enfant de A, vous pouvez essayer le code suivant : Vector<Vector<A>> vva = new Vector<Vector<A>>(); Vector<A> va = new Vector<A>(); vva.add(va); Vector<B> vb = new Vector<B>(); // vva.add(vb); KO Vector<Vector<? extends A>> vvabis = new Vector<Vector<? extends A>>(); vvabis.add(va); vvabis.add(vb); // OK Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 10

11 4 Objets immuables et collections immuables Cf. livre Java Efficace : règle 13 # 10 Listes immuables (non modifiables), y compris leur contenu, une fois initialisées Attribut immuable déclaré avec le mot-clef final Contenu de la collection non modifiable une fois initialisé Méthode de classe Collections.unmodifiableList Idiome utilisé pour ListOfAlgorithms.mapOfAlgorithms Idiome utilisé aussi pour AlgorithmElection.mapOfActions Pour des raisons de sécurité, nous souhaitons que la liste des algorithmes dans l énumération ListOfAlgorithms ainsi que la liste des actions (des algorithmes) déclarée dans les seconds types d énumération comme AlgorithmElection soient immuables (en anglais, immutable), c est-à-dire qu une fois créées, les listes ainsi que leur contenu ne puissent pas être modifiés. En d autres termes, nous souhaitons qu aucune méthode hors du code d initialisation de ces énumérations ne puisse modifier les déclarations des algorithmes. La déclaration d un attribut immuable en Java s effectue en ajoutant le mot-clef final. Ainsi, la collection mapofalgorithms de l énumération ListOfALgorithms étant déclarée immuable, une fois la collection créée, elle ne peut pas être remplacée par une autre par inadvertance ou par malignité. Mais, cela n est pas suffisant. En effet, nous souhaitons aussi que le contenu de la collection ne soit pas modifiable une fois qu il a été initialisé. Nous utilisons alors la méthode unmodifiablelist de la classe Collection qui retourne une instance de la classe UnmodifiableList, qui contraint l utilisation de la liste en levant l exception UnsupportedOperationException à chaque fois qu une méthode souhaite modifier le contenu de la liste. Voici un petit exemple de manipulations que vous pouvez essayer : final Vector<String> v = new Vector<String>(); v.add("premier");v.add("deuxieme"); Vector<String> autre = new Vector<String>(); autre.add("troisieme"); v = autre; // KO à la compilation List<String> u = Collections.unmodifiableList(v); u.add("quatrieme"); // KO à l exécution u.remove(0); // KO à l exécution Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 11

12 5 Blocs de code «static» Cf. # 11 Exécution de code lors du chargement d une classe static {... Initialisation des collections immuables sans appel de méthode explicite Idiome utilisé dans la classe ListOfAlgorithm pour initialiser la liste des algorithmes Idiome utilisé aussi dans la classe AlgorithmElection pour initialiser la collection d actions Pour plus de sécurité encore, nous souhaitons initialiser la liste des algorithmes et les collections d actions des algorithmes de manière automatique sans que le développeur ait besoin d appeler une méthode au début de la méthode main. Ainsi, le programmeur ne risque pas d oublier cette initialisation et c est l initialisation que nous avons prévue qui est exécutée. Pour ce faire, nous programmons les créations et les initialisations des collections correspondantes dans des blocs de code dits «static». Ces blocs sont déclarés de la manière suivante dans les classes ListOfAlgorithms et AlgorithmElection : static {... La machine virtuelle Java charge les classes à la demande lors de l exécution. Les attributs de classe sont initialisés lors du chargement et les blocs «static» sont exécutés à la suite. C est pourquoi ces blocs n ont pas besoin d être nommés car ils ne sont pas appelés par le développeur mais exécutés de manière automatique par la machine virtuelle Java lors du chargement des classes. Voici un petit exemple de manipulations que vous pouvez essayer : public class A { private int a; private static int b; static { a = 2; // KO à la compilation car a est un attribut d instance b = 2; public A(final int a) { this.a = a; public String tostring() { return "a = " + a + " et b = " + b; puis, dans un main: A a = new A(1); System.out.println(a); Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 12

13 6 Type énuméré et constructeur de type énuméré Tutoriel Java : Livre Java Efficace : règle 21 # 12 Énumération = classe avec un ensemble d instances défini à la compilation Chaque instance possède une méthode ordinal Entier référençant de manière automatique l instance dans l ensemble Classe = Attributs, constructeurs, et méthodes possibles Utilisé dans ListOfAlgorithms pour collecter les collections d actions des algorithmes Utilisé dans AlgorithmElection pour indiquer le type du message correspondant à l action et pour affecter les numéros des actions Une énumération est une classe qui définit à la compilation des (instances) constantes. Comme ces constantes sont des objets, il est donc possible de les mettre dans des collections. Ainsi, ListOfAlgorithms définit les constantes représentant les algorithmes et chaque algorithme comme AlgorithmElection définit les constantes représentant les actions, une action par type de message de l algorithme. Les énumérations sont des classes. Par conséquent, il est possible de définir un constructeur permettant de construire chaque instance en initialisant des attributs. Nous utilisons cette facilité pour indiquer dans AlgorithmElection le type du message correspondant à l action. Par ailleurs, chaque instance possède de manière automatique la méthode ordinal qui retourne un entier qui est la position de l instance dans l ensemble des instances de l énumération. Nous utilisons ces deux facilités dans les énumérations déclarant les actions des algorithmes comme AlgorithmElection pour calculer l indice des actions à partir d une constante (indice de la première action de l algorithme) et de ordinal. Voici un petit exemple de manipulations que vous pouvez essayer : public enum E { E1(200),E2(127),E3(61); private int a; public E() { // KO à la compilation : constructeur public interdit private E(int a) { this.a = a; public String tostring() { return "name = " + name() + ", ordinal = " + ordinal(); puis, dans un main: for (E e : E.values()) { System.out.println(e); Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 13

14 7 Classes anomymes Cf Class-Definition/0201 Anonymous-inner-class.htm # 13 Classes définies comme des classes enfants et n ayant pas de nom Exemple : dans une instruction, à la suite de l opérateur new class A { some attributes + some methods A b = new A(args) { other attributes + other methods ; Idiome utilisé dans les définitions des instances de l énumération AlgorithmElection Dans sa forme simple, la création d une instance avec l opérateur new est effectuée comme ceci : A a = new A(args ); Grâce au polymorphisme, si la classe B est une classe enfant de la classe A, il est possible d écrire l instruction suivante : A b = new B(args ); Une forme plus évoluée permet, à la suite de l instanciation avec l appel à l opérateur new, de définir une classe enfant qui est aussitôt instanciée. Cette classe enfant est dite «anonyme» (en anglais, anonymous inner class) car elle n est pas repérée par un nom dans le code écrit. Dans l exemple qui suit, les codes des deux colonnes sont équivalents, la colonne de droite utilisant le mécanisme de classe anonyme définie dans la même instruction que l instanciation. class A { some attributes + some methods class B extends A { other attributes + other methods A b = new B(args ); class A { some attributes + some methods A b = new A(args ) { other attributes + other methods ; Les classes anonymes sont souvent utilisées dans les cas suivants : définition de classes enfants instanciées une seule fois : cela permet de ne pas multiplier les fichiers de classes *.java. Cet idiome est très utilisé dans les parties de code de gestion d interfaces graphiques ou encore dans les parties de code mettant en œuvre des threads ; définition de classes enfants dans les énumérations : c est l utilisation que nous en faisons dans l application tchat. Par exemple, les méthodes execute des instances des énumérations comme AlgorithmElection sont définies à la suite de la déclaration de l instance dans l énumération. Cependant, les classes anonymes possèdent des limitations parmi lesquelles les suivantes : il n est pas possible d instancier une classe anonyme hors de l instruction qui la définit ; l opérateur instanceof n est utilisable que sur le type de la classe parent, pas sur le type le plus spécifique, qui ne possède pas de nom ; Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 14

15 la définition de la classe anonyme ne peut ni inclure de déclaration implements, ni de déclaration extends. Voici un petit exemple de manipulations que vous pouvez essayer : en reprenant la classe A présentée ci-avant : A b = new A(2) { private int c; public String tostring() { return super.tostring() + ", c = " + c; ; System.out.println(b instanceof A); System.out.println(b); A c = new A(3) implements Serializable {; // KO à la compilation Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 15

16 À l issu de cette diapositive, nous vous invitons à lire le code des classes de la machine à états. Par exemple pour le serveur, la méthode loop de la classe ChatSelectorMultiServerMain appelle la méthode de classe execute de la classe ListOfAlgorithms ; la machine à états du serveur est initialisée par le bloc de code «static» de la classe ListOfAlgorithms, qui utilise les attributs des instances construites par le constructeur de l énumération qui prend en argument une collection définie en attribut de classe, qui est elle-même construite dans les blocs de code «static» des énumérations déclarant les actions des algorithmes (par exemple l énumération AlgorithmElection) ; ainsi, la méthode execute de la classe ChatSelectorMultiServerMain parcourt les algorithmes pour trouver l action correspondant au type de message (qui est un entier) et appelle la méthode execute de l action trouvée ; comme suggéré par l exemple existant dans la classe AlgorithmElection, ces méthodes d instance execute sont définies comme des délégations vers des méthodes de classes regroupées dans une autre classe : voir par exemple la classe AlgorithmElectionAction ; l effet escompté est de limiter le nombre de lignes de code dans l énumération AlgorithmElection afin de voir cette énumération comme la déclaration d actions, le code des actions étant rassemblé dans une autre classe. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 16

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

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 )

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 ) P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes

Plus en détail

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

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

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

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

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

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

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction 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

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

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

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez... Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Classe Interne, Anonyme & Enumération

Classe Interne, Anonyme & Enumération Java Avancé Classe Interne, Anonyme & Enumération Rémi Forax forax@univ-mlv.fr 1 Rappel Nous nous intéressons aujourd'hui à deux formes de type abstrait en Java Les interfaces Les classes abstraites Les

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

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

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

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

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

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

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Exercices sur les interfaces

Exercices sur les interfaces Exercices sur les interfaces Fabrice Rossi 18 octobre 1999 1 Le type Object 1.1 Manipulations élémentaires Exercice 1.1 : Indiquer l affichage produit par le programme suivant : public class UpCast1 {

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Licence 3 CDA 2010/2011 Client FTP Java Maxence Jaouan Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Windows?...

Plus en détail

Java 1.5 : principales nouveautés

Java 1.5 : principales nouveautés Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002 Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002 De nombreux utilisateurs rencontrant l équipe de National Instruments nous demandent comment générer un rapport complet à partir

Plus en détail

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Dis papa, c est quoi un bus logiciel réparti?

Dis papa, c est quoi un bus logiciel réparti? Dis papa, c est quoi un bus logiciel réparti? Raphael.Marvie@lifl.fr LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

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

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse IFT287 Exploitation de base de données relationnelles et orientées objet Laboratoire Mon premier programme Java en Eclipse Comment faire? Nous allons utiliser l environnement de travail proposé par Eclipse

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR ETS-RT - 2009-000 ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR HASSENE LAARIBI ETS-RT - 2009-000 ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR RAPPORT TECHNIQUE DE L ÉTS

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

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

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

INSTALLATION ET CONFIGURATION DE OPENLDAP

INSTALLATION ET CONFIGURATION DE OPENLDAP INSTALLATION ET CONFIGURATION DE OPENLDAP Ce document a pour intérêt de décrire les étapes de l installation et de la configuration de l outil OpenLDAP sous l OS FreeBSD 4.8 Installation et Configuration

Plus en détail

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

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Généricité. en Java. (polymorphisme paramétrique) Philippe GENOUD UJF Janvier 2015 1

Généricité. en Java. (polymorphisme paramétrique) Philippe GENOUD UJF Janvier 2015 1 (polymorphisme paramétrique) en Java Philippe GENOUD UJF Janvier 2015 1 Motivations Supposons que l'on développe du code pour gérer une file d'attente (FIFO First In First Out) et que l'on veuille utiliser

Plus en détail

Ingénérie logicielle dirigée par les modèles

Ingénérie logicielle dirigée par les modèles Ingénérie logicielle dirigée par les modèles Destercq Lionel & Dubuc Xavier 17 décembre 2009 Table des matières 1 Introduction 1 2 Diagrammes de classes 1 2.1 Principal..............................................

Plus en détail

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

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................

Plus en détail

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

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

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

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object Facultés Universitaires Notre-Dame de la Paix Conception et Programmation Orientées- Object 2008-2009 RÉSUMÉ PRATIQUE... 4 CLASSE OBJET... 4 NOTION D HÉRITAGE... 4 LE POLYMORPHISME... 5 LES CLASSES ABSTRAITES...

Plus en détail

La gestion des exceptions

La gestion des exceptions La gestion des exceptions Même lorsqu un programme est au point, certaines circonstances exceptionnelles peuvent compromettre la poursuite de son exécution ; il peut s agir par exemple de données incorrectes

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail