Le langage JAVA G. Baulieu Institut de Physique Nucléaire de Lyon Septembre 2009

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

Download "Le langage JAVA G. Baulieu Institut de Physique Nucléaire de Lyon Septembre 2009"

Transcription

1 Le langage JAVA G. Baulieu Institut de Physique Nucléaire de Lyon Septembre 2009

2 Quelques acronymes JDK : Java Development Kit SDK : Software Development Kit J2SE : Java 2 Standard Edition JRE : Java Runtime Environment API : Application Programming Interface

3 Points forts Simplicité : syntaxe ~C++ simplifié (pointeurs, fichiers d'entête, surcharge des opérateurs...) Orienté objet Fiabilité : gestion de la mémoire, compilateur puissant Portabilité : executable sur plusieurs systèmes Bibliothèque importante et documentée

4 Naissance de Java Java est un langage très récent : Projet Green (P. Naughton/J. Gosling Sun) Langage Oak 1996 : Java 1.0 Premiere version officielle 2004 : JDK 1.5 "Java 5.0" 2006 : JDK 1.6 "Java 6.0"

5 La machine virtuelle Code source Compilation Bytecode (pseudo code) Indépendant du système Interprétation Machine Virtuelle Génération Dépendant du système Langage machine

6 Notions fondamentales 1. Premiers pas 1. Structure d'un programme 2. Compilation / Execution 3. Localisation des classes 2. Types de données 3. Déclaration de variables 4. Les tableaux 5. Les opérateurs 7. Les structures de contrôle 1. Conditions (IF) 2. Boucles (FOR, WHILE, DO...WHILE) 3. SWITCH 4. Interruption de boucle 8. Les méthodes 1. Généralités 2. La méthode "main" 6. Les conversions de type

7 1.1 Structure d'un programme Fichier PremiereClasse.java /* Premier exemple de programme */ public class PremiereClasse { // Fonction principale public static void main(string[] args) { System.out.println("Premier programme!"); } } Commentaires entre /* et */ ou ligne précédée de // Déclaration de la classe Fonction principale

8 1.2 Compilation d'un programme Le fichier doit porter le nom de la classe Dans notre exemple : PremiereClasse.java Compilation : $ javac PremiereClasse.java Génère un fichier PremiereClasse.class Execution : $ java PremiereClasse

9 1.3 Localisation des classes Par défaut : uniquement le répertoire courant Ajout de répertoires Par l'option classpath : $ java classpath./classes/ PremiereClasse Par la variable d'environnement CLASSPATH : $ export CLASSPATH=./classes/ $ java PremiereClasse

10 2. Types de données Java est un langage fortement typé 8 types primitifs: Entiers byte 8 bits -128 à 127 short 16 bits à int 32 bits à long 64 bits à

11 2. Types de données (2) Virgule flottante float 32 bits 6 décimales significatives double 64 bits 15 chiffres significatifs Le type char (16 bits) Une unité de code UTF 16 Le type boolean (1 bit) Deux valeurs : true et false Il n'existe pas de type chaîne de caractères. On utilisera la classe String.

12 3. Déclaration de variable Indication du type suivi du nom de la variable: int compteur; double aire; La variable doit ensuite être initialisée: compteur = 0; aire = 3.54; On peut déclarer et initialiser une variable dans la même instruction: int compteur = 0; Le mot clé final permet de déclarer une constante : final int COMPTEUR = 0;

13 4. Les tableaux Structure permettant de stocker une série de valeurs du même type. Déclaration et initialisation: int[] tab; tab = new int[10]; > déclare la variable tab et lui alloue l'espace mémoire pour 10 valeurs de type int. Remarque : "int tab[]" est également valable. Affectation: tab[5] = 3; > Affecte la valeur 3 à la sixième case du tableau (l'indice commence à 0!).

14 4. Les tableaux (2) Lecture : int i = tab[5]; > La variable i contient la valeur de la sixième case du tableau. Raccourci: int[] tab = {3,24,5,3,6,54,7,1,6,45}; > Déclare, initialise et affecte les valeurs au tableau tab.

15 4. Les tableaux (3) Taille du tableau: int taille = tab.length; Copie d'un tableau : Copie de la variable : int[] secondarray = tab; secondarray[0] = 33;//tab[0] vaut 33!!! Utilisation de la fonction arraycopy(from,fromidx,to, toidx, count) int[] secondarray = new int[5]; System.arraycopy(tab, 0, secondarray, 0, 5);//copie les 5 premiers éléments de tab dans secondarray attention à la taille de secondarray! Tri d'un tableau : int[] tab = {3,24,5,3,6,54,7,1,6,45}; java.util.arrays.sort(tab);//tab contient maintenant {1,3,3,5,6,6,7,24,45,54}

16 5. Opérateurs Affectation : = Addition, soustraction et multiplication : +,, * Division : / Si appelé avec 2 entiers : division entière Sinon division en virgule flottante On peut combiner opérateurs arithmétiques et opérateurs d'affectation : +=, =, *=... int n = 2; n += 3; // n vaut 5

