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

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

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

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

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

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

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

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

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

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

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

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

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

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

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

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

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

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

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

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

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

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

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

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

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

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

é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

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

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

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

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

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

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

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

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

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

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

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ Chapitres traités Langage de bas niveau Langage de bas niveau (langage machine) Pourquoi le codage binaire? Les composants à l'intérieur de l'ordinateur sont des composants

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

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

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 au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java HLIN406 - Janvier 2015 Le Java Development Kit offre un ensemble d outils de développement d applications Java. Pour utiliser ces outils, JDK ne propose pas d interface utilisateur, on doit donc écrire

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

Cours/tp n : 1 Prise en main

Cours/tp n : 1 Prise en main Cours/tp n : 1 Prise en main Avant-propos : Ce premier tp inaugure une série de plusieurs, sur le langage Java. A travers ces Tp vous découvrirez progressivement les bases de Java. Vous ne connaîtrez pas

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

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

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

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

3 Pseudo-code et algorithmes 26

3 Pseudo-code et algorithmes 26 TABLE DES MATIÈRES 1 Introduction à la programmation 1 1.1 Programme et langage de programmation 2 1.2 Étapes du développement des programmes 2 1.3 Notion d'algorithme 6 2 Notions de base 9 2.1 Constantes

Plus en détail

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

Plus en détail

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe...

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... Une classe hérite d'une autre classe par le biais du mot clé extends. Une classe ne peut hériter

Plus en détail

Introduction aux exercices en Java

Introduction aux exercices en Java Introduction aux exercices en Java Avant de commencer les séries proprement dites, nous allons voir quelques informations utiles concernant le langage de programmation principal de ce cours d'informatique

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-onventions Initiation à la programmation en Python Une commande Python sera écrite en caractère gras. Exemples : print("bonjour") max=input("nombre maximum autorisé :") Le résultat de l'exécution d'un

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

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

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

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

LMI 2. Programmation Orientée Objet POO - Cours1. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours1 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL CNRS UMR 8188 - Bureau C307 Facultè des Sciences - Univ. Artois Janvier 2011

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

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

Généralités Composants élémentaires d'un programme Instructions simples. JL Damoiseaux - Dpt R&T

Généralités Composants élémentaires d'un programme Instructions simples. JL Damoiseaux - Dpt R&T JAVA - I Généralités Composants élémentaires d'un programme Instructions simples 2 JAVA? Un langage de programmation (orienté objets) Une architecture basée sur une Machine Virtuelle Un ensemble très important

Plus en détail

Chapitre 2 : Représentation des nombres en machine

Chapitre 2 : Représentation des nombres en machine Chapitre 2 : Représentation des nombres en machine Introduction La mémoire des ordinateurs est constituée d une multitude de petits circuits électroniques qui ne peuvent être que dans deux états : sous

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

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

} 7 Variables (composantes)

} 7 Variables (composantes) Chapitre 4 Tableaux Jusqu ici, nous avons employé les variables pour stocker les valeurs individuelles de types primitifs : une variable de type int pour stocker un entier, une variable de type boolean

Plus en détail

TP 2 JAVA. public class test1{ public static void main(string arg[]){ code du programme }// main }// class

TP 2 JAVA. public class test1{ public static void main(string arg[]){ code du programme }// main }// class TP 2 JAVA La structure d'un programme Java Un programme Java n'utilisant pas de classe définie par l'utilisateur ni de fonctions autres que la fonction principale main pourra avoir la structure suivante

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

Langage Élémentaire Algorithmique Spécifications du langage

Langage Élémentaire Algorithmique Spécifications du langage Langage Élémentaire Algorithmique Spécifications du langage Lionel Clément Version provisoire Novembre 2012 Le but de ce projet est de livrer un compilateur pour un langage élémentaire algorithmique (Léa).

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

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

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

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

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

Les exceptions en Java

Les exceptions en Java Chapitre 6 Les exceptions en Java Lorsqu on conçoit un programme, on essaie évidemment qu il soit correct, c est-à-dire qu il fonctionne parfaitement dans les conditions prévues de son utilisation. L utilisateur

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

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

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

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

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

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

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

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

TP Compilation Analyse lexicale

TP Compilation Analyse lexicale TP Compilation Analyse lexicale Eric Ramat ramat@lisic.univ-littoral.fr 9 mai 2014 Durée : 6 heures 1 Introduction Le but de cet TP est de vous donner les bases nécessaires afin de pouvoir écrire votre

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

TP1. Outils Java Eléments de correction

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

Plus en détail

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

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

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

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

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

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

PROB Introduction au langage JAVA

PROB Introduction au langage JAVA PROB Introduction au langage JAVA EPFC ULB 1 BACHELIER en INFORMATIQUE de Gestion PRMT(1) 120p. LAPR(2) 120p. PR(1) PROB(10) 120p. PR(1) PRDV(4) 40p. PR(2 ou 9) COFI(20) 60p. GBDR(5) 120p. LAOG(9) 120p.

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

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

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

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

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

P.O.O. : Java TD n 1 Les bases du langage

P.O.O. : Java TD n 1 Les bases du langage E.P.U. GB4 (BIMB) Eclipse P.O.O. : Java TD n 1 Les bases du langage Eclipse est un IDE (Integrated Development Environment EDI en français). Il est développé par IBM, est gratuit et disponible pour la

Plus en détail