Initiation à la Programmation Java

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

Download "Initiation à la Programmation Java"

Transcription

1 Initiation à la Programmation Java (4GI) Michel Cubero-Castan 8/10/2006

2 Copyright (c) 2003 Michel Cubero-Castan Tous droits réservés.

3 Table des matières 1 Java Computing Introduction Evolution du modèle informatique Le modèle centralisé Le modèle réseau local Les avantages de Java Le modèle d'exécution Environnement multi-plateforme (matérielle) Plateforme Java Système de développement JDK Classe, Instance, Variable, Méthode Hiérarchie, Héritage, Interface, Paquetage Exemple de programme Java Classpath Les outils de JDK javac java javadoc L'application ANT (Apache) Fichier XML de description Lancement de ANT Les bases de Java Les bases traditionnelles Lexicographie Commentaires Identificateurs Les variables Les types primitifs Les nombres entiers Les nombres flottants Les booléens Les caractères Les chaînes de caractères Les tableaux Les opérateurs Opérations arithmétiques Concaténation de chaînes de caractères Opérations de comparaisons

4 Opérations logiques Opérations de manipulation binaire Affectation Conversion Précédence des opérateurs Les structures de contrôle Le bloc d'instructions Branchement conditionnel Choix multiple Boucles Les exceptions Les bases de l'orientation objet Les paquetages Les classes Les méthodes Les constructeurs Les interfaces Les variables Exemple de classe, l'heure Variations sur le polymorphisme Le problème initial Polymorphisme de méthode (surcharge) Méthode abstraite Interface Interface et méthode abstraite Classe membre statique Classe membre Classe locale Classe anonyme Allocation dynamique d'objets Clone Libération Options (non standards) de la commande java API standard Utilisation de l'api java.lang.* Classes liées au langage Classes liées à la machine virtuelle java.util.* java.util.stringtokenizer java.util.vector java.util.enumeration java.util.hashtable java.util.observer et java.util.observable

5 4.4 java.io.* Entrées-sorties standard Entrées-sorties sur fichiers Réflexion java.lang.class Création d'instance Appel de méthode Traitement des variables Les Threads Utilisation des Threads Classe java.lang.thread Interface java.lang.runnable Cycle de vie des Threads Ordonnancement des Threads Synchronisation des Threads Groupe de Threads Les processus

6

7 Polycopié du cours de Java Java est le dernier né des langages de programmation par objets, résultat de plusieurs années de recherche et de développement pour Sun. C'est le premier langage qui offre une solution complète, robuste et indépendante des plates-formes au problème de la programmation d'applications pour l'internet. Ce cours est une initiation à la programmation Java, en particulier la programmation répartie en Java. Si vous trouvez une erreur dans cette version du polycopié, vérifiez d'abord si l'erreur n'a pas déjà été corrigée dans la version en ligne. Si ce n'est pas le cas, merci d'en faire part par courrier électronique à l'adresse Page 1 sur 92

8 Chapitre 1 Java Computing 1.1 Introduction En Décembre 1990, le constructeur Sun Microsystems monte une petite équipe de programmeurs chargée de concevoir un environnement de programmation pour des appareils d'électronique grand public, en particulier les récents PDA (Assistants Numériques Personnels) tel le Newton d'apple, ou encore les futurs décodeurs pour la télévision intéractive. Dirigée par Bill Joy, cette équipe comprend notamment James Gosling, un ancien étudiant du département d'informatique de l'université Carnegie Mellon, spécialiste des logiciels en réseau, dont le rêve était de créer un langage simple et robuste, capable de piloter toutes sortes d'appareils du téléphone portatif au grille-pain. Dès sa création, l'équipe met au point le langage de programmation OAK. Le premier programme écrit en OAK s'exécute en Août 1991 grâce à un interprète écrit en C (le premier compilateur OAK était également écrit en C). Trois ans plus tard, suite aux déboires des pionners du PDA et au manque d'enthousiasme que suscitaient les décodeurs de télévision interactive, Sun oriente son équipe vers les aspects Internet alors en plein essor (Le programme Mosaic a été lancé en 1993). Le nouveau langage est alors baptisé Java et devient véritablement célèbre après l'annonce par Netscape le 23 Mai 1995 que son butineur Navigator, qui représentait alors 85% du trafic sur le Web, allait l'incorporer. Java est plus qu'un simple langage de programmation, c'est une véritable révolution dans la manière d'aborder l'informatique d'entreprise. Cette philosophie s'appelle le Java Computing. 1.2 Evolution du modèle informatique Le modèle centralisé Au début de l'informatique, les systèmes informatiques étaient basés sur un modèle centralisé (Figure 1.1). Le système était composé d'une grosse machine (mainframe) sur laquelle étaient connectés plusieurs terminaux. Page 2 sur 92