17 5. Opérateurs (2) Incrémentation, décrémentation : ++, int m = 1; m++; //m vaut 2 int n = 2; int a = 2 * ++m; //a vaut 6, m vaut 3 int b = 2 * n++; //b vaut 4, n vaut 3 Opérateurs relationnels : ==,!=, >, <, >=, <= Opérateurs booléens 'ou', 'et', 'non' :, &&,! Opérateurs binaires 'ou', 'et', 'ou exclusif', 'non', décalages :,&,^,!, <<, >>

18 6. Conversions Si besoin, les valeurs peuvent être converties automatiquement : int i = 123; long l = i; Attention : dans certains cas cela peut entraîner une perte de précision: int vers float long vers float long vers double

19 6. Conversions (2) On peut faire une conversion explicite : double d = 4.321; int i = (int)d; // i vaut 4 Autre exemple : int i=3; double d1 = 5/i; // d1 vaut 1.0! double d2 = 5/(double)i; // d2 vaut

20 7.1 Conditions IF Syntaxe de l'instruction conditionnelle: if (condition) instruction La condition est une expression booléenne, indiquée entre parenthèses. L'instruction peut être unique, ou on peut en placer plusieurs dans un bloc d'instructions (instructions entre accolades). Exemples if(x<0) x=0; if(y==0){ x=0; z=0; }

21 7.1 Conditions(2) ELSE Instruction else: if (condition) instruction1 else instruction2 if(x<0) negatif=true; else negatif=false; Instruction else if Il existe également une autre syntaxe parfois utile: (condition)?instruction1:instruction2 System.out.println("X est "+((x<0)?"negatif":"positif"));

22 7.2 Les boucles FOR Boucle gérée par un compteur: for(initialisation;test;mise à jour) instruction(s); Exemple : for (int i=0;i<10;i++) System.out.println(i); > Affiche les valeurs de i de 0 à 9.

23 7.2 Les boucles (2) FOR EACH Simplification pour les tableaux et collections Version classique ('tab' est un tableau de doubles): for (int i=0;i<tab.length;i++) System.out.println(tab[i]); Version for each : for (double element:tab) System.out.println(element);

24 7.2 Les boucles (3) WHILE Boucle tant que la condition est vraie. while(condition) instruction(s); Exemple : while(nbsucre<nbdesire) nbsucre++; La variable utilisée dans la condition doit être modifiée dans l'action...

25 7.2 Les boucles (4) DO...WHILE Répète l'instruction jusqu'à ce que la condition soit vraie. do instuction(s); while(condition); Les instructions sont exécutées au moins une fois. Exemple do{ } System.out.println("Saisir une valeur positive : "); //affectation d'une valeur saisie par l'utilisateur dans la variable double "reponse" while(reponse<0);

26 7.3 L'instruction SWITCH Permet de gérer les différentes valeurs prisent par une variable entière. Syntaxe : switch(variable){ case 1: }... break; case 2:... break; default:... break;

27 7.4 Interruption de boucle L'instruction break permet de sortir immédiatement d'une boucle. L'instruction continue court circuite la fin de boucle. while(true){... if(stop) } break;... if(shortcut) continue;...

28 7.4 Interruption de boucle (2) On peut également sortir de boucles imbriquées en utilisant un label: label_name: while(...){... while(...){ } } if(stop) break label_name; // sort des boucles à utiliser avec parcimonie...

29 8.1 Les méthodes Une méthode est une suite d'instructions permettant de réaliser des traitements sur les données. Déclaration : type_de_retour Nom(liste d'arguments){ Corps_de_la_méthode return valeur_de_retour } int addition(int a, int b){ int resultat = a+b; return resultat; } Si la méthode ne retourne rien, on utilise le type de retour void. Appel de la méthode : int somme = addition(3,5);//somme vaut 8 après l'appel

30 8.2 La méthode main Point d'entrée dans le programme (obligatoire!) Prototype: public static void main(string[] args) {... } Le tableau args contient les arguments passés dans la ligne de commande : 1er argument : args[0] 2ème argument : args[1]...

31 Programmation orientée objet 1. Introduction 1. Vocabulaire 2. Exemple : la classe Color 3. Utilisation des paquetages 4. La classe String 3. Ajouter une classe dans un paquetage 4. Documenter le code : JAVADOC 5. Les fichiers JAR 6. Un outil de construction : ANT 5. Les classes Integer, Double Création d'une classe 1. Les champs 2. Les constructeurs 3. Libération de la mémoire 4. Les méthodes 5. Le mot clé this 6. L'instruction static

32 1. Introduction Décomposer le programme en modules indépendants : les objets. Chaque objet contient sa structure de données (les champs) et les traitements possibles sur ces données (les méthodes). Modifier la structure des données ou le traitement de celles ci ne modifie pas le programme général.

33 1.1 Vocabulaire Une classe contient la description des données d'un objet ainsi que les traitements pouvant être effectués sur celui ci (= le moule). On peut ensuite créer une ou plusieurs "instance(s) de la classe" (= les biscuits). Les données de l'objet ne seront pas accessibles à l'utilisateur : c'est l'encapsulation. Si les données de l'objet sont incohérentes, l'erreur est obligatoirement dans la classe! Nul besoin d'aller chercher partout dans le programme...

