Compléments sur des concepts et des idiomes Java
|
|
- Edgar Martineau
- il y a 8 ans
- Total affichages :
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
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étailQuelques 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étailTP 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étailOpenPaaS 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étailChapitre 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étailProgrammer 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étailP 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étailLicence 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étailTraduction 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étailLMI 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étailCours 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étailApprendre 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étailPremiers 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étailExceptions. 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étailJava 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étailAuto-é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étailJ2SE 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étailProgrammation 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étailHé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étailTD/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étailInfo0604 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étailTP1 : 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étailBases 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étailTP, 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étailLangage 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étailEnvironnements 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étailChapitre 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étailProgrammation 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étailJava 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étailProjet 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étailCours 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étailSynchro 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étailPolymorphisme, 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étailPré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étailProgrammation 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étailProjet 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étailTD/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étailClasse 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étailExclusion 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étailRMI 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étailGestion 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étailDé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étailTD3: 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étailINITIATION 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étailLangage 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étailUn 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étailTable 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étailEncapsulation. 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étailAnne 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étailTutoriel: 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étailPré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étailLe 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étailLa 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étailPlan 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étailExercices 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étailInitiation à 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étailJava 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étailINTRODUCTION 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étailSommaire 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étailJava 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étailTP : 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étailCours 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étailRMI. 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étailINITIATION 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étailRemote 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étailComment 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étailJava 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étailCours 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étailUne 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étailTP1. 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étailChapitre 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étailBIRT (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étailStructure 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étailEclipse 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étailDis 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étailCette 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étailRemote 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étailIFT287 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étailTypes 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étailInfo0101 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étailIntroduction à 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
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étailDevenez 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étailGé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étailChapitre 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étailC++ 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étailINSTALLATION 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étailGé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 Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailas 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étailGé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étailIngé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étailAide 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étailTp 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étailACTIVITÉ 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étailFaculté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étailLa 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étailSolutions 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étailCours 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étailLANGAGUE 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