9 Fig 1.1 : Modèle informatique centralisé Cette organisation présentait plusieurs avantages. Par exemple, l'utilisateur pouvait avoir accès à l'ensemble de ses fichiers et programmes depuis n'importe quel terminal. Ou encore, s'il était le seul utilisateur du système à un instant donné, il bénéficiait de l'ensemble des ressources de la machine, en particulier, l'unité centrale. Pour l'ingénieur système, le fait de gérer une seule machine était un point positif : un seul système d'exploitation à connaître, un seul matériel à connaître. Malheureusement, ces avantages pouvaient devenir facilement des inconvénients. Par exemple, à partir du moment où l'utilisateur n'est plus seul, il faut partager la puissance de la machine. Ce partage se réduit à zéro en cas de panne de la machine. Côté évolution, elle ne peut être que globale, dans le sens où augmenter la puissance de la machine implique un changement complet Le modèle réseau local Après le modèle centralisé, sont apparus les réseaux locaux. Plusieurs postes de travail étaient connectés sur un réseau local, comprenant également un ou plusieurs serveurs (Fig 1.2 ). Fig 1.2 : Modèle informatique réseau local Avec une telle organisation, il est possible d'avoir un poste de travail adapté à l'utilisateur. Dans la mesure où ce dernier ne nécessite qu'une machine de petite puissance, on arrive à des coûts réduits, du moins pour le matériel. Cependant, la multiplication des postes de travail dans une entreprise conduit à la multiplication des ressources logicielles : chaque machine doit avoir son système d'exploitation (pas forcément le même Page 3 sur 92

10 sur tous les postes de travail), ses outils de bureautique (courrier électronique, navigateur intranet, traitement de texte, tableur,...). Tous ces logiciels introduisent des coûts supplémentaires (maintenance pour les logiciels achetés, développement plus important pour les logiciels maison), sans compter les coûts indirects liés à l'administration de ces machines (coûts proportionnels à l'incompatibilités des postes de travail et des systèmes). Le coût annuel d'exploitation d'un simple poste de travail peut devenir très élevé. Le Gartner Group l'a évalué à $ par poste et par an (Gartner Group, Strategic Planning Research Note, SPA-14022, 26 avril 1996). De son côté, Sun estime le coût d'exploitation de postes de travail Java inférieur à 2.500$;. 1.3 Les avantages de Java L'approche Java (plate-forme de développement et environnement d'exécution) offre beaucoup d'avantages : Il permet de créer des applications offrant une meilleure sécurité au niveau de l'exécution. Cette sécurité est possible surtout par la vérification de tout le code avant son exécution. Elle vient aussi de l'absence, dans le langage, de la notion de pointeur. Il permet de créer des applications adaptables à des environnements changeants, simplement par le fait que le code peut être téléchargé avant l'exécution, à partir de n'importe quel point serveur d'un réseau. Cette notion d'adaptabilité doit être reliée à la notion de portabilité assurée par la machine virtuelle Java (dans la mesure où celle-ci existe pour chaque type de machine). Cette portabilité est clairement mise en avant dans le leitmotiv de Java : write once, run everywhere. Du point de vue du programmeur, Java permet de réduire le temps de développement d'une application grâce à la réutilisabilité du code développé. L'apprentissage de Java est facilité par la ressemblance avec les langages C et C++. Le succès de Java autant au niveau des programmeurs (en Octobre 1996, selon une estimation de Sun, ils étaient plus de 200~000 à utiliser ce langage) que des constructeurs (la machine virtuelle Java existe pour un grand nombre de systèmes, Apple, IBM, Microsoft, Novel, Silicon Graphics,..., quelque fois directement intégrée dans le système d'exploitation) laisse penser que, dans un proche avenir, la plateforme logicielle qui sera la plus diffusée ne sera plus Window mais la machine virtuelle Java. 1.4 Le modèle d'exécution La clé du modèle d'exécution Java repose sur un langage machine intermédiaire unique pour toutes les machines virtuelles Java. La mémorisation d'un programme en code machine intermédiaire s'effectue dans un fichier ayant.class pour extension. Le format des données dans ce fichier est unique. Ainsi, le même fichier peut être lu indifféremment par l'une ou l'autre des machines virtuelles Java, que ce soit dans un environnement Window, Macintosh ou Unix (Fig 1.3 ). Page 4 sur 92