34 1.2 Exemple : la classe Color L'API java met à notre disposition la classe java.awt.color Création d'une instance de la classe : java.awt.color macouleur = new java.awt.color(255,255,255);//création d'une instance contenant la couleur blanche

35 1.3 Interlude : Les paquetages But : Structurer les classes Faciliter la recherche d'une classe Eviter les confusions entre classes de même nom Modifier la visibilité d'une classe

36 1.3 L'instruction import Permet de créer un raccourci pour faire référence aux classes d'un paquetage: import java.awt.color; class [...]{ [...] Color macouleur = new Color(255,255,255); On peut également utiliser : import java.awt.*;...pour pouvoir accéder à toutes les classes du paquetage java.awt.

37 1.2 Exemple : la classe Color(2) On peut créer différentes instances de la même classe: Color blanc = new Color(255,255,255); Color rouge = new Color(255,0,0); Les 2 objets ont une existence propre! On peut appeler différentes méthodes sur les objets: int valeurrouge = rouge.getred(); // valeurrouge vaut 255 Appel de la méthode getred() appartenant à la classe Color sur l'objet 'rouge'.

38 1.2 Exemple : la classe Color(3) Le programme suivant : Color rouge = new Color(255,0,0); System.out.println(rouge); Color rougesombre = rouge.darker(); System.out.println(rougeSombre); Affiche : java.awt.color[r=255,g=0,b=0] java.awt.color[r=178,g=0,b=0] Comment connaître les méthodes d'une classe? Grâce à la documentation de la classe!

39 1.2 Exemple : la classe Color(4)

40 1.4 La classe String Déclaration : String vide = new String(""); // ou String vide = ""; String exemple = "Chaine de caractères"; Longueur : int taille = exemple.length(); Concaténation : String nouvellechaine = "Exemple d'une "+exemple; Sous chaines : String petitechaine = exemple.substring(0,7); Egalité : boolean sontegales = exemple.equals("test");

41 1.5 Classes Integer, Double... Il est parfois utile de pouvoir utiliser les types de base comme des objets. L'API Java dispose de classes wrapper: Integer objectint = new Integer(5); La conversion est faite automatiquement : int i = objectint; //equivalent à objectint.intvalue() Ces classes permettent aussi la conversion de chaines de caractères : int i = Integer.parseInt( 234 );

42 2. Création d'une classe Une classe est composée : De champs : données propres à l'objet. De constructeurs : méthodes permettant d'instancier un objet (création de l'objet). De methodes : services offerts par la classe pour manipuler l'objet.

43 2.1 Les champs de la classe Ce sont les données qui seront contenues dans une instance de la classe. Déclaration: class Personne{ private String nom; private String prenom;... }

44 2.1 Les champs de la classe (2) Portée des champs : private indique que le champ n'est accessible que de l'intérieur de la classe (encapsulation). On pourrait (mais on ne le veut probablement pas!) déclarer les champs: public : toujours visible par tous. protected : visible pour le paquetage et les classes filles (voire héritage). Les méthodes de la classe utilisent les mêmes modificateurs de visibilité.

45 2.1 Les champs de la classe (3) Initialisation explicite On peut initialiser les champs de la classe au moment de la déclaration : class Personne{ private String nom = ""; private String prenom = "";... } Cette affectation est effectuée avant l'appel du constructeur.

46 2.2 Les constructeurs Méthode permettant d'instancier un objet. Le constructeur alloue la mémoire pour les champs de l'objet et les initialise. Le constructeur est une méthode ayant le même nom que la classe : public Personne(){ nom = "X"; prenom = "Toto"; } Cette méthode est appelée lors de l'instruction: Personne p = new Personne();

47 2.2 Les constructeurs (2) Si aucun constructeur n'est défini, java crée un constructeur par défaut (sans argument). Ce constructeur initialise les champs de la classe : numérique : 0 booléen : false classe : null (inexistant) Pour des raisons de lisibilité, il est préférable d'écrire explicitement un constructeur.

48 2.2 Les constructeurs (3) On peut définir plusieurs constructeurs pour une même classe (surcharge): public Personne(){ nom = "X"; prenom = "Toto"; } public Personne(String n, String p){ nom = n; prenom = p; } Appel : Personne p1 = new Personne();// Toto X Personne p2 = new Personne("Dupont", "Jean");// Jean Dupont

49 2.3 Libération de la mémoire La libération de la mémoire est effectuée par java par l'intermédiaire du ramasse miettes (garbage collector). Il n'y a donc pas de destructeurs. Si une ressource doit absolument être libérée il faut explicitement appeler une méthode écrite dans ce but.

50 2.4 Les méthodes de la classe Fournissent des fonctionnalités à la classe. Les méthodes seront appelées par une instance de la classe : Personne p = new Personne(); String nom = p.getnom(); Implémentation : public String getnom(){ return nom; }

51 2.4 Les méthodes de la classe (2) Les méthodes d'une classe ont accès aux champs privés de la classe et peuvent donc les modifier. public void setnom(string n){ } nom = n; Personne p = new Personne(); p.setnom("dupont");//impossible si setnom etait private! Rappel : une méthode peut être définie comme public, private ou protected Implémenter la méthode String tostring() permet d'afficher l'objet avec System.out.println(); Implémenter la méthode Object clone() permet de renvoyer une copie de l'objet.

