Java les fondamentaux (examen 1Z0-803)

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

Download "Java les fondamentaux (examen 1Z0-803)"

Transcription

1 Présentation de la formation Java les fondamentaux (examen 1Z0-803) Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

2 Plan Présentation du formateur Les autres formations sur Alphorm Qu est-ce que Java? Le plan de la formation Présentation des outils Les publics concernés

3 Présentation du formateur Fabien Brissonneau [email protected] Consultant Concepteur et Formateur Missions d architecture, de conception, de réalisation logicielles Fondateur de eixa6 Actuellement en mission sur un projet de gestion Mes références : Mon profil Viadeo: Mon profil LinkedIn:

4 Mes formations sur alphorm

5 Les autres formations dévsur Alphorm

6 Qu est-ce que Java? Langage de programmation généraliste Créé en 1995 par Sun, héritant du C++ Géré en communauté Langage de programmation objet Avec un très grande bibliothèque de classes

7 Le plan de la formation Présentation de la technologie Java Penser en termes objet Présentation du langage Java Utiliser des variables primitives Utiliser des objets Utiliser des opérateurs et des décisions Créer et utiliser des tableaux Utiliser des structures en boucles Utiliser des méthodes et la surcharge Utiliser l encapsulation et les constructeurs Concepts avancés de l objet Gestion des erreurs Vue d ensemble

8 Certification OCA suite à l examen 1Z0-803

9 Présentation des outils Le site de Oracle sera utilisé pour télécharger Les outils en ligne de commande La bibliothèque de base Un IDE, Netbeans Nous utiliserons aussi Eclipse La présentation sera faite sous Windows 7

10 Les publics concernés Cette formation est la première de 2 formations certifiantes Java SE7 La formation suivante est Java avancé!

11 Scoop Formation à apparaitre prochainement sur alphorm

12 Allons-y! Nous pouvons démarrer!!

13 Présentation Associer Java à d autres langages Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

14 Plan Historique Caractéristiques essentielles du langage Comparer Java à C++ Comparer Java à C# Comparer Java à Python

15 Historique Démarre en 1991, chez SUN, projet dirigé par James Gosling Projet Oak, partant du C++ en éliminant les points dangereux Version alpha de Java en 1995 Version 1.0 en 1996

16 Caractéristiques essentielles Langage à la syntaxe simple Langage généraliste Langage indépendant de la plateforme Langage orienté objet Langage prévu pour le support du réseau

17 Comparer Java à C++ Objectifs : C++ est proche du système, Java a une grande couche d abstraction Syntaxe : C++ a une syntaxe complexe et pleine de surprises, Java a une syntaxe simple Bibliothèquestandard : la bibliothèque du C++ est le plus petit commun à toute application, Java a une bibliothèque très large Exécution : C++ est natif, Java tourne sur une machine virtuelle Paradigme de programmation : C++ favorise un mélange des façons de programmer, Java est fortement orienté objet Mémoire : en C++, la gestion de la mémoire est manuelle, Java utilise un ramasse-miette Origine et évolution : C++ est un standard ISO, Java a été créé par Sun, maintenant Oracle

18 Comparer Java à C# Objectifs : C# est lié au monde Microsoft et Java n est pas lié à un constructeur Syntaxe : C# et Java ont une syntaxe simple. C# ajoute quelques éléments, qui rapellent le C++ Bibliothèque standard : les bibliothèques Java et DotNet sont très larges Exécution : C# et Java tournent sur une machine virtuelle, avec compilation JIT Paradigme de programmation : C# et Java sont fortement orientés objet Mémoire : C# et Java utilisent un ramasse-miette Origine et évolution : C# est un langage d origine Microsoft

19 Comparer Java à Python Objectifs : Python est plus un langage de «glue», là où Java servirait à créer les composants liés Syntaxe : Python utilise les indentations, limite la verbosité. Java comme Python ont peu de types de base Bibliothèque standard : les bibliothèques Java et Python sont très larges Exécution : Python est interprété, son bytecodeest invisible. La phase de compilation du source Java en bytecode est clairement identifiée Paradigme de programmation : Python et Java sont orientés objet, mais Python s utilise souvent comme un langage de script Mémoire : Python et Java utilisent un ramasse-miette Origine et évolution : Python est d origine associative, PSF

20 Cequ ona couvert Nous avons rappelé les caractéristiques essentielles de Java Nous avons comparé Java à d autres de langages comparables Par rapport à ces langages, Java apparaît comme : Un langage à la syntaxe simple Un langage qui permet une bonne productivité Un langage fortement typé, qui guide le développeur Fortement orienté objet Avec une grande bibliothèque standard Ouvert sur le monde

21 Présentation Téléchargement et installation de Java Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

22 Plan Où trouver Java? Les téléchargements disponibles Installation des outils Java Configuration de l environnement de travail Java

23 Où trouver Java? Le nécessaire pour exécuter : Le kit de développement : Java DevelopmentKit (JDK) Le runtimeen 2 versions : Le Java Rutime Environment(JRE) Le JRE pour serveur Sur le site : Oracle participe au Java CommunityProcess, les nouveautés Java sont émises sous la forme de Java Specification Request: Oracle participe aussi à OpenJDK

24 Les téléchargements disponibles Les éditions Java : Java SE, Java EE, Java ME Standard Edition : JRE complet + outils pour développer (compilateur, débuggeur, moniteur) Enterprise Edition : concerne les applications serveur (multi-tier, sécurisées, ) Glassfish API supplémentaire, documentation et exemples EE Web Profile : sous-ensemble ne concernant que les applis Web Micro Edition : pour des applications embarquées, mémoire limitées, accès permanent au réseau, etc

25 Installation des outils JDK SE : téléchargement, installation sous différentes plateformes Téléchargement et installation avec ou sans NetBeans(netbeans.org) Le JRE sera installé dans : <program files>/java/jre8 Il faut avoir les droits d administration NetBeans8 utilise n importe quel jdk7 ou 8, il le référence par jdkhome

26 Configuration des outils Netbeans Eclipse Ligne de commande PATH CLASSPATH JAVA_HOME / JRE_HOME

27 Cequ ona couvert Où trouver Java? Les téléchargements disponibles Installation des outils Java Configuration de l environnement de travail Java

28 Présentation Les technologies Java Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

29 Plan Java SE Java EE Embedded Java

30 Java SE Version standard de la livraison Java Le Java DevelopmentKit (JDK) incluant le SDK JavaFX Le Java RuntimeEnvironment(JRE) permettant d exécuter les applications Le runtime JavaFX La machine virtuelle Oracle JRockit

31 Java EE Version entreprise de Java Il existe 2 profils : EE SDK et EE Web Profile SDK Les deux versions sont livrées avec Glassfish Exemples de code, documentation et tutoriel Une plateforme pour déployer des applications d entreprise (robustesse, Web services, déploiement facilité)

32 Embedded Java Java pour environnements pauvres en ressources 2 options proposées : Java ME Embedded et Java ME Embedded Client

33 Cequ ona couvert Java SE Java EE Embedded Java

34 Présentation Caractéristiques principales et les avantages de la technologie Java Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

35 Plan Syntaxe du langage Java Les bibliothèques Java La machine virtuelle La gestion de la ressource mémoire L ouverture des technologies

36 La syntaxe du langage Java Une syntaxe rappelant celle du C++ Simple et productive Pas de pièges, objectif de lisibilité maximale

37 Les bibliothèques Java Les bibliothèques standard sont très larges Couvrent tous les aspects d une aplication Evitent le besoin de réinventer l existant De nombreuses bibliothèques de tiers

38 La machine virtuelle A l origine, une machine logicielle qui interprète du bytecode Le code Java est compilé explicitement en bytecode Les machines virtuelles compilent Just In Time Un bytecode et une machine très optimisés

39 La gestion de le ressource mémoire La mémoire n est pas gérée explicitement par le développeur Un thread de la JVM se charge de la gestion Les zones mémoire plus utilisées sont récupérées La responsabilité du développeur est de rendre la main

40 L ouverture des technologies Le processus d évolution du langage est ouvert Les spécifications sont ouvertes (JVM) De nombreux intervenants proposent des composants Certains on tendance à tirer à eux les standards

41 Cequ ona couvert Syntaxe du langage Java Les bibliothèques Java La machine virtuelle La gestion de la ressource mémoire L ouverture des technologies

42 Présentation Utiliser un environnement de développement intégré Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

43 Plan L IDE Netbeans Créer un projet Produire à partir du projet L IDE Eclipse

44 Netbeans Environnement d origine Oracle/Sun Fournit en bundle avec Java JDK Plateforme sur laquelle on installe des plugs-in Supporte plusieurs langages et plusieurs utilisations

45 Créer un projet La notion de projet n est pas Java Il faut créer un projet Netbeans Le source Java est créé/compilé à partir de ce projet Le projet peut aussi référencer des éléments extérieurs Le projet est «typé», les répertoires sont différemment organisés

46 Produire à partir du projet Production de.class, issus de la compilation Génération de fichiers zippés comme les «jar» Génération de la documentation technique

47 L IDE Eclipse Eclipse est une plateforme d origine IBM Largement utilisée Indépendante de Java Plateforme sur laquelle on installe des plugs in Multilangages, multi-utilisations

48 Cequ ona couvert L IDE Netbeans Créer un projet Produire à partir du projet L IDE Eclipse

49 Penser en termes d objets Définir le domaine du problème Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

50 Plan Domaine/métier/analyse/conception/code Rôle du modèle du domaine Rôle du modèle de conception Traduction en Java

51 Domaine -> conception -> code Le modèle du domaine est la première vue orientée objets La trace entre métier et code est assurée Le code est une autre vue du métier Le code n est là que pour répondre à un besoin métier

52 Rôle du modèle du domaine Le modèle du domaine est une vue orientée objet On peut le traduire en code (à travers des étapes nombreuses) Il est compris par le métier Il est stable (contrairement au code) Le modèle du domaine est quasiment hors informatique

53 Le modèle de conception A partir du modèle du domaine Prenant en compte l architecture technique Le modèle de conception est efficace, performant, et fidèle Il sera traduit en code

54 Traduction en Java Le type d objet est une classe -> Java Les attributs sont les données Les méthodes sont les fonctions membres Les associations sont des attributs références Le code n invente quasi rien Le corps des méthodes n est pas spécifié par un modèle de classes

55 Cequ ona couvert Domaine/métier/analyse/conception/code Rôle du modèle du domaine Rôle du modèle de conception Traduction en Java

56 Penser en termes d objets Identifier les objets Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

57 Plan Définition d un objet Pourquoi parler de classes Définir un bon objet métier Les classes applicatives Vocabulaire

58 Définition d un objet Une entité vivante, qui réagit aux messages reçus Un objet contient les données et les traitements qui permettent d agir dessus Un objet a des frontières bien définies, des états et des comportements

59 Pourquoi parler des classes Une classe est un type d objet Parler des types au lieu des exemples occurrents permet simplifier la description du problème Une classe est aussi le descripteur d objets Il y a plusieurs sortes de classes (métier, applicatives ) Une classe est lisible dans les services qu elle rend

60 Définir un bon objet métier Souvent repéré comme un groupe nominal dans un énoncé Un bon objet métier est manipulé par le métier Il contient des données importantes Il est cohérent dans un traitement

61 Les classes applicatives Une classe applicative correspond aux couches techniques Elle apparaît dans le modèle de conception N est pas le reflet des objets métier Peuvent ne contenir que des traitements

62 Vocabulaire Les classes contiennent toutes les données et traitements Rien ne peut être en dehors des classes Les objets masquent leur implémentation : c est l encapsulation Les classes définissent : des attributs (données) des méthodes (traitements)

63 Cequ ona couvert Définition d un objet Pourquoi parler de classes Définir un bon objet métier Les classes applicatives Vocabulaire

64 Présentation du langage Java Définir les classes Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

65 Plan Une classe définit les attributs et les méthodes Les visibilités autorisent ou interdisent les accès aux membres Les constructeurs sont remarquables La définition de la classe peut supporter des modificateurs

66 Une classe définit attributs et méthodes Les attributs sont typés, ce sont les données Les méthodes sont décrits par un nom, un type de retour et des paramètres, eux-mêmes typés Il n y a pas d ordre dans les déclarations Le corps des méthodes peut utiliser les attributs, les paramètres et les variables locales éventuelles Par convention, une classe commencent par une majuscule, un attribut et une méthode par une minuscule

67 Les visibilités Pour implémenter l encapsulation Visibilités : par défaut, private, protected, public Limitent l accès aux membres par d autres morceaux de code

68 Les constructeurs Les constructeurs sont des méthodes Qui portent le nom de la classe N ont pas de type de retour Initialisent les attributs L appel d un constructeur est implicite

69 La définition de classe a des modificateurs Classe publique ou non Classe extension d une autre Classe implémentation d une interface

70 Cequ ona couvert Une classe définit les attributs et les méthodes Les visibilités autorisent ou interdisent les accès aux membres Les constructeurs sont remarquables La définition de la classe peut supporter des modificateurs

71 Présentation du langage Java Identifier les composants d une classe Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

72 Plan Les composants possibles Créer des attributs Créer des constructeurs Créer des méthodes

73 Les composants d une classe Une classe définit des attributs, ou champs de données Une classe définit des constructeurs, qui initialisent ces champs Une classe définit des méthodes, ou fonctions membres Les membres sont affectés d une visibilité L ordre de leurs déclarations n est pas significatif

74 Créer des attributs Un champ de donnée est typé Son nom suit la convention : commence par une minuscule et ensuite capitalisation En général, la visibilité est privée Le type de ce champ de donnée est : Un type fondamental (int, ) Une chaîne de caractères (String) Une référence vers un autre type, standard ou utilisateur

75 Créer des constructeurs Un constructeur est une fonction membre spéciale Le nom d un constructeur est le nom de la classe Il peut avoir des paramètres, mais pas de retour Dans le corps du constructeur, on doit initialiser les champs de donnée

76 Créer des méthodes Une méthode est un traitement effectué sur un objet Son nom suit la même convention que les attributs Elle déclare une liste de paramètres (type nom) Elle peut ne pas avoir de paramètres Elle a un retour, sinon, elle déclare «void» Une méthode correspond à un message que l on peut envoyer à l objet de ce type

77 Cequ ona couvert Les composants possibles Créer des attributs Créer des constructeurs Créer des méthodes

78 Présentation du langage Java Créer et utiliser une classe de test Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

79 Plan Définition d une classe de test Construction d une classe de test Utilisation simple d une classe de test Utilisation d une classe de test via un framework

80 Définition d une classe de test Une classe qui ne sert qu à tester une autre classe Une classe est l unité de test par excellence La classe de test propose une méthode par traitement à tester Les méthodes de tests sont déclenchés par l extérieur

81 Construction d une classe de test Pour chaque classe du modèle, créer une classe de test Dans cette nouvelle classe, créer une méthode par test à réaliser Dans une méthode de test : mettre en place le jeu de test, lancer

82 Utilisation simple d une classe de test Dans un main Appeler les méthodes de la classe de test On voit qu il est plus simple de faire des appels «statiques» Remarquer la visualisation des résultats dans la console

83 Utilisation d un frameworkde test JUnits est imposé comme un frameworkde test Appels statiques Les classes et les méthodes de tests sont annotés Une ihm simple permet d identifier les réussites et les échecs

84 Cequ ona couvert Définition d une classe de test Construction d une classe de test Utilisation simple d une classe de test Utilisation d une classe de test via un framework

85 Présentation du langage Java Compiler et exécuter un programme de test Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

86 Plan Création d un programme de test Lancement d un programme de test JUnit

87 Création d un programme de test Il faut disposer des classes à tester Créer un programme avec un main Compiler et exécuter le programme Vérifier les sorties

88 Programme de test JUnit Avec un frameworkde test comme JUnit, construction des classes de test simplifié Lancement d un ihm spécifique

89 Cequ ona couvert Création d un programme de test Lancement d un programme de test

90 Utiliser des primitives Déclarer et initialiser des variables de champs Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

91 Plan Qu est-ce qu une primitive? Déclaration d un champ de donnée Initialiser un champ de donnée

92 Qu est-ce qu une primitive? Les types primitifs sont les types fondamentaux de Java Les données primitives sont placées sur la pile Les valeurs possibles sont déterminées par le type Il n est pas possible de créer de nouveaux types primitifs

93 Déclaration d un champ de donnée La forme générale est : Type nomdelavariable; On peut rajouter la visibilité Et une valeur par défaut

94 Initialiser un champ de donnée Par défaut la valeur est 0, 0.0, nullou false suivant le type Il faut donc en général donner une valeur à ce champ Initialiser par défaut, lors de la déclaration Ecrire le code d initialisation dans un constructeur

95 Cequ ona couvert Qu est-ce qu une primitive? Déclaration d un champ de donnée Initialiser un champ de donnée

96 Utiliser des primitives Décrire les types primitifs Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

97 Plan Les types entiers Les types flottants Le type caractère Le type booléen

98 Les types entiers Un octet signé : byte Deux octets signés : short Quatre octets signés : int Huit octets signés : long Pas de types non signés, mais des méthodes sur les types Integeret Long pour gérer l arithmétique non signée Les littéraux sont typés : 4 est un int, 4L est un long

99 Les types flottants 32-bit IEEE 754 : float 64-bit IEEE 754 : double Ne pas utiliser ces types pour des monétaires, mais plutôt BigDecimal Les littéraux sont typés : 5.6 est un double, 5.6F est un float

100 Le type caractère Représenté par char 16-bit Unicode, soit de \u0000 à \uffff Le type chaîne de caractère n est pas un type primitif (String)

101 Le type booléen Une valeur soit true, soit false La taille en mémoire n est pas précisée Les booléens ne peuvent être confondus ni avec des entiers, ni avec des référence (null)

102 Cequ ona couvert Les types entiers Les types flottants Le type caractère Le type booléen

103 Utiliser des primitives Déclarer des variables et leur affecter des valeurs Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

104 Plan Les variables en Java Comportement des variables locales L affectation d une valeur à une variable locale

105 Les variables en Java Les variables sont déclarées et typées Les variables attributs, ou champ de donnée Les variables paramètres Les variables locales à une méthode Notez l absence de variable globale

106 Comportement des variables locales Une variable locale est déclarée à l intérieur d une méthode Elle disparaît à la fin du bloc {} dans lequel elle est déclarée Elle doit être initialisée avant d être utilisée

107 L affectation d une variable locale Pour être utilisée, une variable doit avoir une valeur : À l initialisation Plus tard, en affectant une valeur calculée Le compilateur identifie les chemins dans la méthode Tous les chemins doivent donner une valeur à la variable Certaines variables sont utilisées en retour de fonctions

108 Cequ ona couvert Les variables en Java Comportement des variables locales L affectation d une valeur à une variable locale

109 Utiliser des primitives Utiliser des constantes Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

110 Plan Un mot clé pour créer une constante Une constante en attribut, publique ou non Une constante en variable locale

111 Un mot clé pour créer une constante En utilisant le mot-clé «final» Il faut donner une valeur à la variable Il est impossible de modifier la valeur donnée Le type de la variable est quelconque Par convention, le nom de la variable est en majuscules

112 Une constante en attribut Une constante en attribut peut-être : Une information constante pour le code de la classe -> private Une information constante pour le reste du monde -> public Un attribut publique et constant n est pas dangereux Exemple : Math.PI

113 Une constante en variable locale Une variable locale constante ne peut pas être modifiée dans sa portée Elle interdit simplement toute modification Elle est utilisable dans une classe anonyme de la même portée Dans le cas du paramètre, attention à ne pas confondre avec les «const» du C++

114 Cequ ona couvert Un mot clé pour créer une constante Une constante en attribut, publique ou non Une constante en variable locale

115 Utiliser des primitives Utiliser des opérateurs arithmétiques Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

116 Plan Les opérateurs arithmétiques en Java Le comportement des types

117 Les opérateurs arithmétiques Opérateurs +, -,/,* Opérateurs combinant affectation et opération +=, -=,/=,*= Opérateurs unaires ++, -- L opérateur %(modulo) Pas de surcharge possible des opérateurs Il existe des opérateurs au niveau des bits :&, ~, décalage <<, >>,

118 Le comportement des types Pour garder la précision des calculs, on promeut les short et byte en int Il vaut mieux donc utiliser des int Les débordements sur entiers ne sont pas gérés comme sur les réels Les littéraux ont des types : 1 est un int 1.0 est un double

119 Cequ ona couvert Les opérateurs arithmétiques en Java Le comportement des types

120 Utiliser des objets Déclarer et initialiser des objets Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

121 Plan Référence vs objet Référence locale, paramètre Référence en attribut

122 Référence vs objet Un objet est une zone mémoire allouée avec un «new» Pour garder un lien vers cette zone mémoire, on utilise une référence Un objet ne peut pas être manipulé sans référence Lors qu un objet n est plus référencé, il est finalisé Voiture titine = new Voiture()

123 Référence locale, paramètre Une référence vers un objet peut apparaître en paramètre L appelant doit fournir l objet en question Une référence peut être une variable locale Il faut initialiser cette variable : À partir d une autre référence En créant un objet

124 Référence en attribut Une référence peut être un attribut Il s agit d un lien vers un autre objet Les règles d initialisation des types primitifs s appliquent Valeur nullpar défaut Initialisation lors de la déclaration ou dans un constructeur

125 Cequ ona couvert Référence vs objet Référence locale, paramètre Référence en attribut

126 Utiliser des objets Stocker des objets en mémoire Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

127 Plan Un objet peut référencer d autres objets Règles d accès aux objets en mémoire

128 Un objet peut référencer d autres objets Via des attributs en mémoire Des graphes d objets sont stockés en mémoire Exemple : Le gobelet référence des dés Tant que le gobelet existe en mémoire, les dés aussi La règle d encapsulation s applique, le gobelet ne peut accéder aux membres privés des dés

129 Règles d accès aux objets Les objets ne sont finalisés (ramassés) que lorsqu ils ne sont plus référencés Cette règle s applique aux graphes d objets Suppose que les références sur objet sont comptées Il faut que le développeur pense à mettre ses références à «null»

130 Cequ ona couvert Un objet peut référencer d autres objets Règles d accès aux objets en mémoire

131 Utiliser des objets Utiliser des références d objets Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

132 Plan Référence et objets Accéder à un champ d un objet Accéder à une méthode d un objet

133 Référence et objet Un objet est accessible via les références qui pointent vers lui Une référence est un accès mémoire, mais non explicite La sélection des membres se fait avec l opérateur «.» Obtenir une référence à un objet se fait : En créant soi-même l objet En invoquant une méthode qui crée l objet et nous le retourne En récupérant la référence en paramètre

134 Accéder à un champ Via une référence, on obtient un accès aux membres Si le champ est accessible (champ«public» par exemple) Avec un code genre : ref. attribut Je peux lire, modifier l attribut de l objet pointé par ref Un accès direct à un champ est rare, car cela ne respecte pas l encapsulation

135 Accéder à une méthode Via une référence, on accède aux traitements de l objet L appel se réalise comme pour un attribut, mais avec des parenthèses, même s il n y a pas de paramètres à passer Le déclenchement de la méthode suppose un effet sur l objet : La méthode nous retourne le résultat d un calcul La méthode modifie l état de l objet En général, l objet peut garder le résultat du calcul lui-même

136 Cequ ona couvert Référence et objets Accéder à un champ d un objet Accéder à une méthode d un objet

137 Utiliser des objets Utiliser les javadocs Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

138 Plan Qu est-ce que javadoc? Visiter la documentation de jse Appliquer la documentation dans son code

139 Qu est-ce que javadoc? Javadoc est un outil pour produire de la documentation technique Il peut être appliqué sur son propre projet La structure de la documentation suit celle du projet Les textes qui apparaissent sont des compléments que l on peut ajouter

140 Visiter la documentation jse Accéder au site Oracle, ou bien en utiliser un téléchargement Trouver le package, la classe, la méthode La description contient des généralités, des exemples Voyons la classe Date, la classe Math

141 Appliquer la documentation au code Avec la classe Date, créer une Date nowet today Un constructeur par défaut qui créer un Date maintenant Avec la classe Math, comprendre la description des champs Voir le lien avec d autres classes, StrictMath

142 Cequ ona couvert Qu est-ce que javadoc? Visiter la documentation de jse Appliquer la documentation dans son code

143 Utiliser des objets Utiliser des objets String et StringBuilder Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

144 Plan La chaîne de caractères String Les limites de la classe String L intérêt de StringBuilder

145 La chaîne de caractères String Une classe, avec des comportements Une création exceptionnelle, rappelant les types primitifs L application de l opérateur +, y compris pour concaténer des primitives Méthode de manipulation de chaîne Voir la documentation pour les détails

146 Les limites de la classe String Une String est «immutable value» Toutes les méthodes qui semblent modifier l objet String en crée un autre Très peu efficace pour créer un buffer

147 L intérêt de StringBuilder La classe StringBuildern a pas de relation de type avec String Dédiée à la gestion de buffer Ajout de morceaux de chaînes Troncature aléatoire On obtient à tout moment le buffer via tostring()

148 Cequ ona couvert La chaîne de caractères String Les limites de la classe String L intérêt de StringBuilder

149 Utiliser des opérateurs et des structures décisionnelles Opérateurs relationnels et conditionnels Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

150 Plan Les opérateurs relationnels Les opérateurs conditionnels

151 Les opérateurs relationnels Opérateur ==,!=, <,>,<=,>= Evalués à un booléen S appliquent à tous les types primitifs S appliquent aussi aux références, mais attention pas aux objets

152 Les opérateurs conditionnels Les opérateurs &&, sont court-circuit Les opérateurs &,,^ s appliquent comme sur les bits d un entier L opérateur! est NOT L opérateur ternaire : (a > b )? A : b Si a est supérieur à b alors a sinon b

153 Cequ ona couvert Les opérateurs relationnels Les opérateurs conditionnels

154 Utiliser des opérateurs et des structures décisionnelles Tester l égalité entre chaînes Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

155 Plan L égalité physique ou sémantique des objets La classe String et ses méthodes == ou bien equals( )?

156 L égalité sémantique ou physique Un objet est sur le tas et est référencé via une référence L opérateur == s applique sur la référence, test physique Comparer deux objets en prenant en compte ce qu ils contiennent est le test sémantique Le test sémantique se fait PAR les objets eux-mêmes Il n y a pas de test sémantique par défaut en Java

157 La classe String et ses méthodes Méthode equals: test d égalité de 2 objets String String str1 String str2 Test : str1.equals(str2) Méthode equalsignorecase: test d égalité sans prendre en compte la casse

158 == ou bien equals( ) == est un test physique Les méthodes equals ou equalsignorecase testent le contenu == peut servir à identifier le contenu CAR String est une «immutable value»

159 Cequ ona couvert L égalité physique ou sémantique des objets La classe String et ses méthodes == ou bien equals( )?

160 Utiliser des opérateurs et des structures décisionnelles Evaluer différentes conditions et coder Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

161 Plan Les expressions booléennes Tester une seule condition, simple ou complexe Tester une suite de condition Un branchement complexe

162 Les expressions booléennes Un expression booléenne est une expression dont l évaluation donne true ou false Un numérique ou une référence ne sont pas des booléens Le type «boolean» représente une variable booléenne

163 Tester une seule condition Pour tester une seule condition : «if» avec ou sans accolades Il est courant de rajouter systématiquement les accolades pour éviter une erreur future : les indentations ne comptent pas Il est courant de rajouter un «else» car un «if» seul est peu lisible La condition est mise entre parenthèses La condition peut être complexe, utilisant les opérateurs booléens

164 Tester une suite de condition Il faut enchaîner les «if» et les «else» La logique conditionnelle pose rapidement des problèmes : De lecture, le code est long à lire De fragilité, difficile de modifier une condition sans impact Facile à boguer, la logique est compliquée Les conditions elles-mêmes sont rapidement trop complexes

165 Un branchement complexe Lorsqu une seule variable est tester, pour un ensemble de valeurs En utilisant «switch / case», on simplifie un peu Mais la variable est forcément primitive Peu être le signe d un manque de conception objet

166 Cequ ona couvert Les expressions booléennes Tester une seule condition, simple ou complexe Tester une suite de condition Un branchement complexe

167 Utiliser des opérateurs et des structures décisionnelles Créer des if et if/else Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

168 Plan L instruction «if» Le couple «if/ else» L intense «if/ else/ if /else/»

169 L instruction «if» L instruction «if» est suivie d une condition entre parenthèses Il y a une seule instruction derrière un «if» Mais on va placer plusieurs instructions grâce aux accolades

170 Le couple «if / else» Un «if» sans «else» a t-il du sens? Une seule instruction après un «else», ou bien des accolades

171 L intense Enchaîner des «if / elseif /» est rarement une bonne idée

172 Cequ ona couvert L instruction «if» Le couple «if/ else» L intense «if/ else/ if /else/»

173 Utiliser des opérateurs et des structures décisionnelles Enchaîner les conditions Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

174 Plan L instruction «if/ else» Le cas de la création des objets Que testent réellement les conditions?

175 L instruction «if / else» Une instruction conditionnelle est rapidement inévitable Ne pas la rendre trop complexe Eventuellement réduire la complexité

176 Le cas de la création des objets Pour créer un objet, il faut connaître sa classe La logique conditionnelle est donc quasi-imparable

177 Que testent réellement les conditions? Il faut éviter de tester le type des objets Par instanceof Par un autre moyen Pour déclencher des méthodes sur des objets en fonctions des types, il faut penser polymorphisme Les conditions sont souvent des primitives La combinaison des variables de conditions reflète le résultat d une méthode

178 Cequ ona couvert L instruction «if/ else» Le cas de la création des objets Que testent réellement les conditions?

179 Utiliser des opérateurs et des structures décisionnelles L instruction switch Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

180 Plan Forme générale du switch Quand utiliser switch Quand ne pas utiliser switch

181 Forme générale du switch Il faut une variable, entière jusqu à Java7, String compris depuis Le cas par défaut est optionnel

182 Quand utiliser le switch Reste simple et inévitable

183 Quand ne pas utiliser le switch Expression complexe, qui pourrait être remplacée par une conception plus poussée Oublier le «default»

184 Cequ ona couvert Forme générale du switch Quand utiliser switch Quand ne pas utiliser switch

185 Créer et utiliser des tableaux Déclarer et instancier un tableau à 1 dimension Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

186 Plan Qu est-ce qu un tableau? Tableau de primitives Tableau d objets

187 Qu est-ce qu un tableau? Le tableau est un objet Il s instancie avec un new Son type et T[ ] Il ne fournit aucune information, n a aucune intelligence

188 Tableau de primitives Un tableau de type primitifs contient les valeurs Les valeurs sont mises à 0 (en fonction du type) Une seul «new» suffit à disposer des données

189 Tableau d objets Le tableau d objets n existe pas Le tableau est un tableau de références Les références sont mises à null Il faut donc un autre new pour chaque objet dont on veut disposer

190 Cequ ona couvert Qu est-ce qu un tableau? Tableau de primitives Tableau d objets

191 Créer et utiliser des tableaux Déclarer et instancier un tableau à 2 dimensions Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

192 Plan Qu est-ce qu un tableau à deux dimensions? Les services de ce tableau

193 Qu est-ce qu un tableau à deux dimensions? On spécifie 2 dimensions, le tableau est donc une matrice Il faut deux indices pour ranger un élément dans le tableau On peut aussi l initialiser de façon statique

194 Les services de ce tableau L attribut en lecture seule «length» est disponible pour les 2 dimensions

195 Cequ ona couvert Qu est-ce qu un tableau à deux dimensions? Les services de ce tableau

196 Créer et utiliser des tableaux Utiliser une boucle for dans le tableau Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

197 Plan Les boucles for, while, do-while, for(each) Le parcours du tableau à une dimension Le parcours du tableau à 2 dimensions

198 Les boucles La boucle while(cond) {} La boucle do { } while(cond) ; La boucle for( inti =0; i<cond; i++) {} La boucle for ( E e: tab) {}

199 Parcourir un tableau à une dimension Avec une boucle for basé sur une variable La variable de boucle est indice d accès dans le tableau Avec une boucle for «each» On ressort l élement contenu dans le tableau

200 Parcourir un tableau à deux dimensions Avec une double boucle Les variables de boucles sont les indices d accès aux éléments du tableau La capacité du tableau «length» est utilisée

201 Cequ ona couvert Les boucles for, while, do-while, for(each) Le parcours du tableau à une dimension Le parcours du tableau à 2 dimensions

202 Créer et utiliser des tableaux Créer et initialiser une ArrayList Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

203 Plan Qu est-ce que java.util.arraylist? Comment initialiser une ArrayList Parcourir une ArrayList

204 Qu est-ce qu une ArrayList? Un objet de java.util Tableau dynamique, se redimensionne seule Offre des services supplémentaires

205 Comment initialiser une ArrayList En la remplissant au fur et au mesure, avec «add» En lui donnant une taille initiale

206 Parcourir une ArrayList En utilisant un indice jusqu à «size» En utilisant le for «each»

207 Cequ ona couvert Qu est-ce que java.util.arraylist? Comment initialiser une ArrayList Parcourir une ArrayList

208 Créer et utiliser des tableaux Utiliser l instruction import Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

209 Plan Le package java.util Utiliser import

210 Le package java.util Les classes de collection se trouvent dans java.util Voir la documentation On ne peut pas utiliser le nom simple de la classe ArrayList, sans son nom de package Cela garantit l absence de collision entre les noms de classes

211 L instruction import Arbitrage entre utiliser le nom complet de la classe Ou bien faire un «import» de la classe, et utiliser son nom court Aucun impact sur le code généré Confort de codage et de lecture Pas d import du package lui-même On importe des classes d un package On peut importer toutes les classes d un package

212 Cequ ona couvert Le package java.util Utiliser import

213 Créer et utiliser des tableaux Accéder à une valeur d un tableau Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

214 Plan Accéder aux valeurs dans un tableau Accéder aux valeurs dans une ArrayList

215 Accéder aux valeurs dans un tableau Le tableau supporte l accès aléatoire Avec l opérateur [], on lit n importe quelle valeur Les débordements sont repérés Le même opérateur permet d écrire Le tableau ne se redimensionne pas

216 Accéder aux valeur d une ArrayList Ce tableau peut se redimensionner seul Avec get(int), on obtient la ièmevaleur Mais pour modifier le ième élément, utiliser add(int, E)

217 Cequ ona couvert Accéder aux valeurs dans un tableau Accéder aux valeurs dans une ArrayList

218 Créer et utiliser des tableaux Utiliser le tableau args Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

219 Plan Les arguments de la ligne de commande Parcourir le tableau Convertir les éléments de ce tableau

220 Les arguments de la ligne de commande Les arguments fournit après «java app» sur le ligne de commande Séparés par des blancs Ce sont des chaînes de caractères dans le main

221 Parcourir le tableau Soit utiliser length, soit for«each» La capacité du tableau est sa taille utile Permet typiquement de passer des options à l application Utilisable même avec netbeans ou eclipse

222 Convertir les éléments du tableau Pour être exploitable, il faut souvent convertir en entiers? Integer.parseInt(str) Attention à prendre en compte des erreurs de type Gérer les exceptions Rechercher le type

223 Cequ ona couvert Les arguments de la ligne de commande Parcourir le tableau Convertir les éléments de ce tableau

224 Utiliser des boucles Coder une do/while Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

225 Plan Les composants de la boucle do /while Les composants de la boucle while Les erreurs à ne pas faire

226 Les composants de la boucle do/while Un bloc de code à exécuter Une condition à respecter Une condition d arrêt

227 Les composants de la boucle while Une ou plusieurs instructions dans un bloc Une condition pour arrêter la boucle

228 Les erreurs à ne pas faire Pour le «while», ne pas oublier les accolades si besoin Que la condition permette de sortir de la boucle

229 Cequ ona couvert Les composants de la boucle do /while Les composants de la boucle while Les erreurs à ne pas faire

230 Utiliser des boucles Développer une boucle for Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

231 Plan Les composants d une boucle «for» Les avantages du for sur le while Les écritures limites du «for»

232 Les composants d une boucle for Initialisation Tant que Incrément

233 Les avantages du for sur le while Le «for» possède toujours 3 parties On oublie moins la modification de la variable de boucle L initialisation est plus évidente

234 Les écritures limites du for Utiliser un «for» pour une boucle infinie Oublier volontairement une partie du «for» Mettre des listes d initialisation Mettre des listes d incréments Utiliser des conditions d arrêt compliquées

235 Cequ ona couvert Les composants d une boucle «for» Les avantages du for sur le while Les écritures limites du «for»

236 Utiliser des boucles Utiliser des ArrayListdans une boucle for Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

237 Plan Remarques sur le contenu d une ArrayList Parcourir une ArrayListen utilisant «get» Parcourir une ArrayList en utilisant un itérateur

238 Remarques sur le contenu d une ArrayList ArrayList est une implémentation tableau Depuis Java5, ArrayList peut être typé : ArrayList<String> Avant, ArrayList contient des Object Il est possible de récupérer le ièmeélément du tableau L ordre est conservé!

239 Parcourir une ArrayListavec get Avec la méthode «get», on peut passer un indice Récupérer le ième élément La méthode «size» donne le nombre d éléments présents

240 Parcourir une ArrayListavec des itérateurs Un itérateurest une sorte de «curseur» sur l ArrayList Il peut avancer et donner l élément courant L indice auquel on accède n est plus important Pratique si on veut juste parcourir du premier au dernier

241 Cequ ona couvert Remarques sur le contenu d une ArrayList Parcourir une ArrayListen utilisant «get» Parcourir une ArrayList en utilisant un itérateur

242 Utiliser des boucles Comprendre la portée des variables Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

243 Plan Définir la portée d une variable Les variables locales et les paramètres Les variables champ de donnée Pourquoi n y a t-il pas en Java de variable de portée globale?

244 Définir la portée d une variable La zone de code où l accès à la variable est possible Plus la portée est réduite, plus la gestion de la ressource est simple La donnée disparaît elle-même dans certains cas Lorsqu on sort de la portée d une référence, on n accède PLUS à l objet En Java, les blocs { } limite la portée d une variable

245 Les variables locales et paramètres Une variable locale ne peut pas être utilisée en dehors de la méthode dans laquelle elle est déclarée Pour garder la donnée, il faut la recopier dans une autre variable Retour de fonction Variable attribut Les paramètres sont des sortes de variables locales La valeur est fournie par l appelant

246 Les variables champ de donnée Un attribut, ou champ de donnée a une portée limitée par la classe Il appartient à l objet ou à la classe (cfstatic) L attribut a donc une portée supérieure à celle d une variable locale

247 Pas de variables globales en Java La portée ultime serait la variable globale Mais ce type de portée pose des problèmes Difficile de maîtriser qui utilise la variable Etat de la variable cahotique Avec le «static», certains essaient de recréer la situation d une portée globale

248 Cequ ona couvert Définir la portée d une variable Les variables locales et les paramètres Les variables champ de donnée Pourquoi n y a t-il pas en Java de variable de portée globale?

249 Utiliser des méthodes Créer et appeler des méthodes Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

250 Plan Créer une méthode dans une classe Appeler une méthode

251 Créer une méthode Pour réaliser un traitement sur les données de l objet Une méthode a une implémentation Pour proposer un service à l extérieur Une méthode a une signature Les variables : locale, paramètre, champ Le retour n est pas obligatoire

252 Appeler une méthode Il faut accéder à un objet de ce type Utiliser l opérateur «.» pour sélectionner la méthode Passer des arguments Utiliser ou non le retour

253 Cequ ona couvert Créer une méthode dans une classe Appeler une méthode

254 Utiliser des méthodes Transmettre des arguments Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

255 Plan Le passage des arguments à l appel Le passage de primitives Le passage d objets

256 Le passage des arguments à l appel Lors de l appel de la méthode, utiliser les parenthèses Les parenthèses seules si pas d argument La liste des arguments sans leurs types Les arguments doivent correspondre aux types attendus Il n est pas possible d omettre des arguments Pas de valeurs par défaut sur les paramètres

257 Le passage de primitives Les primitives sont toujours recopiées dans la méthode Les paramètres sont donc en IN Il n y a aucun mot clé pour changer ce comportement On dit que les primitives sont passées par valeur

258 Le passage des objets Les objets sont référencés La copie entière des objets n existe pas en Java Le passage ne concerne que les références des objets On dit que les objets sont passés par références

259 Cequ ona couvert Le passage des arguments à l appel Le passage de primitives Le passage d objets

260 Utiliser des méthodes Créer des méthodes et des variables statiques Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

261 Plan Créer des variables statiques et les utiliser Créer des méthodes statiques et les utiliser

262 Créer des variables statiques et les utiliser Définition d une variable statique Une variable qui est allouée en dehors des objets La syntaxe pour déclarer un champ statique :«static» L intérêt des champs statiques Unicité de l information pour tous les objets Accès aux données sans objet Utilisation dénoncée : une variable globale en Java!!

263 Créer des méthodes statiques et les utiliser Syntaxe de la méthode statique :«static» Utilisation de la méthode statique : appel sur LA CLASSE D où le nom : méthode de classe Intérêt : appeler une méthode sans créer un objet Parce qu aucun objet n existe Parce que la création d un objet coûte cher Parce qu on n a pas accès à l objet

264 Cequ ona couvert Créer des variables statiques et les utiliser Créer des méthodes statiques et les utiliser

265 Utiliser des méthodes Utiliser des modificateurs Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

266 Plan Les modificateurs : public, protected, private Visibilité par défaut, sans modificateur Visibilité «private» Visibilité «protected» Visibilité «public»

267 Les modificateurs Un mot-clé que l on place avant la déclaration du membre Les modificateurs de visibilité Pour régler l encapsulation Les mots-clés «static», «final»,

268 La visibilité par défaut Un membre sans visibilité Toutes les classes du même package peuvent y accéder Intéressant pour les infos/traitements partagés par le package

269 La visibilité private Pour protéger les données internes à l objet Accessible uniquement par le code de la classe elle-même Les membres «private» font partie de l implémentation

270 La visibilité protected Un accès intermédiaire Toutes les classes du package y accèdent Et aussi toutes les classes filles cfhéritage Permet d ouvrir un accès en direction des futures classes étendues Intéressant surtout pour les méthodes

271 La visibilité public La visibilité la plus large Expose les accès à tout le code Intéressant surtout pour des méthodes Des champs de données «public» devraient être «final» Correspond à des offres de services pour l extérieur, qui appelle Attention à ne pas confondre visibilité et portée

272 Cequ ona couvert Les modificateurs : public, protected, private Visibilité par défaut, sans modificateur Visibilité «private» Visibilité «protected» Visibilité «public»

273 Utiliser des méthodes Utiliser la surcharge des méthodes Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

274 Plan La syntaxe de la surcharge Appeler une méthode surchargée La surcharge et l héritage

275 La syntaxe de la surcharge Plusieurs méthodes peuvent avoir le même nom, avec des paramètres différents La signature d une méthode comprend son nom ET ses arguments

276 Appeler une méthode surchargée Choisir les arguments à passer Nombre d arguments Type des arguments Le compilateur fait le bon appel Tout est figé à la compilation On parle parfois de polymorphisme de surcharge

277 La surcharge et l héritage La surcharge est résolue à travers l héritage Une classe fille peut enrichir l interface en ajoutant une surcharge Ne pas confondre Surcharge Redéfinition

278 Cequ ona couvert La syntaxe de la surcharge Appeler une méthode surchargée La surcharge et l héritage

279 Utiliser l encapsulation et les constructeurs Créer des constructeurs Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

280 Plan L initialisation des objets Le rôle des constructeurs Les blocs d initialisation

281 L initialisation des objets Les champs de donnée sont mis à «0» 0 pour les entiers, 0.0 pour les flottants, \u0000 pour char Pour les références, nullet false pour les booléens Cette initialisation par défaut est rarement suffisante Il est possible de donner une valeur à la déclaration du champ

282 Le rôle des constructeurs Par défaut, le compilateur génère un constructeur sans paramètre La réécriture de ce constructeur est possible Il est possible de créer d autres constructeurs, avec des signatures différentes Le rôle du constructeur est d initialiser les champs de l objet Afin que l objet soit dans un bon état

283 Les blocs d initialisation On peut simplement écrire un bloc { } dans lequel on initialise les champs Ce bloc peut être marqué «static», dans ce cas ce bloc sert à initialiser les champs «static»

284 Cequ ona couvert L initialisation des objets Le rôle des constructeurs Les blocs d initialisation

285 Utiliser l encapsulation et les constructeurs Implémenter l encapsulation Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

286 Plan L encapsulation par la visibilité des membres L encapsulation par la visibilité des classes

287 L encapsulation par la visibilité des membres Les membres dans une classe sont par défaut accessible des autres classes du package Les visibilités «public», «protected» et «private» permettent de régler ces accès Ces visibilités s entendent par rapport à la classe Cela n a pas de rapport avec la portée

288 L encapsulation par la visibilité des classes Une classe par défaut n est accessible que depuis son package Une classe peut être «public», et elle devient accessible de l extérieur Cela n a pas de rapport avec la portée Un package bien construite propose un ou plusieurs points d entrée, mais ne montre pas toutes les classes qu il contient

289 Cequ ona couvert L encapsulation par la visibilité des membres L encapsulation par la visibilité des classes

290 Concepts avancés Utiliser l héritage Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

291 Plan La relation de généralisation-spécialisation Les conséquences en termes d héritage Le mot-clé «extends»

292 La relation de généralisation-spécialisation Une relation statique entre classe Qui relie un concept général à un concept spécialisé Chat->Félin Qui évite les doublons Les membres de Félin sont hérités par le Chat Qui introduit des variations sur un thème Le Chat parle d une façon spécifique

293 Les conséquences en terme d héritage Les membres sont tous hérités Les membres publiques de l ancêtre restent publiques sur la classe fille Seuls les membres privés de l ancêtre sont inaccessibles de la fille La classe fille peut compléter Les méthodes en en ajoutant Les champs de données en en ajoutant Les méthodes en les redéfinissant

294 Le mot clé extends La relation de généralisation-spécialisation correspond à une extension De type De comportement Le mot clé «extends» suffit à établir la relation La classe fille se substitue alors à a sa mère

295 Cequ ona couvert La relation de généralisation-spécialisation Les conséquences en termes d héritage Le mot-clé «extends»

296 Concepts avancés Polymorphisme Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

297 Plan La redéfinition des méthodes Mettre en œuvre le polymorphisme Savoir utiliser le polymorphisme

298 La redéfinition des méthodes La relation de généralisation-spécialisation suppose l héritage des membres de la classe mère par la classe fille Cette relation est utile lorsque la sous-classe est une spécialisation de la super-classe Cette spécialisation peut être due à une redéfinition de certains comportements Redéclarerdans la sous-classe la même méthode que dans la super-classe, mais modifier le corps de la méthode

299 Mettre en œuvre le polymorphisme Il suffit de : Disposer d un héritage Redéfinir une méthode Pointer sur un objet en tant que super-classe Appeler la méthode redéfinie

300 Savoir utiliser le polymorphisme Utiliser le polymorphisme lorsqu on identifie une comportement qui dépend du type de l objet Ne pas tester le type des objets Moindre usage de la logique conditionnelle Arbitrage entre simplicité et sécurité des appels

301 Cequ ona couvert La redéfinition des méthodes Mettre en œuvre le polymorphisme Savoir utiliser le polymorphisme

302 Concepts avancés Utiliser des super-classeset des sous-classes Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

303 Plan Des super-classes pour factoriser les membres Substituer des sous-classes aux super-classes Spécialiser les comportements des sous-classes

304 Des super-classespour factoriser Lorsque des classes contiennent des membres communs Faire apparaître une super-classe qui regroupe ces membres communs Cette super-classe peut être abstraite Elle peut contenir une ou plusieurs méthodes abstraites

305 Substituer des sous-classes Une sous-classe doit être conforme à l interface de la super-classe Elle contient 100% des données Elle répond à 100% des méthodes La signification des méthodes doit être conforme

306 Spécialiser le comportement Une sous-classe peut proposer des attributs et des méthodes en plus Elle peut redéfinir une ou plusieurs méthodes Même signature, mais corps différent Le comportement différent repose sur le fait que la méthode s exécute différemment Pas de mot-clé spécifique, mais une annotation optionnelle

307 Cequ ona couvert Des super-classes pour factoriser les membres Substituer des sous-classes aux super-classes Spécialiser les comportements des sous-classes

308 Concepts avancés Ajouter un niveau d abstraction Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

309 Plan Les abstractions en Java : classes et interfaces Intérêts d utiliser des abstractions Les abstractions dans le framework Analyse et conception

310 Les abstractions en Java Une classe abstraite Est une classe qui ne peut pas être instanciée Peut contenir des méthodes abstraites Contient en général des attributs et des méthodes implémentées Une interface Est un type non instanciable Ne peut contenir aucune implémentation d instance

311 Intérêts des abstractions Une abstraction est stable Le code qui utilise une abstraction ne bouge pas Une abstraction sert de point de stabilité entre modules

312 Les abstractions dans le framework Exemple d une classe abstraite : AbstractList On hérite d une classe abstraite pour profiter d une partie d implémentation Exemple d une interface : ActionListener Pour introduire une fonction de rappel en face d un bouton

313 Analyse et conception Une abstraction en analyse Une classe abstraite pour factoriser des données et des traitements Exemple de la bibliothèque Une abstraction en conception Indépendance des modules via une interface

314 Cequ ona couvert Les abstractions en Java : classes et interfaces Intérêts d utiliser des abstractions Les abstractions dans le framework Analyse et conception

315 Concepts avancés Les interfaces en Java Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

316 Plan Définition et syntaxe des interfaces Définir une interface Implémenter une interface Cas d usage connus

317 Définition et syntaxe d une interface Une interface est un type sans implémentation Dans son propre fichier Impossible d implémenter les méthodes Les méthodes sont forcément public Si des attributs existent, ils sont «static»,«final» et «public»

318 Définir une interface En tant que code client J ai besoin de telles et telles méthodes Mais je n ai pas besoin de savoir comment elles sont implémentées

319 Implémenter une interface S engager à fournir une implémentation pour chaque méthode prévue par l interface Le compilateur vérifie la présence de cette implémentation

320 Cas d usage connus Interconnexions entre modules Définition des services d objets distribués Sous-interface de Remote Définition des webservices Abstraction des conteneurs : List, Set, Map

321 Cequ ona couvert Définition et syntaxe des interfaces Définir une interface Implémenter une interface Cas d usage connus

322 La gestion des erreurs Les différents types d erreur Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

323 Plan Les erreurs de syntaxe Les erreurs de logique, de programmation Les erreurs exceptionnelles dues à l environnement

324 Les erreurs de syntaxe Empêchent la compilation Seront corrigées pour livrer Attention, en Java la compilation de chaque classe est indépendante Exemple : erreur de syntaxe empêchant la compilation

325 Les erreurs de logique, de programmation «Une bonne lecture élimine 80% des erreurs» N ont pas à être gérées Doivent être corrigées par le développeur Garder un code lisible Réfléchir la conception avant d écrire le code Exemple : une variable référence n est pas initialisée

326 Les erreurs exceptionnelles Dues à l environnement d exécution, difficiles à prévoir Sont souvent «gérées»: le compilateur les détecte Typiquement non prises en compte lors du prototypage Exemple : un fichier n existe pas alors qu il devrait

327 Cequ ona couvert Les erreurs de syntaxe Les erreurs de logique, de programmation Les erreurs exceptionnelles dues à l environnement

328 La gestion des erreurs Présentation des types d exceptions Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

329 Plan Nature de l exception Les exceptions runtime Les exceptions gérées Les exceptions de l utilisateur

330 Nature de l exception Une exception est un objet D une classe qui hérite de java.lang.exception Cet objet est créé lors de la levée de l exception Il est récupéré dans le bloc du gestionnaire d erreur

331 Les exceptions runtime Exceptions qui correspondent à des erreurs de programmation Ne sont pas gérées : non signalées par le compilateur NullPointerException: accès à un membre via une référence null IllegalArgumentException: l argument ne correspond pas à l attendu ArrayIndexOutOfBoundException: débordement d un tableau ArithmeticException: exceptions comme la division entière par zéro

332 Les exceptions gérées Ces exceptions correspondent à des erreurs dues à l environnement Ressources non disponibles, manque de droits d accès, Spécifiées par les méthodes Prise en compte par le compilateur qui oblige à gérer l appel FileNotFoundException: fichier non trouvé IOException: problème d accès aux entrées-sorties SqlException: erreur remontée du SGBD

333 Les exceptions de l utilisateur Créer une classe qui hérite de java.lang.exception Attributs, méthodes, constructeurs comme toute classe Créer un objet de cette classe et utiliser «throw» Les erreurs bas-niveau doivent être signalées par des exceptions

334 Cequ ona couvert Nature de l exception Les exceptions runtime Les exceptions gérées Les exceptions de l utilisateur

335 La gestion des erreurs Utiliser Javadocspour rechercher des exceptions Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

336 Plan Le rôle du compilateur pour les exceptions gérées La spécification des exceptions par les méthodes

