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

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Cours1 +Cours 2 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

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

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

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

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

Support de Cours Christophe Dony Université Montpellier-II

Support de Cours Christophe Dony Université Montpellier-II Cours de base d Ingéniérie des applications objet. Généralités sur le langage Java - Modèle d exécution - Syntaxe Support de Cours Christophe Dony Université Montpellier-II 1 Le langage Java 1.1 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

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

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

Programmation Orientée Objet avec JAVA

Programmation Orientée Objet avec JAVA Programmation Orientée Objet avec JAVA Présenté par Abdoul Aziz Ciss Docteur en Cryptologie, Consultant ITSec Dept GIT EPT Email: aaciss@ept.sn Web : www.alekciss.com Tel: 77 451 92 95 Plan 1. Introduction

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

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

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java Nicolas Dumoulin nicolas.dumoulin@cemagref.fr Cemagref Laboratoire d ingénierie pour les systèmes complexes 2010 Notes aux lecteurs Ce document est un support de cours qui

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 à 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

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting Cours de Java Benjamin FAUCHER Cubis-Helios Consulting Cours 1 : Les bases du Langage Java 1/2 I. Introduction II. Compilation III. Rappel sur la POO IV. Les classes Java V. Syntaxe de base du Java Langage

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

JAVA Première approche

JAVA Première approche Année 2008-2009 JAVA Première approche Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Qu'est ce que Java? C'est le nom d'une technologie mise au point

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

Cours 1 : Introduction Générale + Objet

Cours 1 : Introduction Générale + Objet Organisation du cours Équipe pédagogique L2 S4 2009 : 2010 Programmation Objet Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet 10 cours de 1h30 o Jean-Claude MARTIN (MARTIN@LIMSI.FR)

Plus en détail

Commentaires Sur une ligne // Comme en C++, après un slash-slash int i; // commentaire jusqu à la fin de la ligne

Commentaires Sur une ligne // Comme en C++, après un slash-slash int i; // commentaire jusqu à la fin de la ligne 1 - Types et instructions de base Java 2 - Tableaux de types primitifs 3 - Méthodes statiques 1 2 Identificateurs Nommer les classes, les variables, les méthodes, Un identificateur Java est de longueur

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 +Cours 2 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

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

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

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

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

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

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15 Tabledesmatières 1 IntroductionaulangageJava 1 1.1 EnvironnementJava... 1 1.1.1 Compilation... 2 1.1.2 Interprétation... 2 1.2 Programmationorientée-objet... 2 1.2.1 Classe... 3 1.2.2 Objet... 4 2 Syntaxedulangage

Plus en détail

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

Plus en détail

Cours 1. Contenu du cours : " Premières applications. " Compilation, Exécution, Chemin. " Affichage et saisie. " Types de données. " Flux de contrôle

Cours 1. Contenu du cours :  Premières applications.  Compilation, Exécution, Chemin.  Affichage et saisie.  Types de données.  Flux de contrôle Cours 1 1 Contenu du cours : " Premières applications " Compilation, Exécution, Chemin " Affichage et saisie " Types de données " Flux de contrôle " Applets " Arrays " OO de base Edition Le fichier texte

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

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

Esnard Aurélien cours de Java ENSERB informatique. Sommaire

Esnard Aurélien cours de Java ENSERB informatique. Sommaire Sommaire Avertissement : Le présent cours fait référence à la version 1.2 de Java, aussi appelé Java 2. Sommaire 1 Sommaire 2 Chapitre 1 Les bases du langage Java 5 Les données 5 Les primitives 5 Table

Plus en détail

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International PRESENTATION DE JAVA Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références 1 Qu est-ce que java? Un langage de programmation orienté objets Une architecture de Virtual

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

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

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

Java Licence professionnelle CISI 2009-2010

Java Licence professionnelle CISI 2009-2010 Java Licence professionnelle CISI 2009-2010 Cours 10 : Type générique (c) http://manu.e3b.org/java/tutoriels/avance/generique.pdf 1 Introduction La programmation générique - nouveauté la plus significative

Plus en détail

1 Notions de base 1.1 Structure d'un programme

1 Notions de base 1.1 Structure d'un programme 1 Notions de base 1.1 Structure d'un programme Le langage C++ contient le langage C : tout programme écrit en C à la norme ANSI doit pouvoir être compilé par un compilateur C++. C++ fait la diérence entre

Plus en détail

Cours Langage JAVA. LO43 Automne 2005 Franck Gechter. Automne 2005 LO43 - Langage Java - Franck Gechter