52 2.5 Le mot clé this Fait référence à l'instance courante de la classe: void setnom(string nom){ } this.nom = nom; Il peut également être utilisé pour appeler un constructeur depuis un autre constructeur : public Personne(){ } this("dupuis", "Paul"); // Premiere instruction!! // Le constructeur Personne(String, String) est appelé

53 2.6 L'instruction static Permet de définir des variables et méthodes de classe. Une variable statique est commune à toutes les instances de la classe. Une méthode (ou une variable) statique peut être appelée sans instance, avec le nom de la classe : double r = Math.sqrt(81);// appel de la méthode statique sqrt() de la classe Math. Une méthode statique ne peut accéder qu'aux champs statiques de la classe.

54 3. Ajouter une classe dans un paquetage Syntaxe : package Formation.Java.Exemples; class MaClasse{...} La classe MaClasse se trouve dans le paquetage "Formation.java.Exemples" : le fichier MaClasse.class devra donc se trouver dans le répertoire : [...]/Formation/Java/Exemples/

55 4. Documenter le code : Javadoc Outil permettant de générer de la documentation à partir du code source. Nécessite des commentaires dans le code: Commentaires situés entre /** et */ Documentation d'une classe: /** Commentaire décrivant la Jules Dupont */ public class MaClasse {...}

56 4. Javadoc (2) Documentation d'un méthode: /** Commentaire décrivant la a Description de l'argument b Description de l'argument Le résultat de la méthode */ public int addition(int a, int b){...} Génération: % javadoc author version d./doc/ MaClasse.java

57 4. Javadoc (3)

58 5. Créer une archive : les fichiers JAR Java ARchive Permet de stocker tous les fichiers (.class, images, sons...) dans un seul fichier. Peut être compressé. Création de l'archive : % jar cf NomArchive.jar Fichiers

59 5. Les fichiers JAR (2) On peut ajouter un fichier MANIFEST.MF qui contient des informations sur l'archive : Manifest Version: 1.0 Main Class: Formation/MaClasse Création de l'archive: % jar cfm NomArchive.jar MANIFEST.MF Fichiers On peut alors lancer le programme par la commande : % java jar NomArchive.jar

60 6. Un outils de construction : ANT Il est fastidieux de devoir taper de longues commandes à chaque modification. Dans un projet conséquent, il peut y avoir plusieurs commandes à exécuter pour compiler, créer des archives, générer la documentation, créer une distribution... ANT (~make) permet de simplifier ces procédures en définissant des taches pouvant dépendre les une des autres.

61 6. Un outils de construction : ANT (2) On défini des taches dans le fichier build.xml : <project name="formation" default="compile" basedir="."> <property name="src" location="src"/> <property name="build" location="classes"/> <target name="compile" depends="" description="compile the source " > <javac srcdir="${src}" destdir="${build}"/> </target> </project> On peut ensuite exécuter une tache avec la commande : % ant nom_de_la_tache Exemple : % ant compile

62 L'héritage 1. Introduction 1. Concept 2. Exemple 2. Syntaxe 6. Les interfaces 1. Utilisation 2. Création 7. Le clonage 1. Le mot clé extends 2. Les constructeurs 3. Les méthodes 4. Interdire l'héritage 3. Le polymorphisme 4. Classes et méthodes abstraites 5. La classe Object

63 1.1 Concept L'idée est de pouvoir créer de nouvelles classes à partir de classes existantes. Exprime la relation "est un". Par exemple, un lion est un animal : la classe 'Lion' peut donc hériter de la classe 'Animal'. Elle dispose ainsi automatiquement de toutes les données et services de la classe 'Animal'. La classe 'Animal' est appelée classe mère ou superclasse et la classe 'Lion' classe fille ou sous classe.

64 1.2 Exemple Le lion et l'oiseau sont des animaux : ils ont une taille, une couleur, peuvent manger et dormir. Seul le lion peut rugir et seul l'oiseau peut voler. On peut ajouter des champs spécifiques à la classe fille.

65 1.2 Exemple (2) La classe Animal : import java.awt.color; class Animal{ private Color couleur; private int taille; public Animal(){...} public Animal(Color c, int t){...} } public void Manger(){...} public void Dormir(){...} public Color getcouleur(){...} public int gettaille(){...}

66 2.1 Le mot clé extends On utilise le mot clé extends pour marquer l'héritage : class Lion extends Animal{ private Color couleurcriniere; } public void Rugir(){...} public void setcouleurcriniere(color c){...} public Color getcouleurcriniere(){...} Utilisation : Lion leo = new Lion(); leo.rugir(); leo.dormir(); On ne peut hériter que d'une seule classe!

67 2.2 Les constructeurs Constructeur par défaut : public Lion(){ } super(); couleurcriniere = new Color(125, 125, 125); Le mot clé super permet d'appeler un constructeur de la classe mère. Autre constructeur : public Lion(Color c, int t, Color criniere){ } super(c, t); couleurcriniere = new Color(criniere.getRed(), criniere.getgreen(), criniere.getblue()); L'appel au constructeur de la classe mère est toujours la première instruction du constructeur de la classe fille.