11 Fig 1.3 : Modèle d'exécution Java Au niveau de la compilation, cela implique que les différents compilateurs disponibles produisent tous un fichier exécutable dans un format commun. De cette manière, il est possible de compiler un programme Java dans un environnement unix sur une machine Sun, puis de porter le fichier obtenu sur un Macintosh et l'exécuter par la machine virtuelle propre à Apple. C'est ce qui permet, entre autre, son utilisation sur internet. 1.5 Environnement multi-plateforme (matérielle) Pour s'exécuter, un programme Java dispose d'un environnement multi-plateforme. Il en existe pour plus de 34 systèmes d'exploitation différents, tournant sur plus de 10 processeurs différents. La figure 1.4 présente les diverses composantes de cette plateforme. Page 5 sur 92

12 Fig 1.4 : Environnement multiplateforme Java Tout d'abord, il convient de distinguer deux sortes de programmes Java : l'application Java et l'appliquette (Applet en anglais) Java. L'application est un programme comme ceux que nous avons l'habitude de créer. Pour s'exécuter, il a besoin d'une machine virtuelle Java. Une appliquette est un programme (en général de taille réduite) qui ne peut pas s'exécuter tout seul, mais à l'intérieur d'une autre application (par exemple le navigateur de Netscape). Appliquette et application s'exécutent grâce à une machine virtuelle (JVM : Java Virtual Machine). Cette machine dispose d'un chargeur (pour charger le code exécutable à partir du réseau internet), d'un vérifhcateur chargé de contrôler le code (pour la sécurité), et d'un interprète chargé d'exécuter le code. Le code peut faire appel à des fonctions disponibles dans une bibliothèque : l'api Java (Application Programming Interface) dont seule une petite partie est dépendante du système d'exploitation (classes PEER). L'exécution d'un programme Java n'est pas des plus rapides puisque interprété. La machine virtuelle peut toutefois s'accompagner d'un compilateur JIT (Just In Time), un compilateur à la volée. Ce type de compilateur transforrme le code machine Java en code machine pour l'unité centrale hôte, pendant l'exécution du programme. Cette approche permet de conserver la nature portable du programme écrit en Java, tout en bénéficiant des avantages de la compilation classique au niveau de la vitesse d'exécution. 1.6 Plateforme Java Page 6 sur 92

13 La plateforme Java désigne l'environnement qui permettra à un programme java de s'exécuter. Alors que la plupart des plateformes possèdent des composantes matérielles et logicielles, la plateforme Java est purement logicielle. Elle comprend principalement deux éléments: la machine virtuelle la bibliothèque Java En fait, il n'y a pas une mais trois plateformes Java: J2ME : Java 2 Micro Edition J2SE : Java 2 Standard Edition J2EE : Java 2 Enterprise Edition La plateforme Micro Edition est celle utilisée pour l'utilisation de Java sur des appareils du type carte à puce, téléphone, etc. La plateforme Standard Edition est la plateforme généralement utilisée pour le développement d'application Java. La plateforme Enterprise Edition est utilisée pour le développement d'applications modulaires de grande taille, grâce à un ensemble de services intégrés pour le courier électronique, l'accès aux bases de données, etc. Page 7 sur 92

14 Chapitre 2 Système de développement JDK 2.1 Classe, Instance, Variable, Méthode Java est avant tout un langage de programmation orientée objet. Mais, qu'est-ce qu'un objet? Pour mieux cerner les différents concepts de la programmation objet en Java, regardons l'exemple d'un gestionnaire d'emploi du temps. La figure 2.1 montre un exemple de page qui pourrait être fournie par un tel gestionnaire. Fig 2.1 : Page d'emploi du temps On constate qu'il existe, dans cette page, beaucoup d'éléments différents : Un cadre avec titre Un cadre par jour Un cours à 9h35... Page 8 sur 92

15 Mais, il y a également beaucoup d'éléments semblables! Par exemple, l'élément cours multimédia par Mr C. Chaplin du Jeudi 18/09/1997 n'est pas tellement différent de l'élément correspondant au cours ayant lieu le Vendredi 19/9/97 à 11h15, si ce n'est l'indication de la salle et la date! On appellera classe, un modèle pour plusieurs objets semblables, partageant des caractéristiques communes. Dans notre exemple, nous pouvons avoir la classe des TD, représentée graphiquement par le schéma: La classe TD nous décrit des éléments qui possèdent les caractéristiques suivantes : une créneau horaire, un numéro de séance, un nom d'enseignement, un nom d'enseignant, une salle, un groupe d'élèves (indiqué implicitement par la position dans la colonne du jour: groupe A pour la position à gauche, groupe B pour la position à droite). Une instance de la classe TD n'est autre qu'un objet issu de cette classe. La classe est une notion abstraite, tandis que l'objet est la concrétisation de la classe. Dans notre page de la figure 2.1, nous avons deux objets instances de la classe TD : un TD pour le groupe A, le mardi 16/09/1997 à 9h15, et un TD pour le groupe B, le mardi 16/09/97 à 9h30. On appelle variable, un élément (ou une information) associé à un objet ou bien à une famille d'objets. Par exemple, dans notre classe TD, chaque caractéristique (créneau horaire, numéro de séance, nom d'enseignement,...) est une variable. Enfin, nous appellerons méthode, la description d'une action ou d'un comportement qui permet de modifier une ou plusieurs valeurs associées aux variables d'un objet d'une classe donnée. La méthode est définie au niveau de la classe et pourra s'appliquer sur toutes les instances d'une classe. Dans notre exemple du gestionnaire d'emploi du temps, nous pourrions définir la méthode déplacer, qui nous permettra de changer la position d'un TD dans le planning. Cette méthode sera appliquée sur l'instance TD du groupe A du mardi 16/09/1997 à 9h15, pour éventuellement le déplacer au vendredi matin à 8H. 2.2 Hiérarchie, Héritage, Interface, Paquetage Page 9 sur 92

16 Poursuivons l'examen de la figure 2.1. Nous avons deux éléments n'appartenant pas à la même classe, mais possédant des caractéristiques communes, l'instance de la classe Note et l'instance de la classe Cours: Ces deux classes présentent, en effet, des points communs. Elles possèdent la même variable (créneau horaire) et la même forme de représentation (un grand rectangle). Elles peuvent posséder des méthodes communes, par exemple la méthode déplacer. Appelons créneau, la classe correspondant à l'ensemble de ces points communs. Nous pouvons maintenant redéfinir la classe Note en disant que c'est un créneau auquel nous avons rajouté de nouvelles variables et de nouvelles méthodes. Nous pouvons faire de même pour la classe Cours. Nous avons défini ainsi une hiérarchie entre les classes : Nous dirons que créneau est la super-classe de Note et Cours, et récriproquement, Note et Cours sont des sous-classe de Créneau. Une sous-classe hérite des variables et des méthodes de sa super-classe. Pour définir la classe Cours, il suffit d'indiquer qu'elle va hériter de la classe Créneau, et d'indiquer les nouvelles variables et méthodes. L'effort de programmation est ainsi diminué, tout ce qui a été fait n'est plus à faire. Un des points particulièrement intéressant de l'héritage réside dans la possibilité de voir un objet sous plusieurs visages. Par exemple, une instance de la classe Cours peut aussi être vue comme une instance de la classe Créneau (dans ce cas, on ne peut utiliser que les méthodes utilisables par la classe Créneau). Certains langages de programmation orientée objet permettent la définition d'une classe à partir de plusieurs classes n'ayant aucun lien entres elles. On parle alors d'héritage. Le langage Java ne le permet pas. Java n'offre que l'héritage simple. Une classe ne peut avoir qu'une seule super-classe. De même, cette super-classe ne peut avoir qu'une seule super-classe qui elle même ne peut avoir... Où arrêter le raisonnement? Sur une classe racine. Là aussi, Java simplifie les choses en n'ayant qu'une seule classe racine possible. Cette classe est la classe Objet. De ce fait, tout objet Java hérite, directement ou indirectement, de cette classe unique. Il n'y a pas de possibilité d'héritage multiple en Java. Ceci n'est pas en soi un problème. L'héritage multiple permet à un objet d'être vu comme un objet issu de l'une de ses super-classes. Avec l'héritage simple de Java, il est possible de voir un objet comme appartenant à une classe différente de la classe Page 10 sur 92

17 dont il est issu directement ou indirectement, grâce à la notion d'interface. Une interface décrit la possibilité d'un comportement particulier. La bibliothèque standard Java (API) contient un grand nombre de classes et interfaces (211 pour JDK 1.0.2, 477 pour JDK 1.1.5). Trouver un nom unique pour chacune de ces classes ou interfaces serait une tâche ardue s'il n'existait pas la notion de paquetage. Un paquetage est un regroupement de classes, d'interfaces et même de paquetages. Une classe particulière CL faisant partie du paquetage P2, lequel fera partie du paquetage P1 sera désignée par P1.P2.CL. La bibliothèque standard Java se trouve dans le paquetage java. Dans l'api 1.0.2, nous pouvons trouver les paquetages suivants: java.lang java.util java.io java.net java.awt Le paquetage java.util contient lui même les classes: java.util.enumeration java.util.hashtable java.util.date 2.3 Exemple de programme Java Le programme ci-dessous est un exemple de petit programme Java permettant de calculer le nombre de jours qui nous séparent du premier janvier de l'an package ch2; import java.util.calendar; /** * Programme calculant le nombre de jours depuis l'an 2000 Michel Cubero-Castan 1.2 JDK1.1 */ public class An2000 { private static Calendar calendrier = Calendar.getInstance(); /** * Méthode principale du programme calculant le nombre de jours * qui nous séparent du premier janvier de l'an * args les paramètres du programme (non utilisés) */ public static void main(string[] args) { long aujourdhui = calendrier.gettime().gettime(); calendrier.clear(); calendrier.set(2000,0,1,0,0,0); // 1er janvier 2000, 0h00 long an2000 = calendrier.gettime().gettime(); long nbrsecdepuis2000 = (aujourdhui - an2000) / 1000; Page 11 sur 92

18 long nbrjoursdepuis2000 = nbrsecdepuis2000 / (24*60*60); System.out.println("= Il est passé " + nbrjoursdepuis " jours, depuis l'an 2000."); Ce programme se présente sous la forme d'une classe ayant pour nom An2000 et faisant partie du paquetage ch2 (Attention aux lettres majuscules et minuscules, Java est sensible aux lettres capitales). Toute définition de classe publique (nous verrons plus tard ce que signifie ce terme) doit être mémorisée dans un fichier source ayant pour nom, le nom de la classe, et.java pour extension. De plus, si cette classe fait partie d'un paquetage, le fichier source doit se trouver (pour pouvoir être retrouvé par le compilateur) dans un répertoire ayant le même nom que le paquetage. Ainsi, le fichier source du programme An2000 aura pour nom An2000.java et sera placé dans le répertoire ch2 : Lorsque nous compilerons ce fichier, nous obtiendrons un fichier par classe compilé. Le nom de ce fichier sera le nom de la classe, avec.class pour extension. Si la classe appartient à un paquetage, le fichier compilé devra résider dans un répertoire ayant comme nom, le nom du paquetage. Pour notre programme An2000, nous aurons donc : 2.4 Classpath La seule contrainte imposée par Java sur la position d'un fichier (.java ou.class) est d'être dans un répertoire du même nom que le paquetage de la classe. Il n'y a pas de contrainte sur la position du Page 12 sur 92

19 paquetage racine. Comment la machine virtuelle va-t-elle trouver son chemin d'accès? Elle utilise la variable d'environnement CLASSPATH pour retrouver ce chemin. Cette variable donne les différents répertoires dans lesquels la machine virtuelle Java va rechercher les différentes classes qui ne font pas partie du paquetage standard java (l'ensemble des classes du paquetage standard java se trouvent dans une archive java connue de la machine virtuelle java; il n'est pas besoin d'en indiquer l'emplacement). Ces répertoires sont séparés par le caractère :. Si la classe recherchée appartient à un paquetage, par exemple la classe P1.P2.P3.CL, un des répertoires indiqués par la variable CLASSPATH doit contenir le répertoire P1 et non pas la classe CL. Par défaut, si cette variable n'est pas positionnée, la machine virtuelle Java utilise le répertoire courant. Bien entendu, les répertoires contenant les fichiers ".class" peuvent être différents des répertoires contenant les fichiers ".java". Par exemple, nous pouvons répartir ces deux types de fichiers dans deux répertoires, Sources pour les fichiers ".java" et Classes pour les fichiers ".class", en utilisant un paquetage différent par chapitre. Nous aurons ainsi, des répertoires organisés comme suit (le répertoire /home/gringo pouvant être le répertoire de login, contenant les répertoires Sources et Classes) : Il existe deux manières de spécifier le chemin de recherche des classes: en utilisant la variable d'environnement CLASSPATH, ou par l'intermédiaire du paramètre -classpath d'une commande d'exécution d'un des outils du système de développement. Par exemple, pour compiler, puis exécuter le programme An2000, si les répertoires Sources et Classes se trouvent dans le répertoire de login de Page 13 sur 92

20 l'utilisateur (désigné ici par /home/gringo), nous utiliserons l'une des deux séquences de commandes (type unix) suivantes : variable d'environexport CLASSPATH=/home/gringo/Classes:/home/gringo/Sources nement javac -d /home/gringo/classes An2000.java java ch2.an2000 paramètre de commande cd /home/gringo/sources/ch2 javac -classpath /home/gringo/classes:/home/gringo/sources/ -d /home/gringo/classes An2000.java java -classpath /home/gringo/classes ch2.an Les outils de JDK JDK (Java Development Kit) est le système de développement de référence fourni par Sun. Il en existe plusieurs versions, dénotées par JDKx.y.z où x est un numéro de version correspondant à une évolution majeure du langage. y est un numéro de version correspondant à une évolution au niveau de l'api. z est un numéro de version correspondant à une correction d'erreur. La première version publique accessible fut la version JDK Il y a une compatibilité ascendante entre les différentes versions. L'avant dernière version (JDK1.1.8) est maintenant acceptée par la plupart des principaux navigateurs. C'est celle utilisée pour les différents exercices. Dans la suite de ce polycopié, nous indiquerons les éléments de JDK1.1, nouveaux par rapport à la première version. La version actuelle est la version JDK Le premier système de développement JDK1.0 comprenait les outils suivants: Le compilateur Java. Il produit du code intermédiaire (le bytecode). javac java L'interprète de bytecode. jdb Le débogueur Java. javah Un générateur de fichier d'en-tête C (".h") et de programme de conversion des arguments, utilisé appeler des procédures C à partir de programme Java. javap Un programme desassembleur permettant de visualiser les fichiers de bytecode Java. javadoc Le générateur de documentation en HTML à partir des commentaires contenus dans le programme Java. appletviewer Un visualiseur d'applet (principalement utilisé pour les tests). Le système de développement JDK1.1 comprend, en plus des outils précédents, les outils suivants: L'interprète de bytecode destiné à être utilisé en mode production (lorsque le jre processus de développement est terminé). jar Un programme permettant de combiner plusieurs fichiers de bytecode Java, ainsi que d'autres types de fichiers (images, son,...) en un seul fichier archive. javakey Un outil pour les signatures digitales. Page 14 sur 92

21 native2ascii Un outil pour convertir un fichier utilisant des caractères spéciaux en un fichier ASCII, en utilisant la notation unicode \udddd. rmic Un outil pour générer les interfaces de conversion pour les classes contenant des objets distants. rmiregistry L'outil d'enregistrement des objets distants. serialver Outil permettant d'obtenir la version de sérialisation d'une classe. updateawt Outil de conversion pour le passage de l'awt 1.0 à l'awt 1.1. Le plus récent système de développement, JDK1.2, contient un beaucoup plus grand nombre de nouvelles classes. On trouve ainsi également de nouveaux outils, comme des outils pour l'internationalisation des programmes, des outils pour la sécurité des applications, ainsi que des outils liés à CORBA. Examinons plus attentivement, les outils les plus importants javac Le compilateur javac s'appelle avec la commande de même nom. Il est possible de compiler une ou plusieurs classes. Plusieurs paramètres optionnels peuvent être utilisés avec cette commande. Nous ne décrirons ici que les plus utiles pour un apprentissage java. $ javac [option] nomfichier1.java nomfichier2.java... La commande javac compile chaque nom de fichier passé comme paramètre à la commande. Pour chaque classe contenue dans les fichiers sources, le compilateur produit un fichier de bytecode java ayant pour nom le nom de la classe compilée et pour extension ".class". Ces fichiers de bytecode sont placés dans le même répertoire que le fichier source sauf si l'option -d est utilisée. Dans ce cas, les fichiers de bytecode Java sont placés dans le répertoire indiqué par l'option. Si la classe compilée fait partie d'un paquetage, il est préférable d'utiliser cette option et d'indiquer dans l'option, le répertoire racine de la hiérarchie de classe. Lors de la compilation d'une classe faisant référence à une deuxième classe, le compilateur recherche (grâce à la variable d'environnement CLASSPATH ou à l'option -classpath) le fichier source et le fichier bytecode correspondant à cette deuxième classe. Une compilation de la seconde classe est effectuée si, soit le fichier bytecode de la seconde classe n'existe pas, soit la date de modification du fichier source est postérieure à la date de modification du fichier bytecode. Cette vérification n'est pas reconduite pour les classes qui seraient référencées par cette deuxième classe, sauf si l'option -depend est utilisée. Dans ce cas, le processus de compilation est effectué pour toute classe référencée directement ou indirectement par la classe compilée. Pour faciliter l'utilisation de l'outils de mise au point jdb, il faut utiliser l'option -g qui permet au compilateur de générer dans le bytecode, les informations pouvant servir à la mise au point (comme les noms de variables, la numérotation des lignes sources,...). Enfin, il existe, depuis la version JDK1.1, un certain nombre de méthodes marquées deprecated c'est à dire des méthodes dont l'usage n'est pas recommandé. Ce sont des méthodes de la première version qui ont été conservées dans la version 1.1 pour assurer une compatibilité ascendante, mais Page 15 sur 92

22 qui peuvent être remplacées par de nouvelles méthodes de cette dernière version. En principe, ces méthodes dépréciées pourront être retirées dans les versions futures. Le compilateur JDK1.1 indique à la fin de la compilation si la classe compilée utilise de telles méthodes dépréciées. Il est possible d'obtenir un message d'avertissement pour chaque méthode utilisée, avec l'option de compilation -deprecation. Exemple: Pour compiler notre programme An2000, nous devons exécuter la commande unix suivante (dans le répertoire ch2 contenant le fichier source): $ javac -g -d../../classes/ An2000.java java La commande java permet d'exécuter la méthode main de la classe dont le nom complet (nom du paquetage inclu) est passé en argument. La méthode main doit avoir la signature suivante: public static void main(string argv[]){... La classe à exécuter doit avoir été compilé, puisque la commande java interprète le bytecode obtenu à l'issue de la compilation. De plus, le fichier contenant le bytecode doit être accessible via la variable d'environnement CLASSPATH. Comme la commande javac, la commande java peut contenir des options. La première option -classpath donne le chemin d'accès aux différentes classes. Une deuxième option -cs ou -checksource permet de vérifier si les dates de dernière modification des fichiers de bytecode des classes utilisées sont bien postérieure aux dates des fichiers sources correspondants. Dans la négative, une compilation est automatiquement effectuée avant le chargement de la classe. Une troisième option -debug permet de relier l'exécution du programme au débogueur, pour une mise au point du programme. D'autres options permettent de modifier certains paramètres de la machine virtuelle Java, ou d'obtenir des statistiques lors de l'exécution. Il est possible de transmettre des paramètres à un programme Java, via la ligne de commande: $ java [option] nomclasse paramètre1 paramètre2... Ces paramètres sont accessibles dans la méthode main, via le tableau de chaînes de caractères passé en paramètre. Il est également possible de transmettre un certain nombre de propriétés par la commande java, en utilisant l'option -D suivie du nom de propriété et de sa valeur (-Dnom=valeur ). Voici la commande unix et le résultat obtenu pour l'exécution de notre programme An2000 : $ java -classpath../../classes ch2.an2000 = Il reste 606 jours, avant l'an $ javadoc Page 16 sur 92

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

Le langage Java - Syntaxe

Le langage Java - Syntaxe Le langage Java - Syntaxe LES BASES: litéraux, types, expressions, instructions LE LANGAGE JAVA - SYNTAXE LES COMMENTAIRES LES IDENTIFICATEURS LISTES DES MOTS RÉSERVÉS: LES LITÉRAUX BOOLÉENS LA DÉCLARATION

Plus en détail

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 02 : Expressions et opérateurs Jacques Bapst jacques.bapst@hefr.ch Expressions [1] Les expressions sont des entités composées de littéraux,

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

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

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

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

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

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

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

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

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

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

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

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

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

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

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

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

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

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

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

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

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

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)

Plus en détail

Codage de l'information

Codage de l'information Organisation des ordinateurs et assembleur Codage de l information Chapitre 3 Codage de l'information Les cellules de mémoire ne contiennent pas vraiment des valeurs décimales : elles contiennent en fait

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

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

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

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

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

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

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

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

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

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

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

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90. Analyste et développeur pendant plus de 10 ans, Thierry GROUSSARD s est ensuite orienté vers la formation et plus particulièrement dans le domaine du développement. Sa connaissance approfondie des besoins

Plus en détail

CORBA avec OpenORB. Samir Torki et Patrice Torguet

CORBA avec OpenORB. Samir Torki et Patrice Torguet CORBA avec OpenORB Samir Torki et Patrice Torguet 1 Présentation de CORBA CORBA (Common Object Request Broker Architecture) est un standard décrivant une architecture pour la mise en place d objets distribués.

Plus en détail

Manipulations binaires en C++

Manipulations binaires en C++ Manipulations binaires en C++ Tous les exercices devront être résolus sans utiliser les opérateurs *, / et % Rappels En informatique, les nombres sont stockés sous forme binaire. Même si ce n'est pas nécessaire,

Plus en détail

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

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques

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

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++

Plus en détail

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

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

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

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

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

Sommaire MQL4 pour les nuls

Sommaire MQL4 pour les nuls Sommaire MQL4 pour les nuls 1. Introduction 2. MetaEditor 3. Les types de données 4. Les variables 5. Expressions et opérateurs 6. Les fonctions 7. Instructions conditionnelles et boucles 8. Indentations,

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Systeme d'exploitation

Systeme d'exploitation Introduction au dévellopement de Methodes Natives Partie I : appelle de methodes C++ sous windows Auteur: Frank Sauvage. 1 \ introduction aux methodes natives : Les methodes natives sont des methodes devellopées

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

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

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

La carte à puce. Jean-Philippe Babau

La carte à puce. Jean-Philippe Babau La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java 1 Introduction : Langage développé par Sun et purement orienté objet. N a pas de rapport direct avec Javascript développé par Netscape. Les applications java peuvent être des

Plus en détail

Notes de cours. Introduction

Notes de cours. Introduction Notes de cours GEI 44 : STRUCTURES DE DONNÉES ET ALGORITHMES Chapitre 5 Application des piles Introduction Piles très utilisées dans les compilateurs Voici deux exemples de composants d un compilateur

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

Informatique / Programmation

Informatique / Programmation Java / Introduction Caractéristiques principales Informatique / Programmation Orientation Objet (C++) -- Sécurité intégrée Portabilité Programmation orientée objet avec Java 01 : Introduction / Éléments

Plus en détail

en Visual Basic Premiers pas

en Visual Basic Premiers pas V0 (16-10-2009) Licence Université Lille 1 Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr Première année DEUST 2008-09 Ce cours est porte sur la programmation en s appuyant sur le langage

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

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

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

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

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

2012/2013 Le codage en informatique

2012/2013 Le codage en informatique 2012/2013 Le codage en informatique Stéphane Fossé/ Marc Gyr Lycée Felix Faure Beauvais 2012/2013 INTRODUCTION Les appareils numériques que nous utilisons tous les jours ont tous un point commun : 2 chiffres

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Une version javascript sera disponible directement dans le cours prochainement.

Une version javascript sera disponible directement dans le cours prochainement. Author : Cédric Vanconingsloo Ce cours est principalement axé sur la compréhension du fonctionnement d'un ordinateur et l'étude du seul langage qu'il connaisse, le binaire. De ce fait, le cours est relativement

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Mohamed Tounsi Institut Supérieur d'informatique et de Multimédia Sfax Septembre 2014 Mohamed Tounsi (ISIMS) Programmation Orientée Objet Septembre 2014 1 / 16 Responsable

Plus en détail

UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION

UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION Patrick Bellot Télécom ParisTech telecom-paristech.fr 2009 1 Une Calculatrice Électronique 2 3 Notation polonaise inversée Notation infixée

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Programmation Visual Basic sous Excel

Programmation Visual Basic sous Excel 1 Programmation Visual Basic sous Excel Version provisoire Septembre 06 1 Introduction Excel était avant tout un tableur. Au fil des versions, il a su évoluer et intégrer des fonctionnalités qui le rendent

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

TP 1 : prise en main de C#. Net sous Visual Studio 2010

TP 1 : prise en main de C#. Net sous Visual Studio 2010 Année universitaire : 2014-2015 Responsable : Sonia LAJMI Niveau Matière 2 ème année MPIM Management des Contenus Multimédia TP 1 : prise en main de C#. Net sous Visual Studio 2010 Dans ce tout premier

Plus en détail

EXAMEN DE JAVA 2010-2011

EXAMEN DE JAVA 2010-2011 NOM : PRÉNOM : TP : G TP EXAMEN DE JAVA 2010-2011 Consignes : avec documents, mais sans téléphone, ordinateur ou autre moyen de communication. Durée : 2h Recommandations : Le code doit être écrit en JAVA

Plus en détail

IUT de Colmar - Département RT 1ière année. Numération

IUT de Colmar - Département RT 1ière année. Numération IUT de Colmar - Département RT 1ière année. Numération 1 Laurent MURA. SOMMAIRE 1. Les différents systèmes 2. Les différentes conversions 3. Quelques systèmes de codage 4. L arithmétique binaire 2 IUT

Plus en détail

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.

Plus en détail