Cours Langage JAVA. LO43 Automne 2005 Franck Gechter. Automne 2005 LO43 - Langage Java - Franck Gechter Cours Langage JAVA LO43 Automne 2005 Franck Gechter 1 Langage JAVA Plan du Cours Introduction Historique Conventions d éd écriture Notions de bases (Mots clefs, types primitifs, références,instructions,

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

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

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

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 10 : Packages / Contrôle d'accès / Encapsulation Jacques Bapst jacques.bapst@hefr.ch Unités de compilation Un programme Java est généralement

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

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

Java - Historique. Une introduction à Java. Premier exemple. Aperçu de Java. Processus d obtention d un exécutable. Compilation/interprétation

Java - Historique. Une introduction à Java. Premier exemple. Aperçu de Java. Processus d obtention d un exécutable. Compilation/interprétation Java - Historique Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

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

Les fondements du langage Java

Les fondements du langage Java Les fondements du langage Java Cours d initiation à la programmation en Java RM di Scala : révision du 05 Septembre 2004 392 pages Pour pouvoir s initier à Java avec ce cours et à peu de frais dans un

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

Java : éléments syntaxiques

Java : éléments syntaxiques Java : éléments syntaxiques Sylvain Sauvage 1 er avril 2001 Ce polycopié est largement inspiré des polycopiés Éléments de Java et Éléments de C++ de Jacques Madelaine et du document The Java Language Specification

Plus en détail

Précis de vocabulaire Orienté Objet

Précis de vocabulaire Orienté Objet Dernière Mise à jour : Mars 2007 Précis de vocabulaire Orienté Objet 1 Questions Expliquer et donner un exemple pour chacun des concepts suivants 1. Qu'est-ce qu'un objet? 2. Qu'est-ce qu'une classe? 3.

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

Types et instructions de base Java

Types et instructions de base Java Types et instructions de base Java Certains de ces transparents sont une reprise des transparents du cours "Comment JAVA? Java bien!" de P. Itey Philippe GENOUD UJF Septembre 2008 1 Identificateurs Nommer

Plus en détail

Introduction à Java VERSION 6. Borland JBuilder

Introduction à Java VERSION 6. Borland JBuilder Introduction à Java VERSION 6 Borland JBuilder Consultez le fichier DEPLOY.TXT situé dans le répertoire redist de JBuilder pour avoir la liste complète des fichiers que vous pouvez distribuer en accord

Plus en détail

Le Langage Java et le Monde des Objets

Le Langage Java et le Monde des Objets . p.1 Le Langage Java et le Monde des Objets Les principes de la modélisation Orientée Objet. Qu est-ce qu une classe?. Les types de base. Utiliser les classes. Les tentacules de Java. . p.2 Bibliographie

Plus en détail

Programmation Orientée Objet. Introduction à Java. Frédéric Mallet. http://deptinfo.unice.fr/~fmallet/

Programmation Orientée Objet. Introduction à Java. Frédéric Mallet. http://deptinfo.unice.fr/~fmallet/ Introduction à Java Frédéric Mallet http://deptinfo.unice.fr/~fmallet/ 2013-2014 F. Mallet -POO 1 Volume Horaire Programmation Orientée Objet Organisation du cours 12*1h30 de cours 12*1h30 de TD machine

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Les bases de la programmation en Java

Les bases de la programmation en Java Les bases de la programmation en Java Institut National Agronomique Paris-Grignon Juliette Dibie-Barthélemy mai 2005 U.E.R. d Informatique Plan Plan I. Introduction 5 II. La syntaxe du langage Java 11

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

Algorithmique Programmation

Algorithmique Programmation Algorithmique Programmation 2ème partie DUT en alternance CNAM 2007-2008 2 Table des matières 1 Premiers Pas en Programmation Objet : les Classes et les Objets 7 1.1 Définir une Classe........................................

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

Programmation multitâches avec les Threads

Programmation multitâches avec les Threads Programmation multitâches avec les Threads A. Introduction A.1. Programmation multitâche Tous les systèmes d'exploitation actuels ont la possibilité d'effectuer plusieurs tâches en simultané. En effet,

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

Chapitre 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

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

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

Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Introduction à JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Mais JAVA c est quoi? Langage OO Exécuté dans une Machine Virtuelle Possède un ensemble complet d API (réseau, graphique, sécurité,

Plus en détail

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs static static : usage Le rôle essentiel d un moule est de permettre la création d objets. mais un moule a également des caractéristiques Il en est de même pour une classe. Usage : La déclaration des attributs

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

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

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 07 : Chaînes de caractères Jacques Bapst jacques.bapst@hefr.ch Chaînes de caractères (String) En Java les chaînes de caractères sont

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

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Remise à niveau en programmation JAVA

Remise à niveau en programmation JAVA Remise à niveau en programmation JAVA Lotfi Chaari lotfi.chaari@enseeiht.fr 2013-2014 1 Introduction - Java est un langage de programmation orientée objet (POO) - Un programme Java est une série de classes

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

Objectif du cours. Bases de la programmation. Plan de cette partie

Objectif du cours. Bases de la programmation. Plan de cette partie Objectif du cours Bases de la programmation Université de Nice - Sophia Antipolis Richard Grin Version 1.2.5 24/9/11 http://deptinfo.unice.fr/~grin Introduction à la programmation orientée objet pour pouvoir

Plus en détail

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15 Table des matières Au sujet de l auteur 1 Introduction 3 édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe

Plus en détail

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

INF121: Algorithmique et Programmation Fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle INF121: Algorithmique et Programmation Fonctionnelle Cours 1: Identificateurs, types de base et fonctions Année 2013-2014 Identificateurs La notion d identificateur Un concept fondamental dans les langages

Plus en détail

Table des matières. iii

Table des matières. iii Fiches Java Alain Plantec Université de Bretagne Occidentale U.F.R. Sciences et Techniques Département Informatique mailto:alain.plantec@univ-brest.fr 2009-2012 ii Table des matières 1 Introduction 1 1.1

Plus en détail

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

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

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

Licence Fondamentale SMI (semestre 3)

Licence Fondamentale SMI (semestre 3) Cours Programmation I (chapitres 1&2) Licence Fondamentale SMI (semestre 3) Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2014/2015 2014/2015 Pr. Ben Mamoun 1 Plan du cours (1) 1. Introduction

Plus en détail

Types de données et objets

Types de données et objets Types de données et objets VL A D Y RA V E L O M A N A N A Licence 1 S2 Université Denis Diderot (P7). vlad@liafa.jussieu.fr LIAFA Bureau 6A13. 175, rue Chevaleret Ravelomanana Vlady Types de données et

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

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

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

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

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail. JAVA Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.com Historique JAVA est issu d'un projet de recherche chez SUN (fin

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

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/ JDOM Manipulation de XML avec JDOM et Java 1 JDOM C est quoi? JDOM est une API du langage Java Permet de manipuler des donnés XML plus simplement qu'avec les API classiques Son utilisation est pratique

Plus en détail