68 2.3 Les méthodes La classe fille hérite de toutes les méthodes de la classe mère. Par exemple si la classe Animal contient la méthode : public String tostring(){ } return "Je mesure "+taille+" cm et je suis de couleur "+couleur; On peut alors automatiquement écrire : String description = leo.tostring(); // leo est une instance de Lion Je mesure X cm et je suis de couleur [color]" Ceci permet de réduire la taille du code à écrire... ou à corriger! Cependant on peut souhaiter spécialiser la méthode.

69 2.3 Les méthodes (2) : Spécialisation On peut redéfinir une méthode existante de la classe mère pour mieux l'adapter à la classe fille : public String tostring(){ } String description = "Je suis un lion avec une criniere "+CouleurCriniere+"\n"; return description+super.tostring(); Le résultat de la méthode tostring() de la classe Lion est alors différent de celui de la classe Animal : String description = leo.tostring(); // leo est une instance de Lion "Je suis un lion avec une criniere [color] Je mesure X cm et je suis de couleur [color]"

70 2.4 Interdire l'heritage Il est possible d'interdire à tout autre programmeur d'hériter de votre classe : on utilise alors le mot clé final. final class Lion extends Animal{...}... Il est maintenant impossible de créer une classe héritant de Lion. De la même façon, on peut empêcher la redéfinition d'une méthode par les classe filles : public final String tostring(){...} // Dans la classe mère Il est maintenant impossible aux classes filles de redéfinir la méthode tostring().

71 3 Le polymorphisme L'héritage exprime la relation "est un". Dans notre exemple, un lion est un animal tout comme un oiseau l'est également. Il est donc logique de pouvoir écrire : Animal albert = new Lion(); Animal gustave = new Oiseau(); On peut ensuite appeler n'importe quelle méthode définie dans la classe Animal : System.out.println(albert.toString()); System.out.println(gustave.toString()); Dans ce cas, le compilateur va créer une liaison dynamique permettant de choisir la méthode au moment de l'execution : System.out.println(albert.toString()); // méthode Lion.toString() System.out.println(gustave.toString()); // méthode Oiseau.toString()

72 3 Le polymorphisme (2) On peut naturellement définir un tableau : Animal[] animaux = new Animal[2]; animaux[0] = new Lion(); animaux[1] = new Oiseau(); et afficher le contenu de ce tableau : for(animal a : animaux){ System.out.println(a); // méthode tostring() } "Je suis un lion avec une criniere [color] Je mesure X cm et je suis de couleur [color] Je suis un oiseau Je mesure X cm et je suis de couleur [color]"

73 3 Le polymorphisme (3) Ayant un tableau d'objets 'Animal', on ne peut appeler que les méthodes de la classe Animal : animaux[0].dormir(); // OK animaux[0].rugir(); // NON!! N'existe pas dans la classe Animal! Si on veux pouvoir utiliser toutes les fonctionalités de la classe, on doit effectuer un transtypage : ((Lion)animaux[0]).Rugir(); // Compilation OK Par contre rien ne prouve que animaux[0] soit une instance de Lion. On peut donc avoir une erreur à l'execution! Pour l'éviter : if(animaux[o] instanceof Lion) ((Lion)animaux[0]).Rugir(); // Uniquement si on a un Lion!

74 Classes abstraites 4 Classes et méthodes abstraites A mesure que l'on élabore la hiérarchie des classes, certaines peuvent ne plus décrire des objets réels. Pour notre exemple, la classe 'Animal' correspond elle à un objet utile, ou simplement à un concept abstrait? Il est possible de déclarer une classe comme "abstraite", ceci aura 2 conséquences : Il n'est plus possible de créer une instance de la classe. La classe peut comporter des méthodes abstraites. Méthodes abstraites Une méthode abstraite est déclarée dans la classe mère mais n'est implémentée que dans les classes filles.

75 4 Classes et méthodes Déclaration d'une classe abstraite : abstract class Animal{...} abstraites (2) Déclaration d'une méthode abstraite : public abstract String tostring(); // pas d'implémentation Conséquence : toutes les classes héritant de Animal, si elles ne sont pas abstraites elles même, doivent implémenter la méthode tostring().

76 5 La classe Object Si une classe n'hérite pas explicitement d'une autre, alors elle hérite de la classe Object. Par conséquent, toutes les classes java héritent directement ou indirectement de la classe Object. Il est donc toujours possible d'écrire : Object o = new NomDeLaClasse(...);

77 5 La classe Object (2) La classe Object propose différentes méthodes dont vont hériter toutes les classes java: String tostring() : retourne une description de la classe. boolean equals() : comparaison de deux objets Object clone() : retourne une copie de l'objet Ces méthodes doivent souvent être redéfinies au niveau de la classe pour être pertinentes. Voire la documentation de la classe Object pour la liste complète des méthodes...

78 6.1 Les interfaces Utilisation Une interface est un ensemble de règles auxquelles doit se conformer une classe. C'est une sorte de cahier des charges. Exemple : La méthode sort() de la classe Arrays permet de trier un tableau d'objets. Condition : les objets doivent provenir d'une classe qui implémente l'interface Comparable : public interface Comparable<T> { } int compareto(t other);

79 6.1 Les interfaces Utilisation (2) Modifons la classe Animal pour implementer l'interface Comparable : class Animal implements Comparable<Animal>{// on peut implémenter plusieurs interfaces [...] public int compareto(animal other){ } } if (taille>other.taille) return 1; if (taille<other.taille) return 1; return 0; On peut maintenant écrire : Comparable c = new Lion(); // correct Lion[] tab = new Lion[10];//... on remplit le tableau Arrays.sort(tab);

80 6.1 Les interfaces Utilisation (3) Quelques propriétés des interfaces : Elles ne peuvent pas contenir de champs, mais elles peuvent contenir des constantes Elles ne peuvent pas être instanciées On peut cependant déclarer des variables interfaces (ces variables références des objets de classes implémentant l'interface) Une interface peut hériter d'une autre interface Une classe peut implémenter plusieurs interfaces

81 6.2 Les interfaces Création Ecrire une interface est très simple, il suffit de lui donner un nom et d'énumérer les méthodes. Par exemple, nous pouvons créer une interface Dessinable qui garantit que les classes l'implémentant auront une méthode public void Dessine(Graphics g) : public interface Dessinable { } public void Dessine(Graphics g); Comme pour une classe, ce code devra être placé dans un fichier nommé Dessinable.java.

82 7 Le clonage Le clonage permet d'obtenir une copie en profondeur d'un objet par un appel à la méthode clone(). Cependant cette méthode est protected dans la classe Object! Il faut donc la redéfinir dans la classe fille : public Object clone() throws CloneNotSupportedException{ Personne p = (Personne)super.clone(); p.birthday = (Date)this.birthday.clone(); return p; }

83 7 Le clonage (2) Afin d'éviter une erreur lors du clonage (une classe fille qui ne redéfinit pas correctement la méthode clone()), il est impératif d'implémenter l'interface Cloneable pour indiquer que notre classe gère le clonage. C'est une interface de balisage (elle ne contient aucune méthode). class Personne implements Cloneable{... } Tout appel à la méthode clone() à partir d'une classe n'implémentant pas Cloneable générera une exception CloneNotSupportedException.

84 Gestion des exceptions 1.Envoi d'une exception 2.Réception d'une exception 3.Le mot clé finally 4.Créer ses propres exceptions

85 1. Envoi d'une exception Si une méthode rencontre une situation qu'elle ne sait pas gérer, elle peut envoyer une exception. public void openfile(string name) throws FileNotFoundException{ } [...le fichier n'existe pas] throw new FileNotFoundException(); [...] Lors de l'envoi d'une exception, on sort de la méthode immédiatement. Celle ci ne retourne pas de valeur.

86 2. Réception d'une exception La méthode pouvant envoyer une exception doit être appelée à l'interieur d'un bloc try...catch: try{ }... openfile(filename);... catch(filenotfoundexception e){ } System.out.println( Aucun fichier trouvé! ); Si exception On peut enchaîner plusieurs blocs catch pour gérer plusieurs types d'exception.

87 3. Le mot clé finally On peut également utiliser un block finally qui sera executé qu'une exception soit levée ou non : try{ } openfile(filename); catch(filenotfoundexception e){...} catch(...){...} finally{...} Le bloc finally est exécuté : soit après le bloc try si aucune exception n'est envoyée soit après l'un des blocs catch si une exception a été envoyée. même si une instruction return a été rencontrée.

88 4. Créer ses propres exceptions Pour créer une nouvelle classe pouvant être utilisée comme exception, il suffit d'hériter de la classe Exception ou d'une de ses classes filles: public class MyException extends Exception { } public MyException(){} public MyException(String message) { } super(message); On pourra maintenant utiliser la classe MyException de la même facon que la classe FileNotFoundException. Le compilateur force le traitement des exceptions sauf pour les RuntimeException.

89 Introduction aux interfaces graphiques 1. AWT et Swing 2. Les classes de base 1. Créer une fenêre : JFrame 2. Ajouter un contenu : JPanel 3. JLabel 4. JTextField 5. JButton 6. Autres composants 3. Gestion des événements 1. Créer un écouteur 2. Classes internes 3. Lier un composant à un écouteur 4. Interfaces listener utiles

90 1. AWT et Swing Abstract Window Toolkit (AWT) : première bibliothèque graphique de Java Appel des fonctions natives du système d'exploitation La bibliothèque AWT est contenue dans la package java.awt.* Swing : Standard depuis Java 2 Dessine tous les composants dans une fenêtre La bibliothèque Swing est contenue dans la package javax.swing.*

91 2.1 Créer une fenêtre : JFrame La classe JFrame permet de créer une fenêtre graphique : import javax.swing.*; public class MyFrame extends JFrame { public static final int HEIGHT = 250; public static final int WIDTH = 300; public MyFrame(String title){ super(title);//constructeur de JFrame setsize(width, HEIGHT); }} public class Launcher{ public static void main(string args[]){ }} MyFrame mf = new MyFrame("Nom de la fenetre"); mf.setdefaultcloseoperation(jframe.exit_on_close); mf.setvisible(true);

92 2.1 Créer une fenêtre : JFrame (2) JFrame : fonctions utiles settitle(string t) : donne un titre à la fenêtre. setsize(int w, int h) : stipule la taille de la fenêtre en pixels. setlocation(int x, int y) : stipule l'emplacement de la fenêtre. setdefaultcloseoperation(constante) : comportement du programme lors de la fermeture de la fenêtre. setvisible(boolean b) : affiche ou cache la fenêtre. getcontentpane() : retourne la couche "contenu" de la fenêtre.

93 2.2 Ajouter un contenu : JPanel Un JPanel est un composant sur lequel on peut dessiner et qui peut egalement contenir d'autres composants. Pour déssiner sur un JPanel, il faut surcharger la méthode void paintcomponent(graphics g). import javax.swing.*;import java.awt.*; public class MyPanel extends JPanel { public void paintcomponent(graphics g){ }} super.paintcomponent(g); g.fillrect(20,20,25,50); public class Launcher{ public static void main(string args[]){ }} MyFrame mf = new MyFrame("Nom de la fenetre"); mf.setdefaultcloseoperation(jframe.exit_on_close); mf.getcontentpane().add(new MyPanel()); mf.setvisible(true);

94 2.2 Ajouter un contenu : JPanel (2) Pour ajouter d'autres composants dans un JPanel, on lui affecte un gestionnaire de mise en forme. On dispose de plusieurs gestionnaires possibles : FlowLayout (défaut de JPanel) : Tous les composants sont ajoutés horizontalement jusqu'à ce qu'il n'y ait plus de place sur la ligne, on commence alors une nouvelle ligne. BorderLayout (défaut de JFrame) : L'espace est divisé en 5 zones (Nord, Sud, Est, Ouest, Centre) et on doit affecter les composants à l'une de ces zones. GridLayout : On divise l'espace en lignes et colonnes, un composant est affecté à la case (x,y). GridBagLayout : Similaire à GridLayout, mais les cases peuvent avoir des tailles différentes.

95 2.3 JLabel Un JLabel est un composant permettant d'afficher du texte qui ne pourra pas être modifié par l'utilisateur. import javax.swing.*; import java.awt.*: public class MyInterface{ private JLabel titre; public MyInterface(){ }} MyFrame mf = new MyFrame("Nom de la fenetre"); mf.setdefaultcloseoperation(jframe.exit_on_close); JPanel j = new JPanel(); j.setlayout(new BorderLayout());//definition du gestionnaire titre = new JLabel("Un titre pour la fenetre", JLabel.CENTER); j.add(titre, BorderLayout.NORTH); mf.getcontentpane().add(j); mf.setvisible(true);

96 2.4 JTextField Un JTextField est un composant permettant à l'utilisateur de saisir du texte. public class MyInterface{ private JLabel titre; private JTextField text; public MyInterface{ MyFrame mf = new MyFrame("Nom de la fenetre"); JPanel mainpanel = new JPanel(); mainpanel.setlayout(new BorderLayout());//definition du gestionnaire titre = new JLabel("Saisir puis valider : ", JLabel.CENTER); text = new JTextField(10); JPanel saisiepanel = new JPanel(); saisiepanel.add(titre); saisiepanel.add(text); mainpanel.add(saisiepanel, BorderLayout.NORTH); mf.getcontentpane().add(mainpanel); mf.setdefaultcloseoperation(jframe.exit_on_close); mf.setvisible(true); }}

97 2.5 JButton Un JButton permet d'afficher un bouton sur lequel l'utilisateur pourra cliquer. private JLabel titre; private JTextField text; private JButton bouton; public MyInterface{ } MyFrame mf = new MyFrame("Nom de la fenetre"); JPanel mainpanel = new JPanel(); mainpanel.setlayout(new BorderLayout());//definition du gestionnaire titre = new JLabel("Saisir puis valider : ", JLabel.CENTER); text = new JTextField(10); bouton = new JButton("Quitter"); JPanel saisiepanel = new JPanel(); saisiepanel.add(titre); saisiepanel.add(text); mainpanel.add(saisiepanel, BorderLayout.NORTH); mainpanel.add(bouton, BorderLayout.SOUTH); mf.getcontentpane().add(mainpanel); mf.setdefaultcloseoperation(jframe.exit_on_close); mf.setvisible(true);

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

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

Interfaces graphiques avec l API Swing

Interfaces graphiques avec l API Swing Interfaces graphiques avec l API Swing Les Swing Les classes graphiques Swing dérivent de la classe JComponent, qui hérite ellemême de la classe AWT (Abstract Window Toolkit). Tous les composants Swing

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

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

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

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

Plus en détail

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

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

Plus en détail

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

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

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

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

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

Plus en détail

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

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

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

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

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

Programmation par les Objets en Java

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

Plus en détail

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

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

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

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

Plus en détail

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

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

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

Plus en détail

Java Licence Professionnelle CISII, 2009-10

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

Plus en détail

Java Licence Professionnelle 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

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

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

Plus en détail

Cours 1 : 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

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Plus en détail

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

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

Plus en détail

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

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

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

Introduction au langage Java

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

Plus en détail

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

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

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

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

Bases Java - Eclipse / Netbeans

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

Plus en détail

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

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

Plus en détail

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

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

Chapitre 2. Classes et objets

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

Plus en détail

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

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

Plus en détail

Apprendre Java en 154 minutes

Apprendre Java en 154 minutes Apprendre Java en 154 minutes Tutorial Java 1.6 - HESB-TI Stéphanie Calderara José R. Beuret Quentin Cosendey Mai 2008 Table des matières 1 Objet, classe et modificateur 3 1.1 Le premier pas..........................

Plus en détail

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

JAVA TD0. Prise en main du langage Environnement de base JAVA 1 JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []

Plus en détail

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 ) P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

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

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

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

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

Développement Logiciel

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

Plus en détail

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

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

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

Plus en détail

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 2 e édition JAVA 5 et 6 Jérôme Bougeault TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 Classes et objets Les constructeurs Propriétés Les méthodes L héritage Les interfaces Les relations

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

Java c est quoi? Java pourquoi?

Java c est quoi? Java pourquoi? Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

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

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

Plus en détail

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

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

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

Plus en détail

Java 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

Programmation Orientée Objets Le Langage JAVA

Programmation Orientée Objets Le Langage JAVA Module IP1 Programmation Orientée Objets Le Langage JAVA Amaury Habrard Université de Saint-Etienne amaury.habrard@univ-st-etienne.fr Mis à jour par François-Xavier Dupé Université d Aix-Marseille francois-xavier.dupe@lif.univ-mrs.fr

Plus en détail

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

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

Plus en détail

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions Langage JAVA Bases du langage Opérations sur les fichiers Réseau Multi-tâche Logiciel: interfaces... Gestion des périphériques (méthodes natives) Accès aux bases de données Bases du langage Historique

Plus en détail

Utilisation d objets : String et ArrayList

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

Plus en détail

Support de cours et TD Programmation Orientée Objet

Support de cours et TD Programmation Orientée Objet REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Institut Supérieur des Etudes Technologiques de Médenine Département Informatique Support de cours et TD Programmation

Plus en détail

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

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

Plus en détail

Introduction au langage C

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

Plus en détail

Solutions du chapitre 4

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

Plus en détail

Initiation à la programmation orientée-objet avec le langage Java

Initiation à la programmation orientée-objet avec le langage Java Initiation à la programmation orientée-objet avec le langage Java Pôle Informatique 2013-2014 158 cours Fauriel 42023 Saint-Étienne Cedex 02 Gauthier Picard gauthier.picard@emse.fr Institut Henri Fayol,

Plus en détail

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

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

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

ACTIVITÉ DE PROGRAMMATION

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

Plus en détail

Programmation Orientée Objet application au langage Java Version Novembre 2007

Programmation Orientée Objet application au langage Java Version Novembre 2007 Programmation Orientée Objet application au langage Java Version Novembre 2007 Mickaël BARON - 2007 mailto:baron.mickael@gmail.com ou mailto:mickael.baron@serli.com SERLI informatique SERLI : www.serli.com

Plus en détail

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

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

Plus en détail

Fichiers d'archives java - *.jar

Fichiers d'archives java - *.jar Fichiers d'archives java - *.jar Originaux Chapitres traités Les fichiers d'archive Java (fichiers JAR) sont les valises Java. ils constituent le moyen standard et portable d'empaqueter toutes les parties

Plus en détail

TD/TP PAC - Programmation n 3

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

Plus en détail

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

1. Langage de programmation Java

1. Langage de programmation Java 1. Langage de programmation Java 1.1. Définitions Langage de 3e génération le plus utilisé actuellement Portabilité : exécutable sur tout types d'ordinateurs quel que soit le système d'exploitation (Windows,

Plus en détail

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

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

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

Chapitre VI- La validation de la composition.

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

Plus en détail

Algorithmique et Programmation, IMA

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

Plus en détail

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans

Plus en détail

Initiation à la Programmation Java

Initiation à la Programmation Java Initiation à la Programmation Java (4GI) Michel Cubero-Castan 8/10/2006 Copyright (c) 2003 Michel Cubero-Castan Tous droits réservés. Table des matières 1 Java Computing... 1.1 Introduction... 1.2 Evolution

Plus en détail

TD/TP PAC - Programmation n 3

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

Plus en détail

Notions fondamentales du langage C# Version 1.0

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

Plus en détail

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

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

Plus en détail

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

CPR Informatique. (poste 3159 ou 3164) Septembre 2002 CPR Informatique (poste 3159 ou 3164) Septembre 2002 Programmer en Java Table des matières 1.- PRESENTATION GENERALE DU LANGAGE JAVA...3 1.1. Introduction...3 1.2. Historique...3 1.3. Les principales raisons

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

4. Groupement d objets

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

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8 Anne Tasso Java Le livre de premier langage 6 e édition Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

Logiciel de gestion de caisse et d ardoises

Logiciel de gestion de caisse et d ardoises 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Logiciel de gestion de caisse et d ardoises BOIRLEAUD Pierre-Jean MOLINS Nicolas REHFELD Vincent Table des matières

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail