Professional Documents
Culture Documents
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Prsentation du formateur
Les autres formations sur Alphorm
Quest-ce que Java ?
Le plan de la formation
Prsentation des outils
Les publics concerns
alphorm.com
Prsentation du formateur
Fabien Brissonneau
Email : fabien.brissonneau@gmail.com
Consultant Concepteur et Formateur
Missions darchitecture, de conception , de ralisation logicielles
Fondateur de eiXa6
Actuellement en mission sur un projet de gestion
Mes rfrences :
Mon profil Viadeo : http://fr.viadeo.com/fr/profile/fabien.brissonneau
Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Le plan de la formation
Prsentation de la technologie Java
Penser en termes objet
Prsentation du langage Java
surcharge
Utiliser lencapsulation et les
constructeurs
Vue densemble
dcisions
Crer et utiliser des tableaux
Utiliser des structures en boucles
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Scoop
Formation apparaitre prochainement sur alphorm
alphorm.com
Allons-y !
Nous pouvons dmarrer !!
alphorm.com
Prsentation
Associer Java dautres
langages
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Historique
Caractristiques essentielles du langage
Comparer Java C++
Comparer Java C#
Comparer Java Python
alphorm.com
Historique
Dmarre 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
alphorm.com
Caractristiques essentielles
Langage la syntaxe simple
Langage gnraliste
Langage indpendant de la plateforme
Langage orient objet
Langage prvu pour le support du rseau
alphorm.com
alphorm.com
Comparer Java C#
Objectifs : C# est li au monde Microsoft et Java nest pas li un constructeur
Syntaxe : C# et Java ont une syntaxe simple. C# ajoute quelques lments, qui
rapellent le C++
Bibliothque standard : les bibliothques Java et DotNet sont trs larges
Excution : C# et Java tournent sur une machine virtuelle, avec compilation JIT
Paradigme de programmation : C# et Java sont fortement orients objet
Mmoire : C# et Java utilisent un ramasse-miette
Origine et volution : C# est un langage dorigine Microsoft
alphorm.com
composants lis
Syntaxe : Python utilise les indentations, limite la verbosit. Java comme Python
alphorm.com
Ce quon a couvert
Nous avons rappel les caractristiques essentielles de Java
Nous avons compar Java dautres de langages comparables
Par rapport ces langages, Java apparat comme :
Un langage la syntaxe simple
Un langage qui permet une bonne productivit
Un langage fortement typ, qui guide le dveloppeur
Fortement orient objet
Avec une grande bibliothque standard
Ouvert sur le monde
Java, les fondamentaux
alphorm.com
Prsentation
Tlchargement et
installation de Java
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
O trouver Java ?
Les tlchargements disponibles
Installation des outils Java
Configuration de lenvironnement de travail Java
alphorm.com
O trouver Java ?
Le ncessaire pour excuter : www.java.com
Le kit de dveloppement : Java Development Kit (JDK)
Le runtime en 2 versions :
Le Java Rutime Environment (JRE)
Le JRE pour serveur
Sur le site : www.oracle.com/technetwork/java
Oracle participe au Java Community Process, les nouveauts Java sont
alphorm.com
dbuggeur, moniteur)
Enterprise Edition : concerne les applications serveur (multi-tier,
scurises,)
Glassfish
API supplmentaire, documentation et exemples
EE Web Profile : sous-ensemble ne concernant que les applis Web
Micro Edition : pour des applications embarques, mmoire limites,
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
O trouver Java ?
Les tlchargements disponibles
Installation des outils Java
Configuration de lenvironnement de travail Java
alphorm.com
Prsentation
Les technologies Java
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Java SE
Java EE
Embedded Java
alphorm.com
Java SE
Version standard de la livraison Java
Le Java Development Kit (JDK) incluant le SDK JavaFX
Le Java Runtime Environment (JRE) permettant dexcuter les
applications
Le runtime JavaFX
La machine virtuelle Oracle JRockit
alphorm.com
Java EE
Version entreprise de Java
Il existe 2 profils : EE SDK et EE Web Profile SDK
Les deux versions sont livres avec Glassfish
Exemples de code, documentation et tutoriel
Une plateforme pour dployer des applications dentreprise
alphorm.com
Embedded Java
Java pour environnements pauvres en ressources
2 options proposes : Java ME Embedded et Java ME Embedded Client
alphorm.com
Ce quon a couvert
Java SE
Java EE
Embedded Java
alphorm.com
Prsentation
Caractristiques 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
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Syntaxe du langage Java
Les bibliothques Java
La machine virtuelle
La gestion de la ressource mmoire
Louverture des technologies
alphorm.com
alphorm.com
alphorm.com
La machine virtuelle
A lorigine, une machine logicielle qui interprte du bytecode
Le code Java est compil explicitement en bytecode
Les machines virtuelles compilent Just In Time
Un bytecode et une machine trs optimiss
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Syntaxe du langage Java
Les bibliothques Java
La machine virtuelle
La gestion de la ressource mmoire
Louverture des technologies
alphorm.com
Prsentation
Utiliser un environnement
de dveloppement intgr
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
LIDE Netbeans
Crer un projet
Produire partir du projet
LIDE Eclipse
alphorm.com
Netbeans
Environnement dorigine Oracle/Sun
Fournit en bundle avec Java JDK
Plateforme sur laquelle on installe des plugs-in
Supporte plusieurs langages et plusieurs utilisations
alphorm.com
Crer un projet
La notion de projet nest pas Java
Il faut crer un projet Netbeans
Le source Java est cr/compil partir de ce projet
Le projet peut aussi rfrencer des lments extrieurs
Le projet est typ , les rpertoires sont diffremment organiss
alphorm.com
alphorm.com
LIDE Eclipse
Eclipse est une plateforme dorigine IBM
Largement utilise
Indpendante de Java
Plateforme sur laquelle on installe des plugs in
Multilangages, multi-utilisations
alphorm.com
Ce quon a couvert
LIDE Netbeans
Crer un projet
Produire partir du projet
LIDE Eclipse
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Domaine/mtier/analyse/conception/code
Rle du modle du domaine
Rle du modle de conception
Traduction en Java
alphorm.com
alphorm.com
alphorm.com
Le modle de conception
A partir du modle du domaine
Prenant en compte larchitecture technique
Le modle de conception est efficace, performant, et fidle
Il sera traduit en code
alphorm.com
Traduction en Java
Le type dobjet est une classe -> Java
Les attributs sont les donnes
Les mthodes sont les fonctions membres
Les associations sont des attributs rfrences
Le code ninvente quasi rien
Le corps des mthodes nest pas spcifi par un modle de classes
alphorm.com
Ce quon a couvert
Domaine/mtier/analyse/conception/code
Rle du modle du domaine
Rle du modle de conception
Traduction en Java
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Dfinition dun objet
Pourquoi parler de classes
Dfinir un bon objet mtier
Les classes applicatives
Vocabulaire
alphorm.com
dessus
Un objet a des frontires bien dfinies, des tats et des comportements
alphorm.com
description du problme
Une classe est aussi le descripteur dobjets
Il y a plusieurs sortes de classes (mtier, applicatives)
Une classe est lisible dans les services quelle rend
alphorm.com
alphorm.com
alphorm.com
Vocabulaire
Les classes contiennent toutes les donnes et traitements
Rien ne peut tre en dehors des classes
Les objets masquent leur implmentation : cest lencapsulation
Les classes dfinissent :
des attributs (donnes)
des mthodes (traitements)
alphorm.com
Ce quon a couvert
Dfinition dun objet
Pourquoi parler de classes
Dfinir un bon objet mtier
Les classes applicatives
Vocabulaire
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Une classe dfinit les attributs et les mthodes
Les visibilits autorisent ou interdisent les accs aux membres
Les constructeurs sont remarquables
La dfinition de la classe peut supporter des modificateurs
alphorm.com
alphorm.com
Les visibilits
Pour implmenter lencapsulation
Visibilits : par dfaut, private, protected, public
Limitent laccs aux membres par dautres morceaux de code
alphorm.com
Les constructeurs
Les constructeurs sont des mthodes
Qui portent le nom de la classe
Nont pas de type de retour
Initialisent les attributs
Lappel dun constructeur est implicite
alphorm.com
alphorm.com
Ce quon a couvert
Une classe dfinit les attributs et les mthodes
Les visibilits autorisent ou interdisent les accs aux membres
Les constructeurs sont remarquables
La dfinition de la classe peut supporter des modificateurs
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les composants possibles
Crer des attributs
Crer des constructeurs
Crer des mthodes
alphorm.com
alphorm.com
capitalisation
En gnral, la visibilit est prive
Le type de ce champ de donne est :
Un type fondamental (int, )
Une chane de caractres (String)
Une rfrence vers un autre type, standard ou utilisateur
alphorm.com
alphorm.com
de ce type
alphorm.com
Ce quon a couvert
Les composants possibles
Crer des attributs
Crer des constructeurs
Crer des mthodes
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Dfinition dune classe de test
Construction dune classe de test
Utilisation simple dune classe de test
Utilisation dune classe de test via un framework
alphorm.com
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Dfinition dune classe de test
Construction dune classe de test
Utilisation simple dune classe de test
Utilisation dune classe de test via un framework
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Cration dun programme de test
Lancement dun programme de test JUnit
alphorm.com
alphorm.com
test simplifi
Lancement dun ihm spcifique
alphorm.com
Ce quon a couvert
Cration dun programme de test
Lancement dun programme de test
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Quest-ce quune primitive ?
Dclaration dun champ de donne
Initialiser un champ de donne
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Quest-ce quune primitive ?
Dclaration dun champ de donne
Initialiser un champ de donne
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les types entiers
Les types flottants
Le type caractre
Le type boolen
alphorm.com
alphorm.com
alphorm.com
Le type caractre
Reprsent par char
16-bit Unicode, soit de \u0000 \uFFFF
Le type chane de caractre nest pas un type primitif (String)
alphorm.com
Le type boolen
Une valeur soit true, soit false
La taille en mmoire nest pas prcise
Les boolens ne peuvent tre confondus ni avec des entiers, ni avec des
rfrence (null)
alphorm.com
Ce quon a couvert
Les types entiers
Les types flottants
Le type caractre
Le type boolen
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les variables en Java
Comportement des variables locales
Laffectation dune valeur une variable locale
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les variables en Java
Comportement des variables locales
Laffectation dune valeur une variable locale
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Un mot cl pour crer une constante
Une constante en attribut, publique ou non
Une constante en variable locale
alphorm.com
alphorm.com
alphorm.com
const du C++
alphorm.com
Ce quon a couvert
Un mot cl pour crer une constante
Une constante en attribut, publique ou non
Une constante en variable locale
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les oprateurs arithmtiques en Java
Le comportement des types
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les oprateurs arithmtiques en Java
Le comportement des types
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Rfrence vs objet
Rfrence locale, paramtre
Rfrence en attribut
alphorm.com
Rfrence vs objet
Un objet est une zone mmoire alloue avec un new
Pour garder un lien vers cette zone mmoire, on utilise une rfrence
Un objet ne peut pas tre manipul sans rfrence
Lors quun objet nest plus rfrenc, il est finalis
Voiture titine = new Voiture()
alphorm.com
En crant un objet
alphorm.com
Rfrence en attribut
Une rfrence peut tre un attribut
Il sagit dun lien vers un autre objet
Les rgles dinitialisation des types primitifs sappliquent
Valeur null par dfaut
Initialisation lors de la dclaration ou dans un constructeur
alphorm.com
Ce quon a couvert
Rfrence vs objet
Rfrence locale, paramtre
Rfrence en attribut
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Un objet peut rfrencer dautres objets
Rgles daccs aux objets en mmoire
alphorm.com
alphorm.com
rfrencs
Cette rgle sapplique aux graphes dobjets
Suppose que les rfrences sur objet sont comptes
Il faut que le dveloppeur pense mettre ses rfrences null
alphorm.com
Ce quon a couvert
Un objet peut rfrencer dautres objets
Rgles daccs aux objets en mmoire
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Rfrence et objets
Accder un champ dun objet
Accder une mthode dun objet
alphorm.com
Rfrence et objet
Un objet est accessible via les rfrences qui pointent vers lui
Une rfrence est un accs mmoire, mais non explicite
La slection des membres se fait avec loprateur .
Obtenir une rfrence un objet se fait :
En crant soi-mme lobjet
En invoquant une mthode qui cre lobjet et nous le retourne
En rcuprant la rfrence en paramtre
alphorm.com
Accder un champ
Via une rfrence, on obtient un accs aux membres
Si le champ est accessible (champ public par exemple)
Avec un code genre : ref . attribut
Je peux lire, modifier lattribut de lobjet point par ref
Un accs direct un champ est rare, car cela ne respecte pas
lencapsulation
alphorm.com
alphorm.com
Ce quon a couvert
Rfrence et objets
Accder un champ dun objet
Accder une mthode dun objet
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Quest-ce que javadoc ?
Visiter la documentation de jse
Appliquer la documentation dans son code
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Quest-ce que javadoc ?
Visiter la documentation de jse
Appliquer la documentation dans son code
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
La chane de caractres String
Les limites de la classe String
Lintrt de StringBuilder
alphorm.com
alphorm.com
autre
Trs peu efficace pour crer un buffer
alphorm.com
Lintrt de StringBuilder
La classe StringBuilder na pas de relation de type avec String
Ddie la gestion de buffer
Ajout de morceaux de chanes
Troncature alatoire
On obtient tout moment le buffer via toString()
alphorm.com
Ce quon a couvert
La chane de caractres String
Les limites de la classe String
Lintrt de StringBuilder
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les oprateurs relationnels
Les oprateurs conditionnels
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les oprateurs relationnels
Les oprateurs conditionnels
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Lgalit physique ou smantique des objets
La classe String et ses mthodes
== ou bien equals() ?
alphorm.com
le test smantique
Le test smantique se fait PAR les objets eux-mmes
Il ny a pas de test smantique par dfaut en Java
alphorm.com
casse
alphorm.com
== ou bien equals()
== est un test physique
Les mthodes equals ou equalsIgnoreCase testent le contenu
== peut servir identifier le contenu CAR String est une immutable
value
alphorm.com
Ce quon a couvert
Lgalit physique ou smantique des objets
La classe String et ses mthodes
== ou bien equals() ?
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les expressions boolennes
Tester une seule condition, simple ou complexe
Tester une suite de condition
Un branchement complexe
alphorm.com
true ou false
Un numrique ou une rfrence ne sont pas des boolens
Le type boolean reprsente une variable boolenne
alphorm.com
alphorm.com
alphorm.com
Un branchement complexe
Lorsquune seule variable est tester, pour un ensemble de valeurs
En utilisant switch / case , on simplifie un peu
Mais la variable est forcment primitive
Peu tre le signe dun manque de conception objet
alphorm.com
Ce quon a couvert
Les expressions boolennes
Tester une seule condition, simple ou complexe
Tester une suite de condition
Un branchement complexe
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Linstruction if
Le couple if / else
Lintense if / else / if /else /
alphorm.com
Linstruction if
Linstruction if est suivie dune condition entre parenthses
alphorm.com
Le couple if / else
Un if sans else a t-il du sens ?
alphorm.com
Lintense
Enchaner des if / else if / est rarement une bonne ide
alphorm.com
Ce quon a couvert
Linstruction if
Le couple if / else
Lintense if / else / if /else /
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Linstruction if / else
Le cas de la cration des objets
Que testent rellement les conditions ?
alphorm.com
Linstruction if / else
Une instruction conditionnelle est rapidement invitable
Ne pas la rendre trop complexe
Eventuellement rduire la complexit
alphorm.com
alphorm.com
mthode
alphorm.com
Ce quon a couvert
Linstruction if / else
Le cas de la cration des objets
Que testent rellement les conditions ?
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Forme gnrale du switch
Quand utiliser switch
Quand ne pas utiliser switch
alphorm.com
alphorm.com
alphorm.com
plus pousse
Oublier le default
alphorm.com
Ce quon a couvert
Forme gnrale du switch
Quand utiliser switch
Quand ne pas utiliser switch
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Quest-ce quun tableau ?
Tableau de primitives
Tableau dobjets
alphorm.com
alphorm.com
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 donnes
alphorm.com
Tableau dobjets
Le tableau dobjets nexiste pas
Le tableau est un tableau de rfrences
Les rfrences sont mises null
Il faut donc un autre new pour chaque objet dont on veut disposer
alphorm.com
Ce quon a couvert
Quest-ce quun tableau ?
Tableau de primitives
Tableau dobjets
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Quest-ce quun tableau deux dimensions?
Les services de ce tableau
alphorm.com
alphorm.com
dimensions
alphorm.com
Ce quon a couvert
Quest-ce quun tableau deux dimensions?
Les services de ce tableau
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les boucles for, while, do-while, for(each)
Le parcours du tableau une dimension
Le parcours du tableau 2 dimensions
alphorm.com
Les boucles
La boucle while(cond) { }
La boucle do { } while(cond) ;
La boucle for( int i =0; i<cond; i++) { }
La boucle for ( E e: tab) { }
alphorm.com
alphorm.com
tableau
La capacit du tableau length est utilise
alphorm.com
Ce quon a couvert
Les boucles for, while, do-while, for(each)
Le parcours du tableau une dimension
Le parcours du tableau 2 dimensions
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Quest-ce que java.util.ArrayList ?
Comment initialiser une ArrayList
Parcourir une ArrayList
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Quest-ce que java.util.ArrayList ?
Comment initialiser une ArrayList
Parcourir une ArrayList
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Le package java.util
Utiliser import
alphorm.com
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 labsence de collision entre les noms de classes
alphorm.com
Linstruction 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 gnr
Confort de codage et de lecture
Pas dimport du package lui-mme
On importe des classes dun package
On peut importer toutes les classes dun package
alphorm.com
Ce quon a couvert
Le package java.util
Utiliser import
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Accder aux valeurs dans un tableau
Accder aux valeurs dans une ArrayList
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Accder aux valeurs dans un tableau
Accder aux valeurs dans une ArrayList
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les arguments de la ligne de commande
Parcourir le tableau
Convertir les lments de ce tableau
alphorm.com
alphorm.com
Parcourir le tableau
Soit utiliser length, soit for each
La capacit du tableau est sa taille utile
Permet typiquement de passer des options lapplication
Utilisable mme avec netbeans ou eclipse
alphorm.com
alphorm.com
Ce quon a couvert
Les arguments de la ligne de commande
Parcourir le tableau
Convertir les lments de ce tableau
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les composants de la boucle do /while
Les composants de la boucle while
Les erreurs ne pas faire
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les composants de la boucle do /while
Les composants de la boucle while
Les erreurs ne pas faire
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les composants dune boucle for
Les avantages du for sur le while
Les critures limites du for
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les composants dune boucle for
Les avantages du for sur le while
Les critures limites du for
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Remarques sur le contenu dune ArrayList
Parcourir une ArrayList en utilisant get
Parcourir une ArrayList en utilisant un itrateur
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Remarques sur le contenu dune ArrayList
Parcourir une ArrayList en utilisant get
Parcourir une ArrayList en utilisant un itrateur
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Dfinir la porte dune variable
Les variables locales et les paramtres
Les variables champ de donne
Pourquoi ny a t-il pas en Java de variable de porte globale ?
alphorm.com
alphorm.com
alphorm.com
alphorm.com
globale
alphorm.com
Ce quon a couvert
Dfinir la porte dune variable
Les variables locales et les paramtres
Les variables champ de donne
Pourquoi ny a t-il pas en Java de variable de porte globale ?
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Crer une mthode dans une classe
Appeler une mthode
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Crer une mthode dans une classe
Appeler une mthode
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Le passage des arguments lappel
Le passage de primitives
Le passage dobjets
alphorm.com
alphorm.com
Le passage de primitives
Les primitives sont toujours recopies dans la mthode
Les paramtres sont donc en IN
Il ny a aucun mot cl pour changer ce comportement
On dit que les primitives sont passes par valeur
alphorm.com
alphorm.com
Ce quon a couvert
Le passage des arguments lappel
Le passage de primitives
Le passage dobjets
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Crer des variables statiques et les utiliser
Crer des mthodes statiques et les utiliser
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Crer des variables statiques et les utiliser
Crer des mthodes statiques et les utiliser
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les modificateurs : public, protected, private
Visibilit par dfaut, sans modificateur
Visibilit private
Visibilit protected
Visibilit public
alphorm.com
Les modificateurs
Un mot-cl que lon place avant la dclaration du membre
Les modificateurs de visibilit
Pour rgler lencapsulation
Les mots-cls static , final ,
alphorm.com
alphorm.com
La visibilit private
Pour protger les donnes internes lobjet
Accessible uniquement par le code de la classe elle-mme
Les membres private font partie de limplmentation
alphorm.com
La visibilit protected
Un accs intermdiaire
Toutes les classes du package y accdent
Et aussi toutes les classes filles cf hritage
Permet douvrir un accs en direction des futures classes tendues
Intressant surtout pour les mthodes
alphorm.com
La visibilit public
La visibilit la plus large
Expose les accs tout le code
Intressant surtout pour des mthodes
Des champs de donnes public devraient tre final
Correspond des offres de services pour lextrieur, qui appelle
Attention ne pas confondre visibilit et porte
alphorm.com
Ce quon a couvert
Les modificateurs : public, protected, private
Visibilit par dfaut, sans modificateur
Visibilit private
Visibilit protected
Visibilit public
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
La syntaxe de la surcharge
Appeler une mthode surcharge
La surcharge et lhritage
alphorm.com
La syntaxe de la surcharge
Plusieurs mthodes peuvent
avoir le mme nom,
avec des paramtres diffrents
La signature dune mthode comprend son nom ET ses arguments
alphorm.com
alphorm.com
La surcharge et lhritage
La surcharge est rsolue travers lhritage
Une classe fille peut enrichir linterface en ajoutant une surcharge
Ne pas confondre
Surcharge
Redfinition
alphorm.com
Ce quon a couvert
La syntaxe de la surcharge
Appeler une mthode surcharge
La surcharge et lhritage
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Linitialisation des objets
Le rle des constructeurs
Les blocs dinitialisation
alphorm.com
alphorm.com
diffrentes
Le rle du constructeur est dinitialiser les champs de lobjet
Afin que lobjet soit dans un bon tat
alphorm.com
champs
Ce bloc peut tre marqu static , dans ce cas ce bloc sert initialiser
alphorm.com
Ce quon a couvert
Linitialisation des objets
Le rle des constructeurs
Les blocs dinitialisation
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Lencapsulation par la visibilit des membres
Lencapsulation par la visibilit des classes
alphorm.com
classes du package
Les visibilits public , protected et private permettent de
alphorm.com
alphorm.com
Ce quon a couvert
Lencapsulation par la visibilit des membres
Lencapsulation par la visibilit des classes
alphorm.com
Concepts avancs
Utiliser lhritage
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
La relation de gnralisation-spcialisation
Les consquences en termes dhritage
Le mot-cl extends
alphorm.com
La relation de gnralisation-spcialisation
Une relation statique entre classe
Qui relie un concept gnral un concept spcialis
Chat->Flin
Qui vite les doublons
Les membres de Flin sont hrits par le Chat
Qui introduit des variations sur un thme
Le Chat parle dune faon spcifique
alphorm.com
alphorm.com
Le mot cl extends
La relation de gnralisation-spcialisation correspond une extension
De type
De comportement
Le mot cl extends suffit tablir la relation
La classe fille se substitue alors a sa mre
alphorm.com
Ce quon a couvert
La relation de gnralisation-spcialisation
Les consquences en termes dhritage
Le mot-cl extends
alphorm.com
Concepts avancs
Polymorphisme
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
La redfinition des mthodes
Mettre en uvre le polymorphisme
Savoir utiliser le polymorphisme
alphorm.com
super-classe
Cette spcialisation peut tre due une redfinition de certains
comportements
Redclarer dans la sous-classe la mme mthode que dans la super-classe,
mais modifier le corps de la mthode
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
La redfinition des mthodes
Mettre en uvre le polymorphisme
Savoir utiliser le polymorphisme
alphorm.com
Concepts avancs
Utiliser des super-classes et
des sous-classes
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Des super-classes pour factoriser les membres
Substituer des sous-classes aux super-classes
Spcialiser les comportements des sous-classes
alphorm.com
alphorm.com
alphorm.com
Spcialiser le comportement
Une sous-classe peut proposer des attributs et des mthodes en plus
Elle peut redfinir une ou plusieurs mthodes
Mme signature, mais corps diffrent
Le comportement diffrent repose sur le fait que la mthode sexcute
diffremment
Pas de mot-cl spcifique, mais une annotation optionnelle
alphorm.com
Ce quon a couvert
Des super-classes pour factoriser les membres
Substituer des sous-classes aux super-classes
Spcialiser les comportements des sous-classes
alphorm.com
Concepts avancs
Ajouter un niveau
dabstraction
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les abstractions en Java : classes et interfaces
Intrts dutiliser des abstractions
Les abstractions dans le framework
Analyse et conception
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Analyse et conception
Une abstraction en analyse
Une classe abstraite pour factoriser des donnes et des traitements
Exemple de la bibliothque
Une abstraction en conception
Indpendance des modules via une interface
alphorm.com
Ce quon a couvert
Les abstractions en Java : classes et interfaces
Intrts dutiliser des abstractions
Les abstractions dans le framework
Analyse et conception
alphorm.com
Concepts avancs
Les interfaces en Java
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Dfinition et syntaxe des interfaces
Dfinir une interface
Implmenter une interface
Cas dusage connus
alphorm.com
alphorm.com
alphorm.com
par linterface
Le compilateur vrifie la prsence de cette implmentation
alphorm.com
alphorm.com
Ce quon a couvert
Dfinition et syntaxe des interfaces
Dfinir une interface
Implmenter une interface
Cas dusage connus
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les erreurs de syntaxe
Les erreurs de logique, de programmation
Les erreurs exceptionnelles dues lenvironnement
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les erreurs de syntaxe
Les erreurs de logique, de programmation
Les erreurs exceptionnelles dues lenvironnement
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Nature de lexception
Les exceptions runtime
Les exceptions gres
Les exceptions de lutilisateur
alphorm.com
Nature de lexception
Une exception est un objet
Dune classe qui hrite de java.lang.Exception
Cet objet est cr lors de la leve de lexception
Il est rcupr dans le bloc du gestionnaire derreur
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Nature de lexception
Les exceptions runtime
Les exceptions gres
Les exceptions de lutilisateur
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Le rle du compilateur pour les exceptions gres
La spcification des exceptions par les mthodes
alphorm.com
Le rle du compilateur
Le compilateur lit la spcification des exceptions
Il engage le dveloppeur grer les exceptions
Ce contrle nest pas ralis pour les exceptions runtime
alphorm.com
alphorm.com
Ce quon a couvert
Le rle du compilateur pour les exceptions gres
La spcification des exceptions par les mthodes
alphorm.com
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Grer une exception dtecte par le compilateur
Lever une exception
Crer son propre type dexception
Rinterprter une exception
alphorm.com
dexception
Soit le try sexcute puis le code aprs les catch
Soit le try est interrompu et un catch est excut, puis le code aprs le
catch
Possibilit de placer un bloc finally , toujours excut
alphorm.com
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Grer une exception dtecte par le compilateur
Lever une exception
Crer son propre type dexception
Rinterprter une exception
alphorm.com
Vue densemble
Crer des packages et des
fichier .jar
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Les packages
Les fichiers .jar
Utiliser des fichiers .jar pour livrer une application
alphorm.com
Les packages
Conceptuellement : un regroupement de classes
Physiquement : un rpertoire qui contient les fichiers .java
Logiquement : un sous-systme qui isole des classes travaillant
alphorm.com
alphorm.com
alphorm.com
Ce quon a couvert
Les packages
Les fichiers .jar
Utiliser des fichiers .jar pour livrer une application
alphorm.com
Vue densemble
Architecture en 2 ou 3
niveaux
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Architecture et niveaux
Architecture 2 niveaux
Architecture 3 niveaux
alphorm.com
Architecture et niveaux
Larchitecture est leffort dorganisation gnrale de lapplication
La conception devra se conformer larchitecture
Faire plusieurs niveaux permet de sparer les responsabilits
Amliorer la maintenabilit de chaque niveau
Amliorer la cohrence
Favoriser lvolutivit
alphorm.com
Architecture 2 niveaux
Sparer la prsentation et des donnes
Rpartir ou pas les services de lapplication
Architecture logique, pas forcment physique
Client-serveur
En Java, la communication est : socket, RMI, jdbc
alphorm.com
Architecture 3 niveaux
Prsentation services donnes
Architecture logique qui peut correspondre ou pas au physique
En Java :
prsentation sous HTML, JSP, Servlet, Swing.
services : classes Java, Servlet,
Donnes accessibles via javabeans, EJB, jdbc
alphorm.com
Ce quon a couvert
Architecture et niveaux
Architecture 2 niveaux
Architecture 3 niveaux
alphorm.com
Vue densemble
Exemples dapplications Java
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Lapplication standalone, console
Lapplication Applet
Lapplication Servlet, associe JSP
Lapplication Android
alphorm.com
alphorm.com
Lapplication Applet
Une applet hrite de Applet
Instancie et excute dans le contexte dun navigateur
Un cycle de vie spcifique
Accs limit au systme
Dploiement via un accs http
alphorm.com
Lapplication Servlet
Un servlet hrite de Servlet
Est instancie et excute sur un serveur
Conteneur de servlet
Rpond aux mthodes HTTP (Get, Post)
Peut crire du HTML, mais plutt logique applicative
Est souvent associe la technique des JSP
alphorm.com
Lapplication Android
Une application Java spciale
Machine virtuelle spcifique
API spcifique
Cycle de vie contraint
Typiquement construite avec un IDE spciale
alphorm.com
Ce quon a couvert
Lapplication standalone, console
Lapplication Applet
Lapplication Servlet, associe JSP
Lapplication Android
alphorm.com
Conclusion
Conclusion
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Java, les fondamentaux
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
alphorm.com
Plan
Prsentation de la technologie Java
Vue densemble
alphorm.com
Pour continuer
Le module avanc de la formation Java
Ne pas oublier la documentation Javadoc, en ligne ou sur le poste
alphorm.com