337 Le rôle du compilateur Le compilateur lit la spécification des exceptions Il engage le développeur à gérer les exceptions Ce contrôle n est pas réalisé pour les exceptions runtime

338 La spécification des exceptions La documentation référence les exceptions levées par les méthodes Trouver la classe qui contient la méthode Trouver la spécification des exceptions Pour les exceptions gérées, le compilateur nous guide Exemple : Integer.parseInt( )

339 Cequ ona couvert Le rôle du compilateur pour les exceptions gérées La spécification des exceptions par les méthodes

340 La gestion des erreurs Ecrire du code pour gérer les exceptions Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

341 Plan Gérer une exception détectée par le compilateur Lever une exception Créer son propre type d exception Réinterpréter une exception

342 Gérer une exception Le mot-clé «try» permet d isoler le code nominal Correspond à une méthode Suivi de un ou plusieurs blocs «catch» qui sont typés par une classe d exception Soit le trys exécute puis le code après les catch Soit le tryest interrompu et un catch est exécuté, puis le code après le catch Possibilité de placer un bloc «finally», toujours exécuté

343 Lever une exception Utiliser le mot-clé «throw» pour lever une exception Cette exception est simplement un objet créé pour l occasion Branchement à l exécution vers le plus proche «catch» Remonte vers les appelants en cherchant un bloc catch qui accepte l objet levé Il faut spécifier la levée d exception dans la signature de la méthode Sauf pour une exception runtime

344 Créer son propre type d exception Créer une classe qui hérite (au moins) de java.lang.exception Déclarer les membres et constructeurs nécessaires Pour capter le contexte d erreur (à la construction de l objet, «throw») Pour restituer les infos sur l erreur (dans un «catch») Lever cette exception lorsqu on détecte les situations irrécupérables

345 Réinterpréter une exception Dans un bloc catch, relancer une exception Pour réinterpréter l exception, la nouvelle exception étant : Plus claire dans le contexte de l utilisateur Traduite dans la culture du poste D une granularité différente de l exception d origine L occasion de rétablir l état du système

346 Cequ ona couvert Gérer une exception détectée par le compilateur Lever une exception Créer son propre type d exception Réinterpréter une exception

347 Vue d ensemble Créer des packages et des fichier.jar Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

348 Plan Les packages Les fichiers.jar Utiliser des fichiers.jar pour livrer une application

349 Les packages Conceptuellement : un regroupement de classes Physiquement : un répertoire qui contient les fichiers.java Logiquement : un sous-système qui isole des classes travaillant ensemble et proposant des points d entrée

350 Les fichiers.jar Créé par l outil jar (disponible dans le jdk) Fichier compressé zippé Contient tout et n importe quoi, mais surtout : Des fichiers.class (binaire Java) Un manifeste : description du contenu, en particulier la classe qui contient le «main»

351 Utiliser les fichiers.jar pour livrer Il n y a pas d exeen Java Pour livrer une bibliothèque de classes Les classes restent organisées en packages, répertoires Pour livrer une application En spécifiant la classe principale

352 Cequ ona couvert Les packages Les fichiers.jar Utiliser des fichiers.jar pour livrer une application

353 Vue d ensemble Architecture en 2 ou 3 niveaux Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

354 Plan Architecture et niveaux Architecture 2 niveaux Architecture 3 niveaux

355 Architecture et niveaux L architecture est l effort d organisation générale de l application La conception devra se conformer à l architecture Faire plusieurs niveaux permet de séparer les responsabilités Améliorer la maintenabilité de chaque niveau Améliorer la cohérence Favoriser l évolutivité

356 Architecture 2 niveaux Séparer la présentation et des données Répartir ou pas les services de l application Architecture logique, pas forcément physique Client-serveur En Java, la communication est : socket, RMI, jdbc

357 Architecture 3 niveaux Présentation services données Architecture logique qui peut correspondre ou pas au physique En Java : présentation sous HTML, JSP, Servlet, Swing. services : classes Java, Servlet, Données accessibles via javabeans, EJB, jdbc

358 Cequ ona couvert Architecture et niveaux Architecture 2 niveaux Architecture 3 niveaux

359 Vue d ensemble Exemples d applications Java Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

360 Plan L application standalone, console L application Applet L application Servlet, associée à JSP L application Android

361 L application standalone, console Avec une classe qui a un «main» Cette méthode est le point d entrée de l application Le main est exécuté séquentiellement Une ihmgraphique peut être gérée Exécuté sur le système d exploitation Cas particulier de Java Web Start

362 L application Applet Une applet hérite de Applet Instanciée et exécutée dans le contexte d un navigateur Un cycle de vie spécifique Accès limité au système Déploiement via un accès http

363 L application Servlet Un servlet hérite de Servlet Est instanciée et exécutée sur un serveur Conteneur de servlet Répond aux méthodes HTTP (Get, Post ) Peut écrire du HTML, mais plutôt logique applicative Est souvent associée à la technique des JSP

364 L application Android Une application Java spéciale Machine virtuelle spécifique API spécifique Cycle de vie contraint Typiquement construite avec un IDE spéciale

365 Cequ ona couvert L application standalone, console L application Applet L application Servlet, associée à JSP L application Android

366 Conclusion Conclusion Site : Blog : Forum : Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

367 Plan Présentation de la technologie Java Concepts avancés de l objet Penser en termes objet Gestion des erreurs Présentation du langage Java Vue d ensemble Utiliser des variables primitives Utiliser des objets Utiliser des opérateurs et des décisions Créer et utiliser des tableaux Utiliser des structures en boucles Utiliser des méthodes et la surcharge Utiliser l encapsulation et les constructeurs

368 Pour continuer Le module avancé de la formation Java Ne pas oublier la documentation Javadoc, en ligne ou sur le poste

Programmer en JAVA. par Tama ([email protected]( [email protected])

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama ([email protected]( [email protected]) 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

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

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

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

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

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

Java Licence Professionnelle CISII, 2009-2010

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

Plus en détail

Initiation à JAVA et à la programmation objet. [email protected]

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet [email protected] 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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]

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 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

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

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 [email protected] Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Programmation 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

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut [email protected] http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

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 [email protected]

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

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

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 [email protected] B. Carré Polytech Lille 2 Java (Sun 1995)

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

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

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

La technologie Java Card TM

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

Plus en détail

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

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en dé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 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

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

Aide mémoire UML & Java 1ère partie : Introduction. [email protected]

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr Aide mémoire UML & Java 1ère partie : Introduction [email protected] 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

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

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

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

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

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

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

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

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

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 [email protected] Mis à jour par François-Xavier Dupé Université d Aix-Marseille [email protected]

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 d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

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

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. [email protected] 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 [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

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

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

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

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

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en dé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

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

CIE303 - Programmation Orientée Objet en Java

CIE303 - Programmation Orientée Objet en Java Module 303 Programmation orientée objet en Java Version 1.0 (Fortement inspiré et traduit de «The Java Tutorial» http://docs.oracle.com/javase/tutorial/) 02.02.2013 [1] 1. Table des matières Sommaire 1.

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

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

Java - la plateforme

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

Plus en détail

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:[email protected] ou mailto:[email protected] SERLI informatique SERLI : www.serli.com

Plus en détail

Programmation Orientée Objet

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

Plus en détail

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

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en dé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 [email protected] LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

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

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 à l algorithmique et à la programmation M1102 CM n 3

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY [email protected] IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

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

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

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

La carte à puce. Jean-Philippe Babau

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

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en dé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

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

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

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

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

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

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en dé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 d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU [email protected] Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

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

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

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix ([email protected]) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

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

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron [email protected] 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie [email protected] 2 Programmation Impérative

Plus en détail

Machines Virtuelles. et bazard autour. Rémi Forax

Machines Virtuelles. et bazard autour. Rémi Forax Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]

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

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut [email protected] http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail