Java les fondamentaux (examen 1Z0-803)



Documents pareils
Programmer en JAVA. par Tama

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Plan du cours. Historique du langage Nouveautés de Java 7

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

TP1 : Initiation à Java et Eclipse

as Architecture des Systèmes d Information

Langage Java. Classe de première SI

Java Licence Professionnelle CISII,

Initiation à JAVA et à la programmation objet.

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Une introduction à Java

Cours 1: Java et les objets

Java c est quoi? Java pourquoi?

Java Licence Professionnelle CISII,

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation en Java IUT GEII (MC-II1) 1

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

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Utilisation d objets : String et ArrayList

PROGRAMMATION PAR OBJETS

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

Bases Java - Eclipse / Netbeans

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

La technologie Java Card TM

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

INITIATION AU LANGAGE JAVA

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

Apprendre Java en 154 minutes

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

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

Chapitre 2. Classes et objets

Notions fondamentales du langage C# Version 1.0

INF 321 : mémento de la syntaxe de Java

TP1. Outils Java Eléments de correction

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Premiers Pas en Programmation Objet : les Classes et les Objets

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation Orientée Objets Le Langage JAVA

Annexe : La Programmation Informatique

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

STAGE IREM 0- Premiers pas en Python

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Algorithmique et Programmation, IMA

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

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

TP 1. Prise en main du langage Python

Chapitre I Notions de base et outils de travail


Évaluation et implémentation des langages

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

Généralités sur le Langage Java et éléments syntaxiques.

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

Introduction au langage C

Conventions d écriture et outils de mise au point

Traduction des Langages : Le Compilateur Micro Java

CIE303 - Programmation Orientée Objet en Java

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Java - la plateforme

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

Programmation Orientée Objet

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Eclipse atelier Java

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

Héritage presque multiple en Java (1/2)

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Introduction à l algorithmique et à la programmation M1102 CM n 3

Chapitre VI- La validation de la composition.

4. Groupement d objets

Algorithme. Table des matières

La carte à puce. Jean-Philippe Babau

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

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

Auto-évaluation Programmation en Java

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Vulgarisation Java EE Java EE, c est quoi?

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

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

Présentation du langage et premières fonctions

Cours 1 : La compilation

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

Les chaînes de caractères

Cours d Algorithmique et de Langage C v 3.0

TP1 : Initiation à Java et Eclipse

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

Éléments de programmation et introduction à Java

Programmation Web. Madalina Croitoru IUT Montpellier

Solutions du chapitre 4

TP, première séquence d exercices.

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

Machines Virtuelles. et bazard autour. Rémi Forax

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

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

Transcription:

Présentation de la formation Java les fondamentaux (examen 1Z0-803) Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

Présentation du formateur Fabien Brissonneau Email : fabien.brissonneau@gmail.com 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: http://fr.viadeo.com/fr/profile/fabien.brissonneau Mon profil LinkedIn: http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/

Mes formations sur alphorm

Les autres formations dévsur Alphorm

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

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

Certification OCA suite à l examen 1Z0-803

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

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

Scoop Formation à apparaitre prochainement sur alphorm

Allons-y! Nous pouvons démarrer!!

Présentation Associer Java à d autres langages Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

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

Présentation Téléchargement et installation de Java Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Présentation Les technologies Java Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

Plan Java SE Java EE Embedded Java

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

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é)

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

Cequ ona couvert Java SE Java EE Embedded Java

Présentation Caractéristiques principales et les avantages de la technologie Java Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

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

Présentation Utiliser un environnement de développement intégré Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Penser en termes d objets Définir le domaine du problème Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Penser en termes d objets Identifier les objets Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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)

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

Présentation du langage Java Définir les classes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Présentation du langage Java Identifier les composants d une classe Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Présentation du langage Java Créer et utiliser une classe de test Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Présentation du langage Java Compiler et exécuter un programme de test Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

Utiliser des primitives Déclarer et initialiser des variables de champs Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des primitives Décrire les types primitifs Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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)

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)

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

Utiliser des primitives Déclarer des variables et leur affecter des valeurs Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des primitives Utiliser des constantes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des primitives Utiliser des opérateurs arithmétiques Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

Utiliser des objets Déclarer et initialiser des objets Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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()

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

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

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

Utiliser des objets Stocker des objets en mémoire Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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»

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

Utiliser des objets Utiliser des références d objets Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des objets Utiliser les javadocs Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des objets Utiliser des objets String et StringBuilder Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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()

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

Utiliser des opérateurs et des structures décisionnelles Opérateurs relationnels et conditionnels Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

Plan Les opérateurs relationnels Les opérateurs conditionnels

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

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

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

Utiliser des opérateurs et des structures décisionnelles Tester l égalité entre chaînes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

== 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»

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

Utiliser des opérateurs et des structures décisionnelles Evaluer différentes conditions et coder Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

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

Utiliser des opérateurs et des structures décisionnelles Créer des if et if/else Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des opérateurs et des structures décisionnelles Enchaîner les conditions Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des opérateurs et des structures décisionnelles L instruction switch Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

Quand utiliser le switch Reste simple et inévitable

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

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

Créer et utiliser des tableaux Déclarer et instancier un tableau à 1 dimension Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Créer et utiliser des tableaux Déclarer et instancier un tableau à 2 dimensions Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

Créer et utiliser des tableaux Utiliser une boucle for dans le tableau Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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) {}

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

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

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

Créer et utiliser des tableaux Créer et initialiser une ArrayList Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Créer et utiliser des tableaux Utiliser l instruction import Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

Plan Le package java.util Utiliser import

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

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

Cequ ona couvert Le package java.util Utiliser import

Créer et utiliser des tableaux Accéder à une valeur d un tableau Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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)

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

Créer et utiliser des tableaux Utiliser le tableau args Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des boucles Coder une do/while Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des boucles Développer une boucle for Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des boucles Utiliser des ArrayListdans une boucle for Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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é!

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

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

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

Utiliser des boucles Comprendre la portée des variables Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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?

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

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

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

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

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?

Utiliser des méthodes Créer et appeler des méthodes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

Utiliser des méthodes Transmettre des arguments Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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

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

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

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

Utiliser des méthodes Créer des méthodes et des variables statiques Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

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

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