Java les fondamentaux (examen 1Z0-803)
|
|
|
- Solange Soucy
- il y a 9 ans
- Total affichages :
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 ([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
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
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
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
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
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
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
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 :
Initiation à JAVA et à la programmation objet. [email protected]
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
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
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 Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
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é)
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/
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
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
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
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)
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
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]
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..............................
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
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)
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
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
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
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
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
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
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
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..........................
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
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
Aide mémoire UML & Java 1ère partie : Introduction. [email protected]
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.....................................
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
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
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
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
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++
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.
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
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
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]
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
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
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
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
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
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 [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
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
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
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
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
É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
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
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...
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
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
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
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
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.
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
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
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)
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
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
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],
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
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
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
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
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
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
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
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
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..............
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
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
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
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
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
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
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
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
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
//////////////////////////////////////////////////////////////////// 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
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
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à
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
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
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
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
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
É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
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
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 (
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
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
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[]
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
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
