Alphorm.com Formation Java,avancé OCP (1Z0-804)
-
Upload
alphormcom -
Category
Technology
-
view
2.065 -
download
49
Transcript of Alphorm.com Formation Java,avancé OCP (1Z0-804)
-
Prsentation de la formation
Java avanc
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Java avanc(examen 1Z0-804)
-
Plan Prsentation du formateur
Les autres formations sur Alphorm
Quest-ce que Java ?
Les publics concerns
Le plan de la formation
Java, avanc (examen 1Z0-804) alphorm.com
Le plan de la formation
Prsentation des outils
-
Prsentation du formateur Fabien Brissonneau
Email : [email protected]
Consultant Concepteur et Formateur
Missions darchitecture, de conception , de ralisation logicielles
Fondateur de eiXa6
Actuellement en mission sur un projet de gestion
Java, avanc (examen 1Z0-804) alphorm.com
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/
-
Mes formations sur alphorm
Java, avanc (examen 1Z0-804) alphorm.com
-
Les autres formations dv sur Alphorm
Java, avanc (examen 1Z0-804) alphorm.com
-
Quest-ce que Java ? Langage de programmation gnraliste
Cr en 1995 par Sun, hritant du C++
Gr en communaut
Langage de programmation objet
Java, avanc (examen 1Z0-804) alphorm.com
Avec un trs grande bibliothque de classes
-
Les publics concerns Dveloppeurs dcouvrant Java aprs avoir suivi les fondamentaux
Dveloppeurs se dirigeant ensuite vers Java serveur
Toute personne intresse par les technologies Java
Java, avanc (examen 1Z0-804) alphorm.com
-
Le plan de la formation Prsentation de la plateforme
Rappels de syntaxe
Encapsulation
Conception de classes
Utilisation de lhritage
Les exceptions
Les entres-sorties
Les entres-sorties NIO
Le multithread
Les traitements simultans
Java, avanc (examen 1Z0-804) alphorm.com
Utilisation de lhritage
La gnricit
Le traitement de textes
Les traitements simultans
La base de donnes
La localisation
-
Certification OCP suite lexamen 1Z0-804
Java, avanc (examen 1Z0-804) alphorm.com
-
Prsentation des outils Le site de Oracle sera utilis pour tlcharger
Les outils en ligne de commande
La bibliothque de base
Un IDE, Netbeans
Nous utiliserons aussi Eclipse
Java, avanc (examen 1Z0-804) alphorm.com
Nous utiliserons aussi Eclipse
La prsentation sera faite sous Windows 7
-
Are you ready ?
Java, avanc (examen 1Z0-804) alphorm.com
-
Prsentation de la plateforme Java
Java et les plateformes
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Java et les plateformes
-
Plan Les versions des plateformes
Les ditions
Java, avanc (examen 1Z0-804) alphorm.com
-
Les versions des plateformes Chaque plateforme contient des outils qui chacun correspond une JSR
(Java Specification Request)
La JVM (Java Virtual Machine) excute le bytecode grce au compilateur JIT (Just In Time)
Le JDK (Java Development Kit) contient le compilateur entre autre
Java, avanc (examen 1Z0-804) alphorm.com
Le JRE (Java Runtime Environment) est lenvironnement dexcution
Les numros de versions sont ceux des JDK
Chaque version correspond une JSR
-
Les ditions La JSE (Java Standard Edition) pour ordinateurs de bureau
La JEE (Java Entreprise Edition) pour serveurs
La JME (Java Micro Edition) pour environnements mmoires rduits
La Java FX, un environnement client riche
Java, avanc (examen 1Z0-804) alphorm.com
JavaCard est un systme dexploitation pour carte puce
-
Ce quon a couvert Les versions des plateformes
Les ditions
Java, avanc (examen 1Z0-804) alphorm.com
-
Prsentation de la plateforme Java
OpenJDK et les licences
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
OpenJDK et les licences
-
Plan JSR, JDK, OpenJDK
Les licences
Java, avanc (examen 1Z0-804) alphorm.com
-
JSR, JDK, OpenJDK La JSR est la spcification, entre autre dune version du framework
JDK 7 est par exemple le nom donn par Oracle
OpenJDK Project est une autre implmentation
Java, avanc (examen 1Z0-804) alphorm.com
-
Les licences La licence GPL pour le code Java, mais pas totalement lorigne
Depuis la version 7, OpenJDK devient limplmentation de rfrence pour la JSR
Pour quune implmentation soit certifie, elle doit passe le test de compatibilit et compare OpenJDK
Java, avanc (examen 1Z0-804) alphorm.com
Le code source OpenJDK est diponible sour 2 licences : licence GNU, et licence Suns Java Research License (travaux acadmiques)
Le JDK Oracle et disponible sous BPL (code compil uniquement)
Pour tre intgr dans des distributions GNU, il faut OpenJDK complt ventuellement par IceTea (projet initial de RedHat)
-
Ce quon a couvert JSR, JDK, OpenJDK
Les licences
Java, avanc (examen 1Z0-804) alphorm.com
-
Prsentation de la plateforme Java
Java dans les
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Java dans les environnements serveurs
-
Plan Le contenu de Java EE
Les implmentations
Java, avanc (examen 1Z0-804) alphorm.com
-
Le contenu de Java EE Une plate forme pour excuter
Une suite de tests
Une ralisation de rfrence
Les bonnes pratiques
Java, avanc (examen 1Z0-804) alphorm.com
Objectifs : faciliter la construction dapplications serveur, sur la mme base que JSE, mais avec des complments fournis par le conteneur
-
Les implmentations Oracle Glassfish est limplmentation de rfrence
Open Source Edition ou Enterprise Server
JBoss, JEUS, Apache Geronimo, IBM WebSphere, Caucho Resin
Les composants peuvent tre : Servlet, JSP, JSTL, JSF, EJB, JNDI, JDBC, JMS, JPA, JAXB,
Java, avanc (examen 1Z0-804) alphorm.com
JMS, JPA, JAXB,
-
Ce quon a couvert Le contenu de Java EE
Les implmentations
Java, avanc (examen 1Z0-804) alphorm.com
-
Prsentation de la plateforme Java
Processus JCP
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Processus JCP
-
Plan Dfinition
Les participants
Les JSR
Java, avanc (examen 1Z0-804) alphorm.com
-
Dfinition Le Java Community Process est le mcanisme pour faire voluer les
spcifications techniques de Java
Le processus consiste faire voluer une Java Specification Request travers plusieurs tapes (JCP 2.9 version actuelle du processus)
Java, avanc (examen 1Z0-804) alphorm.com
Initiation -> Premire revue -> Brouillon public -> Maintenance
-
Les participants On peut participer librement au processus
Les Java User Group sont souvent impliqus
Public : chacun peut donner des commentaires
Member : faire des propositions
Java, avanc (examen 1Z0-804) alphorm.com
Expert : donner la forme de la spcification
Specification Lead : choix des experts des groupes
Executive Committee : lu
Oracle a un sige permanent
-
Les JSR Java SE : 62 JSR diffrentes
Java SE 7 : JSR 336
Java SE 8 : JSR 337
Java EE : 57 JSR diffrentes
Java EE Security API : JSR 375
Java, avanc (examen 1Z0-804) alphorm.com
Java EE Security API : JSR 375
Java ME : 85 JSR diffrentes
-
Ce quon a couvert Dfinition
Les participants
Les JSR
Java, avanc (examen 1Z0-804) alphorm.com
-
Rappels sur la syntaxe et les classes Java
Classes simples
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Classes simples
-
Plan Dclarer une classe, syntaxe, fichier et outil
Dclarer les champs de donnes, visibilit, modificateurs
Dclarer les mthodes, visibilits, modificateurs
Modificateurs de la dclaration de la classe
Java, avanc (examen 1Z0-804) alphorm.com
-
Dclarer une classe Mot-cl class
Dans un fichier qui porte le nom de la classe
LIDE cre le fichier et la classe
Il est possible davoir plusieurs classes dans un fichier
Java, avanc (examen 1Z0-804) alphorm.com
Il est possible de dclarer une classe dans une classe
-
Dclarer les champs de donne Dclaration sans aucun ordre des membres de la classe
Dclarer le type puis le nom de la variable
Il est possible de placer une valeur par dfaut
Il est possible de modifier la visibilit : public, protected, private
Java, avanc (examen 1Z0-804) alphorm.com
Il est possible de rendre constant ce champ : final
Mais empche une affectation APRES linitialisation
-
Dclarer les mthodes Dclaration sans ordre
Dclarer le type de la mthode (de retour), void si aucun
Le nom de mthode
Les paramtres, chacun tant typs
Java, avanc (examen 1Z0-804) alphorm.com
Les mthodes supportent la surcharge
La visibilit peut-tre modifie
Le mot-cl final empche une ventuelle redfinition
-
Modificateur dans la dclaration de la classe Une classe peut tre public
Impact sur le nom du fichier
Impact sur les accs de lextrieur de son package
Le mot-cl final signifie que la classe ne peut pas tre drive
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Dclarer une classe, syntaxe, fichier et outil
Dclarer les champs de donnes, visibilit, modificateurs
Dclarer les mthodes, visibilits, modificateurs
Modificateurs de la dclaration de la classe
Java, avanc (examen 1Z0-804) alphorm.com
-
Rappels sur la syntaxe et les classes Java
Champs, constructeurs
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Champs, constructeurs et mthodes
-
Plan Dclaration et utilisation des mthodes
Dclaration et utilisation des champs de donnes
Rle des constructeurs
Java, avanc (examen 1Z0-804) alphorm.com
-
Dclaration et utilisation des mthodes Une mthode est un traitement disponible sur les objets
Il peut y avoir des paramtres
Un retour peut tre rcupr
La slection se fait sur un objet que lon instancie auparavant
Java, avanc (examen 1Z0-804) alphorm.com
Il existe des mthodes statiques
-
Dclaration et utilisation des champs Un champ dinstance porte une valeur pour chaque objet
En gnral, le champ est priv
Utilis dans les mthodes de lobjet
Peut tre accessible via des getters et des setters
Java, avanc (examen 1Z0-804) alphorm.com
Il existe des champs statiques
-
Le rle des constructeurs Il faut initialiser les champs de lobjet
Des paramtres permettent lutilisateur de :
Choisir la version du constructeur (surcharge)
Fournir des arguments de paramtrage
La surcharge est frquente
Java, avanc (examen 1Z0-804) alphorm.com
La surcharge est frquente
Un constructeur est une mthode :
Portant le nom de la classe
Sans retour
-
Ce quon a couvert Dclaration et utilisation des mthodes
Dclaration et utilisation des champs de donnes
Rle des constructeurs
Java, avanc (examen 1Z0-804) alphorm.com
-
Rappels sur la syntaxe et les classes Java
Modlisation dobjets
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Modlisation dobjets laide de classes Java
-
Plan Modliser les objets du monde rel
Traduire les objets rels en objets logiciels
Crer les classes et les structurer
Java, avanc (examen 1Z0-804) alphorm.com
-
Modliser les objets du monde rel Les objets mtiers sont au cur de lapplication
Plusieurs faons de trouver les objets mtiers
partir des exigences, usecase,
Concepts mtiers dcrits sous forme de noms
Traduits sous la forme dobjets entits
Java, avanc (examen 1Z0-804) alphorm.com
Traduits sous la forme dobjets entits
-
Traduire le rel en logiciel Un objet mtier correspond des donnes en base
Un objet de mapping objet-relationnel
Un objet de valeurs (contenant les donnes)
On devra ajouter
Les objets de services
Java, avanc (examen 1Z0-804) alphorm.com
Les objets de services
Les objets de prsentation
-
Crer les classes et les structurer Sous la forme dun diagramme de classes UML
Expressif, lisible, et complet
Les classes possdent
Attributs
Mthodes
Java, avanc (examen 1Z0-804) alphorm.com
Mthodes
Constructeurs
Les classes sont relies entre elles grce aux associations
La traduction en Java est directe
Les associations sont traduites en rfrences (cf attributs rfrences)
-
Ce quon a couvert Modliser les objets du monde rel
Traduire les objets rels en objets logiciels
Crer les classes et les structurer
Java, avanc (examen 1Z0-804) alphorm.com
-
Rappels sur la syntaxe et les classes Java
Instructions package et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Instructions package et import
-
Plan La notion de package, logique et physique
Linstruction package et le nom de la classe
Utiliser une classe dun autre package, import, exceptions
Lutilisation des classes standards
Java, avanc (examen 1Z0-804) alphorm.com
-
La notion de package Un package est :
Un espace de nommage
Une limite de visibilit
Un rpertoire
Les packages sont organiss en hirarchies
Java, avanc (examen 1Z0-804) alphorm.com
Les packages sont organiss en hirarchies
-
Linstruction package En premire ligne du fichier de la classe
package suivi dun nom de package
Attention, le nom de package peut tre compos
La classe (ou les classes) sont rputes tre dans le package
Java, avanc (examen 1Z0-804) alphorm.com
-
Linstruction import Pour utiliser une classe dun autre package :
crire le nom complet de la classe
Ou bien utiliser import , puis le nom court
Il est possible dcrire un import pour toutes les classes dun package
Java, avanc (examen 1Z0-804) alphorm.com
package
Les classes concernes doivent tre public
Les classes imbriques ont un nom compos avec le nom de la classe englobante
-
Lutilisation des classes standard Toutes les classes de lAPI Java sont dans des packages
Il est peu recommand de ne pas utiliser de package
Voire interdit lors de la livraison sur certains serveurs
Les import nont pas tre faits pour
Java, avanc (examen 1Z0-804) alphorm.com
Les classes de java.lang
Les classes du mme package
-
Ce quon a couvert La notion de package, logique et physique
Linstruction package et le nom de la classe
Utiliser une classe dun autre package, import, exceptions
Lutilisation des classes standards
Java, avanc (examen 1Z0-804) alphorm.com
-
Encapsulation et polymorphisme
Encapsulation pour la
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Encapsulation pour la conception de classes
-
Plan Principe de lencapsulation
Lencapsulation dans les classes
Lencapsulation dans les packages
Java, avanc (examen 1Z0-804) alphorm.com
-
Principe de lencapsulation Lencapsulation est le fait de masquer limplmentation et de fournir
une interface
Les bnfices attendus :
Scurit de ltat des objets
Maintenance facile car seuls les services sont utiliss
Java, avanc (examen 1Z0-804) alphorm.com
Maintenance facile car seuls les services sont utiliss
Simplification de linterface
-
Lencapsulation dans les classes Les classes masquent leurs implmentation :
Le corps des mthodes
Certaines mthodes
Les champs de donnes
Les classes proposent une interface :
Java, avanc (examen 1Z0-804) alphorm.com
Les classes proposent une interface :
Les mthodes non prives
Les constructeurs (non privs)
-
Lencapsulation dans les packages Les classes peuvent tre publiques ou non
La classe publique seule peut tre utilise de lextrieur de son package
Les classes non publiques servent au fonctionnement du package
Un package est une unit de codage, de test, de livraison
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Principe de lencapsulation
Lencapsulation dans les classes
Lencapsulation dans les packages
Java, avanc (examen 1Z0-804) alphorm.com
-
Encapsulation et polymorphisme
Modlisation de problmes
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Modlisation de problmes mtier laide de classes
Java
-
Plan Modlisation des besoins
Modlisation danalyse
Modlisation de conception
Traduction en Java
Java, avanc (examen 1Z0-804) alphorm.com
-
Modlisation des besoins Les besoins sont exprims par du texte
Trop peu formel
La reprsentation classique des exigences passe par les usecase
Une approche NON oriente objets
Java, avanc (examen 1Z0-804) alphorm.com
-
Modlisation de lanalyse La description des problmes
En terme dobjets, sous la forme de classes
Les classes ne montrent pas les mthodes
En terme de traitement, sous la forme de squences
Java, avanc (examen 1Z0-804) alphorm.com
Appel aussi modle du domaine
-
Modlisation de conception La description de la solution
Lie Java et sa technologie
Les classes sont entits, contrleurs, frontires
Les squences sont les mmes que prcdemment, mais plus dtailles
Java, avanc (examen 1Z0-804) alphorm.com
Les classes sont quipes des mthodes correspondant aux squences
-
Traduction en Java Chaque classe a son quivalent en Java
Accent mis sur les classes entits
Classes applicatives lies larchitecture choisie
Gnration automatique possible en Java
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Modlisation des besoins
Modlisation danalyse
Modlisation de conception
Traduction en Java
Java, avanc (examen 1Z0-804) alphorm.com
-
Encapsulation et polymorphisme
Caractre non mutable
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Caractre non mutable
-
Plan Briser lencapsulation
Empcher la modification des donnes internes
String est une classe non mutable
Java, avanc (examen 1Z0-804) alphorm.com
-
Briser lencapsulation Lencapsulation est mise en place pour protger un objet
Pas de champs de donnes publiques
Limiter les getters/setters
Passer par des mthodes
Il ny a pas de const en Java, donc on ninterdit pas la modification
Java, avanc (examen 1Z0-804) alphorm.com
Il ny a pas de const en Java, donc on ninterdit pas la modification
Lorsquon passe un objet en paramtre
Lorsquon retourne un objet
-
Empcher la modification Une classe non mutable (immutable value) est une classe qui ne permet
la modification
Constructeur
Pas de setters
Pas de mthode modifiant lobjet
Java, avanc (examen 1Z0-804) alphorm.com
Pas de mthode modifiant lobjet
Une mthode peut faire comme si elle modifiait
Mais en fait elle retourne un nouvel objet
-
String est une classe non mutable Il est impossible de modifier une String en Java
Toutes les mthodes et tous les oprateur re-cre un objet
Transparent, intuitif, mais peu performant
Donc on peut exposer une String de son propre objet, lutilisateur ne peut pas modifier la donne relle !
Java, avanc (examen 1Z0-804) alphorm.com
peut pas modifier la donne relle !
-
Ce quon a couvert Briser lencapsulation
Empcher la modification des donnes internes
String est une classe non mutable
Java, avanc (examen 1Z0-804) alphorm.com
-
Encapsulation et polymorphisme
Sous-classement
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Sous-classement
-
Plan La relation de gnralisation-spcialisation
Pourquoi utiliser des sous-classes
Java, avanc (examen 1Z0-804) alphorm.com
-
La relation de gnralisation-spcialisation La super-classe est un type gnral, la sous-classe un sous-type
Une rfrence vers la super-classe peut pointer vers un objet de la sous-classe
Toutes les caractristiques de la super-classe sont hrites par la sous-classe
Java, avanc (examen 1Z0-804) alphorm.com
Les membres privs de la super-classe ne sont jamais visibles de la sous-classe
-
Pourquoi utiliser des sous-classes ? Pour manipuler des objets en tant que type trs gnral
Stabilit dun code qui utilise des abstractions
Pour factoriser des caractristiques communes
Les sous-classes hritent des caractristiques du parent
Pour spcialiser des types
Java, avanc (examen 1Z0-804) alphorm.com
Pour spcialiser des types
Chaque sous-classe peut apporter une variante dans le comportement et dans le contenu
-
Ce quon a couvert La relation de gnralisation-spcialisation
Pourquoi utiliser des sous-classes
Java, avanc (examen 1Z0-804) alphorm.com
-
Encapsulation et polymorphisme
Surcharge de mthodes
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Surcharge de mthodes
-
Plan Ecrire plusieurs mthodes mme nom dans une classe
Les consquences de la surcharge
Java, avanc (examen 1Z0-804) alphorm.com
-
Ecrire plusieurs mthodes mme nom Le mme nom de mthode peut tre utilis
Les paramtres sont diffrents
Le type de retour est indiffrent, mais ne suffit pas
A lappel, le compilateur branche la bonne mthode
Java, avanc (examen 1Z0-804) alphorm.com
La surcharge est rsolue travers les niveaux dhritage
-
Les consquences de la surcharge Le compilateur rsout lappel de faon transparente en fonction des
arguments fournis
Il ny a pas de complexit syntaxique due des inventions de nouveaux noms chaque type de paramtres
Il ny a pas de dcouverte lexcution, tout est compil
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Ecrire plusieurs mthodes mme nom dans une classe
Les consquences de la surcharge
Java, avanc (examen 1Z0-804) alphorm.com
-
Encapsulation et polymorphisme
Mthode nombre variable
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mthode nombre variable darguments
-
Plan Utilisation dune mthode nombre variable darguments
Dclaration et codage
Java, avanc (examen 1Z0-804) alphorm.com
-
Utilisation dune mthode variadic Pour un traitement qui sera le mme sur chacun des arguments
Equivalent n surcharges de la mthode
Syntaxiquement proche du passage dun tableau darguments
Java, avanc (examen 1Z0-804) alphorm.com
-
Dclaration et codage Les arguments en nombre variable, cest un tableau
On peut utiliser length et les accs alatoires
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Utilisation dune mthode nombre variable darguments
Dclaration et codage
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes Java
Modificateurs public,
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Modificateurs public, protected et private
-
Plan Impact de labsence de modificateur
Influence du modificateur private
Influence du modificateur public
Influence du modificateur protected
Remarque sur le modificateur public de class
Java, avanc (examen 1Z0-804) alphorm.com
Remarque sur le modificateur public de class
-
Impact de labsence de modificateur Un membre sans visibilit est accessible du package entier
Cela dfinit une sorte de voisinage
Les classes sans visibilit elles-mmes suivent la mme rgle
Java, avanc (examen 1Z0-804) alphorm.com
-
Influence du modificateur private Nexiste que sur les membres
Un membre priv nest accessible que de lintrieur de la classe
Attention, un objet dune classe donne peut accder aux donnes prives dun objet de la mme classe
Typiquement utilis pour les attributs
Java, avanc (examen 1Z0-804) alphorm.com
Typiquement utilis pour les attributs
-
Influence du modificateur public Un membre publique est accessible de partout
Typiquement utilis pour des mthodes
Dangereux pour les attributs
Les attributs participent ltat de lobjet
Java, avanc (examen 1Z0-804) alphorm.com
Nest intressant que pour les classes elles-mmes publiques
-
Influence du modificateur protected Un membre protg est accessible
De toutes les classes du package de la classe qui contient le membre
Des classes filles, y compris celles qui sont dans dautres packages
A utiliser plutt sur des mthodes daccs
Il est trs simple de driver une classe en Java
Java, avanc (examen 1Z0-804) alphorm.com
Il est trs simple de driver une classe en Java
Je ne matrise pas qui drive ma classe, et ce quil/elle en fait
-
Remarque sur public pour class Une classe nest connue par dfaut que de son package
Si la classe doit tre accessible de lextrieur de son package, elle doit tre marque public
Une classe publique aura certainement des membres publiques
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Impact de labsence de modificateur
Influence du modificateur private
Influence du modificateur public
Influence du modificateur protected
Remarque sur le modificateur public de class
Java, avanc (examen 1Z0-804) alphorm.com
Remarque sur le modificateur public de class
-
Conception de classes Java
Remplacement de
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Remplacement de mthodes
-
Plan La spcialisation de classes
La redfinition de mthode
Java, avanc (examen 1Z0-804) alphorm.com
-
La spcialisation de classes Permet dhriter de la totalit de la super-classe
Une sous-classe peut possder en plus attributs et mthodes
Il nest pas possible de faire disparatre des membres hrits
Il est possible de spcialiser un ou plusieurs comportements
Java, avanc (examen 1Z0-804) alphorm.com
-
La redfinition de mthodes Cest refaire la mthode dans la sous-classe alors quelle existe dans la
super-classe
Le prototype de la mthode est identique
Le corps de la mthode est diffrent
On peut ajouter lannotation @Override
Java, avanc (examen 1Z0-804) alphorm.com
On peut ajouter lannotation @Override
-
Ce quon a couvert La spcialisation de classes
La redfinition de mthode
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes Java
Surcharge de constructeurs
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Surcharge de constructeurs
-
Plan Le rle des constructeurs
Utiliser les paramtres des constructeurs
Surcharger les constructeurs
Java, avanc (examen 1Z0-804) alphorm.com
-
Le rle des constructeurs Initialiser les champs de donnes
Mettre lobjet dans un tat correct
Assurer que lon peut travailler avec lobjet
Java, avanc (examen 1Z0-804) alphorm.com
-
Utiliser les paramtres des constructeurs Les paramtres sont utiliss pour initialiser les attributs
Les arguments sont fournis par lutilisateur
Il ny a pas de paramtres optionnels en Java
Donc la signature du constructeur est contraignante pour lappelant
Java, avanc (examen 1Z0-804) alphorm.com
-
Surcharger les constructeurs Il est possible de dclarer plusieurs constructeurs qui se distinguent de
par leurs signatures
Chaque constructeur correspond une faon de crer lobjet
Le constructeur sans paramtre est le constructeur par dfaut
Il nest plus gnr lorsquon crit un constructeur nous-mme
Java, avanc (examen 1Z0-804) alphorm.com
Il nest plus gnr lorsquon crit un constructeur nous-mme
Pas forcment ncessaire de le rcrire
Il est possible de chaner les constructeurs entre eux
Pour viter les redondances de code
-
Ce quon a couvert Le rle des constructeurs
Utiliser les paramtres des constructeurs
Surcharger les constructeurs
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes Java
Oprateur instanceof
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Oprateur instanceof
-
Plan Un objet est dune classe et une seule
Dtecter le type dun objet
Utiliser la dtection dun anctre du type
Java, avanc (examen 1Z0-804) alphorm.com
-
Un objet est dune classe et une seule Un objet a forcment une classe
Rcuprer le descripteur : getClass()
Eventuellement possible dexploiter la description
Lobjet est conforme sa classe
Java, avanc (examen 1Z0-804) alphorm.com
-
Dtecter le type dun objet Avec instanceOf, il est possible de vrifier le type de lobjet
Avec getClass(), on dcouvre le type de lobjet
Loprateur instanceof implique une logique conditionnelle
Permettrait de dtecter le type concret de lobjet et de choisir le traitement adapt ce type
Java, avanc (examen 1Z0-804) alphorm.com
traitement adapt ce type
Utilisation dnonce
Permet surtout de se protger avant un transtypage
-
Utiliser la dtection dun anctre Loprateur instanceof teste les anctres
Super-classes
Interfaces implmentes
En fonction de linterface, il est possible de choisir un traitement
Conception par capacit
Java, avanc (examen 1Z0-804) alphorm.com
Conception par capacit
-
Ce quon a couvert Un objet est dune classe et une seule
Dtecter le type dun objet
Utiliser la dtection dun anctre du type
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes Java
Appel de mthode virtuelle
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Appel de mthode virtuelleEt polymorphisme
-
Plan Mise en place du polymorphisme
Intrt du polymorphisme
Dangers du polymorphisme
Java, avanc (examen 1Z0-804) alphorm.com
-
Mise en place du polymorphisme Il faut une gnralisation-spcialisation : extends
Il faut une redfinition : rcriture dune mthode dans la sous-classe
Non indispensable : @Override, une annotation qui permet de faire vrifier la redfinition par le compilateur
Java, avanc (examen 1Z0-804) alphorm.com
-
Intrt du polymorphisme Lusage du polymorphisme permet de :
crire un code simple, qui utilise le type gnralis
Dclencher des mthodes qui ne seront connues qu lexcution
Crer des points de variation dans le systme
Mettre en place des points dextensibilit du systme
Java, avanc (examen 1Z0-804) alphorm.com
Mettre en place des points dextensibilit du systme
A loppos du polymorphisme : tester le type des objets afin de dclencher un code spcifique sur chaque
-
Dangers du polymorphisme Il est impossible de savoir, la lecture, quelle est la mthode qui sera
dclenche
Tout dpend de lobjet qui sera cr et plac en face de lappel
Le traitement sollicit peut tre une surprise (non conforme, leve dexception)
Java, avanc (examen 1Z0-804) alphorm.com
Le principe de substitution voudrait que les appels soient correctement implments, mais ce principe est souvent viol
-
Ce quon a couvert Mise en place du polymorphisme
Intrt du polymorphisme
Dangers du polymorphisme
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes Java
Transtypage de rfrences
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Transtypage de rfrences dobjets
-
Plan Syntaxe du transtypage
Le danger du transtypage
Utilisation invitable du transtypage
Java, avanc (examen 1Z0-804) alphorm.com
-
Syntaxe du transtypage Pour forcer le compilateur accepter un appel
Le type de la rfrence utiliser ne fournit pas la mthode
Mais vous savez que lobjet connat la mthode
Mettre le type obtenir entre parenthses
Java, avanc (examen 1Z0-804) alphorm.com
Le compilateur est forc daccepter lappel, mais il faudra que ce cast soit vrai lexcution
-
Le danger du transtypage Le transtypage fait taire le compilateur
Mais ne prjuge rien lexcution
Si lobjet nest pas celui qui est attendu, problme !
ClassCastException : arrt du programme par leve dexception
Java, avanc (examen 1Z0-804) alphorm.com
-
Utilisation invitable du transtypage Lorsquon utilise un framework
Il faut driver des classes, redfinir des mthodes
La redfinition suppose une signature identique
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Syntaxe du transtypage
Le danger du transtypage
Utilisation invitable du transtypage
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes avance
Classes abstraites et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Classes abstraites et gnralisation de type
-
Plan La mise en place de le gnralisation
Lintrt dune classe abstraite
Les mthodes abstraites
Java, avanc (examen 1Z0-804) alphorm.com
-
La mise en place de la gnralisation La relation de gnralisation sutilise pour :
Faire apparatre un super-type, pour avoir du code stable
Factoriser des membres
Spcialiser des comportements
La super-classe ne doit pas forcment tre instancie : abstract
Java, avanc (examen 1Z0-804) alphorm.com
La super-classe ne doit pas forcment tre instancie : abstract
Empcher linstanciation peut se faire :
En rendant les constructeurs privs : impossible de crer un objet de cette classe de lextrieur de la classe
En rendant la classe abstraite : la classe doit tre drive
-
Lintrt dune classe abstraite Faire apparatre une gnralisation
Mais la super-classe nest l que pour factoriser des membres
On ne veut pas dobjet de ce type
Les exemples de classes abstraites dans la vie relle sont nombreux
Java, avanc (examen 1Z0-804) alphorm.com
Taxonomie : les noms despces, de genres, de familles
Une classe abstraite possde donc
Des attributs
Des mthodes
Des constructeurs
-
Les mthodes abstraites Une mthode abstraite ne contient pas de corps
Mot-cl abstract
Ne peuvent exister que dans des classes abstraites
Seront redfinies dans les classes filles
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert La mise en place de le gnralisation
Lintrt dune classe abstraite
Les mthodes abstraites
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes avance
Modificateurs static et final
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Modificateurs static et final
-
Plan Modificateur static
Modificateur final
Les champs public static final
Java, avanc (examen 1Z0-804) alphorm.com
-
Modificateur static Le mot cl static sutilise sur un membre
Un champ static est une donne partage par tous les objets de la classe
Une mthode static est une mthode qui est appele sur la classe elle-mme, et non sur un objet
Java, avanc (examen 1Z0-804) alphorm.com
Une mthode static ne peut accder quaux champs static
Les champs static sont initialiss lors du chargement de la classe
-
Modificateur final Un champ final ne supporte pas daffectation
Il est initialis la dclaration
Ou bien dans un constructeur
Une mthode final ne peut pas tre redfinie
Java, avanc (examen 1Z0-804) alphorm.com
-
Les champs public static final En gnral, un champ ne doit pas tre public
Sil est final, ce nest pas dangereux
Ne fait pas partie de ltat de lobjet
Math.PI : PI est public static et final
Java, avanc (examen 1Z0-804) alphorm.com
Constante publique
-
Ce quon a couvert Modificateur static
Modificateur final
Les champs public static final
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes avance
Meilleures pratiques pour
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Meilleures pratiques pour les modificateurs de champs
-
Plan Les champs de donne
Les services des classes publiques
Les mthodes de classes de package
Cas particulier des classes driver
Java, avanc (examen 1Z0-804) alphorm.com
-
Les champs de donne En gnral les champs de donne sont privs
Car ils font partie de ltat de lobjet
Les champs constants peuvent tre publiques
Java, avanc (examen 1Z0-804) alphorm.com
-
Les services des classes publiques Une classe publique est une faade de son package
Les mthodes dune classe peuvent tre publiques
Mais certaines mthodes peuvent rester inaccessibles de lextrieur
A priori, si rien ne justifie quelle soit publique, une mthode reste prive
Java, avanc (examen 1Z0-804) alphorm.com
prive
-
Les mthodes des classes de package A lintrieur dun package, une classe a des mthodes au mieux de
visibilit de package (par dfaut)
Les attributs restent privs, mais les services peuvent tre rendus aux autres classes du package
Les mthodes qui ne sont utilises qu lintrieur du package restent prives
Java, avanc (examen 1Z0-804) alphorm.com
prives
-
Cas particulier des classes driver Pour les classes qui doivent tre drives, penser mettre en protg
les mthodes utilisables par des sous-classes
Utile pour les sous-classes qui ne seront pas dans le mme package
Dans le mme package, la visibilit par dfaut suffit
Faire attention aux attributs protgs, qui seront modifis sans contrle
Java, avanc (examen 1Z0-804) alphorm.com
Faire attention aux attributs protgs, qui seront modifis sans contrle par le code des sous-classes
-
Ce quon a couvert Les champs de donne
Les services des classes publiques
Les mthodes de classes de package
Cas particulier des classes driver
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes avance
Implmenter le modle
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Implmenter le modle Singleton
-
Plan Utiliser un champ static
Utiliser une mthode static
Le modle Singleton simple
Le modle thread-safe
Le modle avec disposition
Java, avanc (examen 1Z0-804) alphorm.com
Le modle avec disposition
-
Utiliser un champ static Un champ static correspond une donne partage entre tous les
objets de la classe
Pas besoin de crer un objet pour utiliser ou valuer cette donne
En gnral, dune visibilit restreinte, de faon ce que les autres classes ne puissent pas y accder librement
Java, avanc (examen 1Z0-804) alphorm.com
-
Utiliser une mthode static Une mthode qui naccde quaux champs static
Une mthode qui est appele sur la classe
Ne ncessite pas la cration pralable dun objet
Java, avanc (examen 1Z0-804) alphorm.com
-
Le modle Singleton simple Un champ static , une mthode static qui cr linstance ou bien
qui la retourne si elle est dj cre
Java, avanc (examen 1Z0-804) alphorm.com
-
Le modle thread-safe Le code prcdent nest pas protg contre des accs simultans de
plusieurs thread en mme temps
Crer une section critique ? Mais pas la mthode entire
Faire crer linstance linitialisation ? Mais plus de cration la demande
Java, avanc (examen 1Z0-804) alphorm.com
-
Le modle avec disposition Il faut savoir se dbarrasser de linstance unique
A priori seulement aprs la fin du main
Crer une mthode Reset qui limine linstance
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Utiliser un champ static
Utiliser une mthode static
Le modle Singleton simple
Le modle thread-safe
Le modle avec disposition
Java, avanc (examen 1Z0-804) alphorm.com
Le modle avec disposition
-
Conception de classes avance
Conception de classes
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Conception de classes abstraites
-
Plan Pourquoi crer des classes abstraites
Rle des classes abstraites
Algorithme utilisant des mthodes abstraites
Java, avanc (examen 1Z0-804) alphorm.com
-
Pourquoi crer des classes abstraites Pour factoriser du code
viter les redondances
Eviter que lutilisateur ne cre des objets partir de classes incompltes
Crer des modles symtriques plus simples
Java, avanc (examen 1Z0-804) alphorm.com
-
Rle des classes abstraites Factoriser du code pour de futures classes drives
Reprsenter des comportements gnriques
Rifier des algorithmes
Java, avanc (examen 1Z0-804) alphorm.com
-
Algorithme utilisant des mthodes abstraites Une classe mre abstraite
Elle contient un squelette dalgorithme
Celui-ci appelle des mthodes abstraites
Les classes filles implmentent les parties
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Pourquoi crer des classes abstraites
Rle des classes abstraites
Algorithme utilisant des mthodes abstraites
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes avance
Classes imbriques
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Classes imbriques
-
Plan La syntaxe des classes imbriques
Intrt des classes imbriques
Java, avanc (examen 1Z0-804) alphorm.com
-
Syntaxe des classes imbriques Ecrire une classe dans une classe
Le nom de la classe est masque
Le nom des fichiers est particulier
Java, avanc (examen 1Z0-804) alphorm.com
-
Intrt des classes imbriques Accs aux membres privs de la classe englobante
Imbrication des objets eux-mmes
Cas particulier des static class
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert La syntaxe des classes imbriques
Intrt des classes imbriques
Java, avanc (examen 1Z0-804) alphorm.com
-
Conception de classes avance
Types dnumration
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Types dnumration
-
Plan Une classe dont on veut limiter le nombre dinstance et leurs valeurs
Le type enum
Java, avanc (examen 1Z0-804) alphorm.com
-
Une classe valeurs limites On ne matrise pas les instances dune classe
Les types standards nont pas de limite non plus
Il est possible de crer les futures valeurs
Limiter les instances
Java, avanc (examen 1Z0-804) alphorm.com
Beaucoup de travail
-
Le type enum Un numr est un type
Dont on numre toutes les valeurs
Qui peut possder des mthodes
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Une classe dont on veut limiter le nombre dinstance et leurs valeurs
Le type enum
Java, avanc (examen 1Z0-804) alphorm.com
-
Hritage et interfaces
Interfaces Java
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Interfaces Java
-
Plan Principe de linterface
Dclaration dune interface
Implmentation dune interface
Hritage entre interfaces
Java, avanc (examen 1Z0-804) alphorm.com
-
Principe de linterface Une interface dfinit un type utilisateur
Comme une classe, mais sans implmentation
Peut possder des dclarations de mthodes
Abstract public
Java, avanc (examen 1Z0-804) alphorm.com
Peut possder des dclarations de constantes
Public static final
Sert dclarer des services sans les implmenter
Doit tre implmente par une classe
-
Dclaration dune interface Mot cl interface la place de class
Dans son propre fichier
Peut tre public ou pas
Java, avanc (examen 1Z0-804) alphorm.com
-
Implmenter une interface Il faut quune classe implmente linterface
Mot cl implements
Obligation pour la classe de fournir les mthodes prvues
Ou bien cette classe doit tre marque abstract
Java, avanc (examen 1Z0-804) alphorm.com
Trs proche de la notion dhritage, mais on nhrite de rien, si ce nest de lobligation de tout implmenter
-
Hritage entre interfaces Une interface peut hriter dune autre
Cela sert enrichir les interfaces en terme de livraisons successives
Une interface peut hriter de plusieurs interfaces
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Principe de linterface
Dclaration dune interface
Implmentation dune interface
Hritage entre interfaces
Java, avanc (examen 1Z0-804) alphorm.com
-
Hritage et interfaces
Les types dhritages
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les types dhritages
-
Plan Les diffrents types dhritages
Lhritages dimplmentation
Lhritage dinterfaces
Java, avanc (examen 1Z0-804) alphorm.com
-
Les diffrents types dhritages On peut hriter pour plusieurs raisons
Pour rcuprer une implmentation existante
Hritage dimplmentation
Pour proposer les mmes services quun anctre
Java, avanc (examen 1Z0-804) alphorm.com
Hritage dinterfaces
-
Lhritage dimplmentation On hrite pour ne pas recoder les mthodes, les champs
Moins de travail faire, mais attention la pertinence
Suit une logique mtier
Typiquement ralis en Java avec extends
Java, avanc (examen 1Z0-804) alphorm.com
-
Lhritage dinterfaces On hrite pour proposer les mmes services vis--vis de lextrieur
Tout le travail est faire, car on ne rcupre pas une implmentation
Suit une logique service
Typiquement ralis avec implements
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Les diffrents types dhritages
Lhritages dimplmentation
Lhritage dinterfaces
Java, avanc (examen 1Z0-804) alphorm.com
-
Hritage et interfaces
Composition dobjets et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Composition dobjets et dlgation de mthode
-
Plan Hritage dimplmentation
Composition
Problme pos par la dlgation
Java, avanc (examen 1Z0-804) alphorm.com
-
Hritage dimplmentation Lhritage pour des raisons dimplmentation peut
Ne pas tre clair
Ne pas respecter le test is-a ou le test 100%
La relation dhritage est extrmement forte
Java, avanc (examen 1Z0-804) alphorm.com
-
La composition La composition est lassociation de contenance entre deux objets
Cela permet de rutiliser un objet
Il faut rcrire les mthodes
Clair dans son intention
Java, avanc (examen 1Z0-804) alphorm.com
-
Problme pos par la dlgation Lorsquune association est tablie entre 2 classes
Il y a 2 objets
Il faut grer ces 2 objets la place dun seul
Le fait de rappeler une mthode dun objet partir de lautre est la dlgation
Java, avanc (examen 1Z0-804) alphorm.com
dlgation
-
Ce quon a couvert Hritage dimplmentation
Composition
Problme pos par la dlgation
Java, avanc (examen 1Z0-804) alphorm.com
-
Hritage et interfaces
Implmentation de plusieurs
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Implmentation de plusieurs interfaces
-
Plan Une classe peut implmenter plusieurs interfaces
Les collisions
Java, avanc (examen 1Z0-804) alphorm.com
-
Une classe implmente plusieurs interfaces Utiliser implements une seule fois, avec une liste des interfaces
Il faut implmenter toutes les mthodes prvues par les interfaces
Java, avanc (examen 1Z0-804) alphorm.com
-
Les collisions Les collisions de champs de ne peuvent pas exister
Les mthodes seront sous la forme dune seule implmentation
Seul cas difficile : la mme mthode, mais avec un retour diffrent
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Une classe peut implmenter plusieurs interfaces
Les collisions
Java, avanc (examen 1Z0-804) alphorm.com
-
Hritage et interfaces
Le modle de conception
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le modle de conception DAO
-
Plan A quoi sert un Data Access Object
Implmentation du modle
Java, avanc (examen 1Z0-804) alphorm.com
-
A quoi sert le modle DAO
Isoler les accs aux donnes persistantes
Eviter les impacts dun changement de mode de stockage
Regrouper les accs aux donnes dans des classes ddies
Java, avanc (examen 1Z0-804) alphorm.com
-
Implmentation du modle Un point daccs au modle DAO
Des interfaces reprsentant les accs chaque type de donnes
Les implmentations de ces accs
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert A quoi sert un Data Access Object
Implmentation du modle
Java, avanc (examen 1Z0-804) alphorm.com
-
Types gnriques et collections
Classes gnriques et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Classes gnriques et paramtres de type
-
Plan Dfinition dune classe gnrique
Utilisation dune classe gnrique
Java, avanc (examen 1Z0-804) alphorm.com
-
Dfinition dune classe gnrique Une classe patron , qui est paramtrable par un type
Dfinit une famille de classes, qui seront gnres la demande
Ecrite une seule fois, utilise plusieurs fois
Trs utile en particulier pour les conteneurs
Java, avanc (examen 1Z0-804) alphorm.com
Alternative au code sur Object
-
Utilisation dune classe gnrique Dfinir une classe gnrique
Syntaxe du C++ Classe
Utiliser le symbole choisi T dans le code
A lappel, remplacer T par un type classe rel
Syntaxe Classe
Java, avanc (examen 1Z0-804) alphorm.com
Syntaxe Classe
-
Ce quon a couvert Dfinition dune classe gnrique
Utilisation dune classe gnrique
Java, avanc (examen 1Z0-804) alphorm.com
-
Types gnriques et collections
Infrence de type losange
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Infrence de type losange
-
Plan Dfinition de linfrence de type
Comment allger lcriture
Java, avanc (examen 1Z0-804) alphorm.com
-
Dfinition de linfrence de type Linfrence de type est ralise par le compilateur
Il va placer le bon type en fonction de ce qui est attendu
Tout est compil, donc pas de surprises lexcution
Java, avanc (examen 1Z0-804) alphorm.com
-
Comment allger lcriture Avec linfrence de type, on vite de rpter du code
Ecriture plus simple
Mais il faut spcifier quand mme les
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Dfinition de linfrence de type
Comment allger lcriture
Java, avanc (examen 1Z0-804) alphorm.com
-
Types gnriques et collections
Types gnriques et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Types gnriques et collections
-
Plan Les collections sans gnricit
Les collections modernes, utilisant la gnricit
Java, avanc (examen 1Z0-804) alphorm.com
-
Les collections sans gnricit Collections manipulant des Object
Code qui compile toujours
Mais risques lexcution
Perte de types, il faut forcer les types
Autre possibilit : copier-coller !!
Java, avanc (examen 1Z0-804) alphorm.com
Autre possibilit : copier-coller !!
-
Les collections modernes, avec gnricit La collection sapplique sur un type gnrique
Choisir le type au moment de la cration de lobjet
Il peut y avoir plusieurs types
Collection type
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Les collections sans gnricit
Les collections modernes, utilisant la gnricit
Java, avanc (examen 1Z0-804) alphorm.com
-
Types gnriques et collections
Les objets List et Map
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les objets List et Map
-
Plan Linterface List
Linterface Map
Java, avanc (examen 1Z0-804) alphorm.com
-
Linterface List Les objets de classes implmentant List
Conservent lordre dinsertion
Proposent un accs alatoire
Linterface List est une sous-interface de Collection
Plusieurs classes implmentent linterface List
Java, avanc (examen 1Z0-804) alphorm.com
Plusieurs classes implmentent linterface List
ArrayList
LinkedList
-
Linterface Map Les objets de classes implmentant Map
Utilisent une cl pour ranger les valeurs
Proposent un accs alatoire, utilisant la cl
Linterface Map prend 2 paramtres gnriques obligatoirement
Plusieurs classes implmentent linterface Map
Java, avanc (examen 1Z0-804) alphorm.com
Plusieurs classes implmentent linterface Map
HashMap
TreeMap
-
Ce quon a couvert Linterface List
Linterface Map
Java, avanc (examen 1Z0-804) alphorm.com
-
Types gnriques et collections
Pile avec Deque
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Pile avec Deque
-
Plan Linterface Deque
Raliser une pile conforme
Java, avanc (examen 1Z0-804) alphorm.com
-
Linterface Deque Sous-interface de Queue, elle-mme sous-interface de Collection
Utilisable des deux cts
Mthodes addFirst, addLast,
Permet dimplmenter FIFO, et LIFO
Java, avanc (examen 1Z0-804) alphorm.com
-
Raliser une pile avec Deque En utilisant les mthodes
addFirst, removeFirst, peekFirst
Pour implmenter les mthodes
De la Pile : push, pop, peek
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Linterface Deque
Raliser une pile conforme
Java, avanc (examen 1Z0-804) alphorm.com
-
Traitement des chanes
Manipulation avec
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Manipulation avec StringBuilder et StringBuffer
-
Plan String, StringBuffer et StringBuilder
Les mthodes de StringBuilder
Java, avanc (examen 1Z0-804) alphorm.com
-
String, StringBuffer et StringBuilder La classe String est immutable value
Les mthodes de String ne modifie pas la chane en place
StringBuffer est synchronise
Utilise pour un buffer, mais les oprations sont thread-safe
StringBuilder nest pas synchronise et donc souhaitable dans un
Java, avanc (examen 1Z0-804) alphorm.com
StringBuilder nest pas synchronise et donc souhaitable dans un contexte non multithread
Doit tre prfre la prcdente, et offre les mmes mthodes
-
Les mthodes de StringBuilder Constructeurs :
Par dfaut
Avec un CharSequence en paramtre
Avec une capacit
A partir dune String
Java, avanc (examen 1Z0-804) alphorm.com
A partir dune String
Mthodes : append, insert
Redimensionnement automatique
-
Ce quon a couvert String, StringBuffer et StringBuilder
Les mthodes de StringBuilder
Java, avanc (examen 1Z0-804) alphorm.com
-
Traitement des chanes
Principales mthodes lies
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Principales mthodes lies aux chanes de caractres
-
Plan La classe String, ses mthodes et les oprateurs
La mthode toString
Les classes StringTokenizer et Scanner
Les classes StringBuilder et StringBuffer
Les expressions rgulires
Java, avanc (examen 1Z0-804) alphorm.com
Les expressions rgulires
-
La classe String, ses mthodes et oprateurs La classe String reprsente une chane non modifiable
Toutes ses mthodes font des modifications crent un nouvel objet
Des oprateurs sont disponibles sur String
Linitialisation littrale de String est possible
Java, avanc (examen 1Z0-804) alphorm.com
Un trs grand nombre de mthodes
-
La mthode toString Disponible sur tout objet Java
Implment par dfaut sur Object
Redfinissable
Produit une chane qui doit reprsenter lobjet
Java, avanc (examen 1Z0-804) alphorm.com
-
Les classes StringTokenizer et Scanner Utiles pour parcourir une chane de caractres
Fonctionne sur le mode de lnumration
StringTokenizer est plus ancien et plus limit que Scanner
Java, avanc (examen 1Z0-804) alphorm.com
-
Les classes StringBuffer et StringBuilder La reprsentation des buffer
Chanes de caractres modifiables
Aucun rapport avec String, utiliser toString pour obtenir la chane
Java, avanc (examen 1Z0-804) alphorm.com
-
Les expressions rgulires Avec String, on peut appliquer les expressions rgulires
Reprsente un motif
A chercher dans un texte
A substituer dans un texte
Pour dcouper des chanes
Java, avanc (examen 1Z0-804) alphorm.com
Pour dcouper des chanes
Pour filtrer
-
Ce quon a couvert La classe String, ses mthodes et les oprateurs
La mthode toString
Les classes StringTokenizer et Scanner
Les classes StringBuilder et StringBuffer
Les expressions rgulires
Java, avanc (examen 1Z0-804) alphorm.com
Les expressions rgulires
-
Traitement des chanes
Analyse de texte dans Java
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Analyse de texte dans Java
-
Plan Parcourir une chane avec StringTokenizer
Analyser un texte : les mots, les lettres
Java, avanc (examen 1Z0-804) alphorm.com
-
Parcourir une chane avec StringTokenizer Crer un objet StringTokenizer
Directement connatre le nombre de token : countTokens()
Parcourir : hasMoreToken(), nextToken()
Java, avanc (examen 1Z0-804) alphorm.com
-
Analyser un texte Compter les mots : utiliser StringTokenizer
Compter les lettres : parcourir la chane
Intrt : faire de la cryptanalyse ;)
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Parcourir une chane avec StringTokenizer
Analyser un texte : les mots, les lettres
Java, avanc (examen 1Z0-804) alphorm.com
-
Traitement des chanes
Traitement des entres avec
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Traitement des entres avec Scanner
-
Plan Entre dun scanner
Manipulation par un scanner
Java, avanc (examen 1Z0-804) alphorm.com
-
Entre dun scanner Un scanner peut tre construit partir de
Un fichier
Un flux
Une chane
Une source de caractres
Java, avanc (examen 1Z0-804) alphorm.com
Une source de caractres
Un canal doctet
-
Manipulation par un scanner Enumrer des valeurs types
Rechercher des motifs ou des chanes
Enumrer des morceaux de chanes
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Entre dun scanner
Manipulation par un scanner
Java, avanc (examen 1Z0-804) alphorm.com
-
Traitement des chanes
Affichage et mise en forme
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Affichage et mise en forme de texte
-
Plan La classe Formatter
String.format, System.out.printf, System.out.format
DateFormat, NumberFormat, DecimalFormat
Java, avanc (examen 1Z0-804) alphorm.com
-
La classe Formatter Cette classe permet dappliquer des motifs faon printf
Un objet de type Formatter peut tre li un StringBuilder
Permet de formatter, rorganiser les paramtres
Les conversions sont
Java, avanc (examen 1Z0-804) alphorm.com
Gnrales, Character, Numeric, Date/Time, Percent, LineSeparator
-
String.format, printf Mthodes de confort exploitant un Formatter
String.format permet de formatter une chane de caractres
System.out.printf ou format gre directement laffichage
Java, avanc (examen 1Z0-804) alphorm.com
-
DateFormat, NumberFormat, DecimalFormat Dans le package java.text
Permet de formatter les dates, les nombres
Existe en une instance dpendant du poste
Sadapte aux cultures
Java, avanc (examen 1Z0-804) alphorm.com
Gre le formatage et aussi le parsing
-
Ce quon a couvert La classe Formatter
String.format, System.out.printf, System.out.format
DateFormat, NumberFormat, DecimalFormat
Java, avanc (examen 1Z0-804) alphorm.com
-
Traitement des chanes
Expressions rgulires avec
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Expressions rgulires avec Pattern et Matcher
-
Plan Les expressions rgulires
La classe Pattern
La classe Matcher
Java, avanc (examen 1Z0-804) alphorm.com
-
Les expressions rgulires Sorte de langage la grammaire simple
Permet de retrouver des motifs dans des chanes de caractres
Bas sur Perl5, mais quelques constructions en moins
Motifs :
Java, avanc (examen 1Z0-804) alphorm.com
Caractres dchappement \n, \t
[abc] : a ou b ou c, [^abc] : tout sauf a ou b ou c, [a-z] : de a z
. : tout caractre, \d : [0-9], \D : [^0-9], \s : un blanc, \w : [a-zA-Z0-9]
X? : un ou zro, X* : 0 ou plus, X+ : 1 ou plus, X{n} : n, X{n,m} : entre n et m
-
La classe Pattern Le package java.util.regex
Permet de compiler une expression rgulire en un motif
Mthodes statiques :
compile, matches, quote
Java, avanc (examen 1Z0-804) alphorm.com
Autres mthodes :
matcher, pattern, split, toString
-
La classe Matcher Reprsente un outil pour grer les correspondances dun motif
Faire correspondre toute la squence
Rechercher le pattern en partant du dbut
Rechercher la prochaine partie qui correspond au motif
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Les expressions rgulires
La classe Pattern
La classe Matcher
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Catgories dexceptions
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Catgories dexceptions
-
Plan La classe Throwable
La classe Exception
Les exceptions non gres
Les exceptions gres
Java, avanc (examen 1Z0-804) alphorm.com
-
La classe Throwable Classe mre de tout ce qui peut tre lev lorsquune erreur est dtecte
Plusieurs constructeurs :
Throwable ()
Throwable (String message)
Throwable (String message, Throwable cause)
Java, avanc (examen 1Z0-804) alphorm.com
Throwable (String message, Throwable cause)
Throwable (String message, Throwable cause, boolean sup, boolean stack)
Throwable (Throwable cause)
Mthodes : getMessage(), getCause() .
-
La classe Exception Classe drive de Throwable
Classe mre de tout ce qui peut tre lev dans une application
Plusieurs constructeurs :
Exception()
Java, avanc (examen 1Z0-804) alphorm.com
Exception(String message)
Exception(String message, Throwable cause)
Exception(String message, Throwable cause, boolean sup, boolean stack)
Exception(Throwable cause)
-
Les exceptions non gres RuntimeException est la classe mre de toutes les classes dexceptions
qui arrivent normalement dans une application
Le compilateur noblige pas grer ces exceptions
On parle dexceptions non gres
ArithmeticException, ClassCastException, NullpointerException
Java, avanc (examen 1Z0-804) alphorm.com
ArithmeticException, ClassCastException, NullpointerException
Sont dclares dans java.lang
-
Les exceptions gres Classes drives de Exception
En ralit tout Throwable qui nest ni Error, ni RuntimeException
Le compilateur exigera une gestion explicite
avec les mots cls try-catch-throw-throws
On ne peut pas ignorer simplement la leve de ces exceptions
Java, avanc (examen 1Z0-804) alphorm.com
On ne peut pas ignorer simplement la leve de ces exceptions
-
Ce quon a couvert La classe Throwable
La classe Exception
Les exceptions non gres
Les exceptions gres
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Classes dexception Java
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Classes dexception Java standard
-
Plan Les classes dexception non gres de java.lang
Les classes dexception gres de java.lang
Java, avanc (examen 1Z0-804) alphorm.com
-
Les classes dexception non gres ArithmeticException
Java, avanc (examen 1Z0-804) alphorm.com
ArrayIndexOutOfBoundsException
ArrayStoreException
ClassCastException
-
Les classes dexception non gres IllegalArgumentException : mauvais argument lors dun appel de mthode
IllegalMonitorStateException : attente dun thread non bloqu
IllegalStateException : application dans un tat incorrect
IllegalThreadStateException : ltat du thread ne permet pas de raliser lopration
IndexOutOfBoundsException : dbordement dindex
NegativeArraySizeException : allocation dun tableau avec une taille ngative
Java, avanc (examen 1Z0-804) alphorm.com
NegativeArraySizeException : allocation dun tableau avec une taille ngative
NullPointerException : utilisation dune rfrence nulle
NumberFormatException : conversion de chane de caractre en numrique impossible
SecurityException : tentative de violation de scurit
StringIndexOutOfBounds : index suprieur la taille de la chane
UnsupportedOperationException : opration non supporte
-
Les classes dexception gres Ces exceptions qui correspondent certaines API
Les exceptions qui sont lies aux entres-sorties
Les exceptions lies aux bases de donnes
Le compilateur exigera une gestion du cas exceptionnel
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Les classes dexception non gres de java.lang
Les classes dexception gres de java.lang
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Cration de classes
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Cration de classes dexception
-
Plan Hriter de Exception
Dclarer des membres spcifiques
Java, avanc (examen 1Z0-804) alphorm.com
-
Hriter de Exception Il est indispensable dhriter de Exception
Faire le choix du constructeur
Le message est dj prvu
La cause est dj prvue
Un hritage sur RuntimeException est possible
Java, avanc (examen 1Z0-804) alphorm.com
Un hritage sur RuntimeException est possible
-
Dclarer des membres spcifiques Une exception capte le contexte derreur et le remonte
Constructeur avec les paramtres appropris
Getter pour restituer linformation
Les attributs vont avec
Une exception peut ne pas avoir dattributs spcifiques
Java, avanc (examen 1Z0-804) alphorm.com
Une exception peut ne pas avoir dattributs spcifiques
Son type seul suffit lidentifier
-
Ce quon a couvert Hriter de Exception
Dclarer des membres spcifiques
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Les mots-cls try, catch et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les mots-cls try, catch et finally
-
Plan Le mot-cl try
Le mot-cl catch
Le mot-cl finally
La dclaration de leve dexception
Java, avanc (examen 1Z0-804) alphorm.com
-
Le mot-cl try Mot-cl qui introduit le bloc de code nominal
Ce bloc sera suivi des blocs de gestion derreur
Java, avanc (examen 1Z0-804) alphorm.com
-
Le mot-cl catch Correspond un bloc de gestion derreur
Plusieurs blocs catch peuvent suivre un try
Il seront valus dans lordre de prsence dans le code
Java, avanc (examen 1Z0-804) alphorm.com
-
Le mot-cl finally Termine la squence des catch
Optionnel
Introduit in bloc garanti dexcution
Java, avanc (examen 1Z0-804) alphorm.com
-
La dclaration de la leve dexceptions Pour grer les exceptions, 2 possibilits :
Try-catch pour grer ce niveau lexception
Throws pour laisser passer lexception
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Le mot-cl try
Le mot-cl catch
Le mot-cl finally
La dclaration de leve dexception
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Linterface AutoCloseable et
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Linterface AutoCloseable et try-with-resources
-
Plan Labsence de destruction dterministe
Avec try-with-resources
Java, avanc (examen 1Z0-804) alphorm.com
-
Labsence de destruction dterministe Le ramasse-miette se charge de rcuprer la mmoire non utilise
Mais son passage est dict par ses propres algorithmes
Il est possible mais souvent maladroit de dclencher le gc
En Java, il ny a pas de destructeur dterministe
Java, avanc (examen 1Z0-804) alphorm.com
Cela vite au dveloppeur davoir crire le delete
Mais certains objets ont des ressources (non mmoire) associes
Il faut les forcer librer ces ressources
-
Avec try-with-resources Provoquer le close sur un objet
Il faut implmenter AutoCloseable
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Labsence de destruction dterministe
Avec try-with-resources
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Multi-catch
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Multi-catch
-
Plan Plusieurs catch sont possibles derrire un try
Le polymorphisme des exceptions
Le contenu dun catch
Java, avanc (examen 1Z0-804) alphorm.com
-
Plusieurs catch sont possibles aprs un try Les catch sont typs par la classe dexception quils traitent
Un bloc catch excut suffit pour quil ny ait plus derreur
Les blocs catch sont valus dans lordre de prsence dans le code
Mais ds quun catch correspond, il est excut
Java, avanc (examen 1Z0-804) alphorm.com
Aucun autre ne sera excut
Si aucun catch ne correspond, on remonte lappelant
-
Le polymorphisme des exceptions Les classes dexception sont organises en hritages
Un catch sur une classe mre attrape les exceptions filles
Il faut mettre les catch du type le plus spcifique vers le plus gnrique
Sinon, le premier bloc convient toujours, et les autres sont du code mort
Java, avanc (examen 1Z0-804) alphorm.com
-
Le contenu dun catch Ne rien mettre dans un catch est dangereux
Lerreur sera rpute traite, mais rien nest fait
Traiter lerreur en utilisant le contexte : lexception
Mthodes printStackTrace de Exception
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Plusieurs catch sont possibles derrire un try
Le polymorphisme des exceptions
Le contenu dun catch
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Meilleures pratiques
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Meilleures pratiques
-
Plan Un bloc try par mthode
Contenu des catch
Granularit des catch
Rinterprtation des exceptions
Java, avanc (examen 1Z0-804) alphorm.com
-
Un bloc try par mthode Si vous placez plusieurs try dans une mthode
Il est possible de raliser le second try sans le premier
Est-ce que la mthode elle-mme est cohrente ?
Il est difficile de suivre le scnario nominal
Un seul try suivi de plusieurs catch
Java, avanc (examen 1Z0-804) alphorm.com
Un seul try suivi de plusieurs catch
Facile lire, meilleure sparation du code nominal du code de gestion des erreurs
-
Contenu des catch Un minimum dans un catch, non vide
Utiliser les mthodes prsentes sur la classe Exception
en fait Throwable
Utiliser un log pour tracer
Java, avanc (examen 1Z0-804) alphorm.com
Rtablir le systme bas-niveau et rinterprter
-
Granularit des catch Le bloc catch est dclench pour 1 type dexception
On peut traiter une classe mre
Traiter Exception et totalement gnraliste
Traiter une super classe traite toutes ses sous-classes
Il est possible de traiter plusieurs types non relis
Java, avanc (examen 1Z0-804) alphorm.com
Il est possible de traiter plusieurs types non relis
-
Rinterprtation des exceptions Il est possible de relancer une exception alors quune exception est en
cours de traitement
Cas particulier du traitement bas-niveau puis
Relancer la mme exception
Relancer une nouvelle exception : rinterprtation
Java, avanc (examen 1Z0-804) alphorm.com
Relancer une nouvelle exception : rinterprtation
-
Ce quon a couvert Un bloc try par mthode
Contenu des catch
Granularit des catch
Rinterprtation des exceptions
Java, avanc (examen 1Z0-804) alphorm.com
-
Exceptions et assertions
Les assertions
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les assertions
-
Plan Dfinition dune assertion
Placer les assertions
Lancer lapplication avec ou sans les assertions
Java, avanc (examen 1Z0-804) alphorm.com
-
Dfinition dune assertion Une vrification runtime que lobjet est bien dans un certain tat
Contrat dutilisation dun objet, dune mthode
Ne cherche pas vrifier les entres variantes de lenvironnement
Utiliser les tests base de if pour cela
Java, avanc (examen 1Z0-804) alphorm.com
Lorsque lassertion nest pas vrifie, une Error est leve
-
Placer une assertion En dbut de mthode : une prcondition
En fin de mthode : une postcondition
Nimporte o : un invariant
Une assertion peut dtecter un passage dans un flux non prvu
Java, avanc (examen 1Z0-804) alphorm.com
Ne pas tester les paramtres en entre dus lutilisateur
Les assertions sont dbrayables
-
Lancer avec ou sans les assertions Les assertions ne sont pas lances par dfaut
Il faut les activer avec ea
Donc les assertions ne cotent rien dans une application livre
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert Dfinition dune assertion
Placer les assertions
Lancer lapplication avec ou sans les assertions
Java, avanc (examen 1Z0-804) alphorm.com
-
Principes des entres-sorties
Gestion des entres-sorties
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Gestion des entres-sorties
-
Plan Hirarchie de classes
Les canaux
Les filtres
Java, avanc (examen 1Z0-804) alphorm.com
-
Hirarchie de classes InputStream est une entre binaire
OutputStream est une sortie binaire
Reader est une entre texte
Writer est une sortie texte
Java, avanc (examen 1Z0-804) alphorm.com
Drives de ces classes
Canaux reprsentant les sources/cibles de donnes
Filtres reprsentant les dcorateurs
-
Les canaux Les sources ou les cibles
Fichiers : FileInputStream, FileOutputStream, FileReader, FileWriter
Sockets
Entres ou sorties sur les serveurs : ServletOutputStream
Java, avanc (examen 1Z0-804) alphorm.com
-
Les filtres Dcorations des accs aux donnes
Ne rajoutent pas mthodes
BufferedInputStream : gre une lecture bufferise
Ou bien ajoutent des comportement
Java, avanc (examen 1Z0-804) alphorm.com
DataInputStream : lit des valeurs de types primitifs
-
Ce quon a couvert Hirarchie de classes
Les canaux
Les filtres
Java, avanc (examen 1Z0-804) alphorm.com
-
Principes des entres-sorties
Lecture de la console
Java, avanc (examen 1Z0-804) alphorm.com
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Lecture de la console
-
Plan System.in est une entre binaire
Les filtres pour lire la console
Java, avanc (examen 1Z0-804) alphorm.com
-
System.in est une entre binaire System.in est de type InputStream
Lecture via read ou read(byte[])
Rcupration dun octet
Java, avanc (examen 1Z0-804) alphorm.com
-
Les filtres pour lire la console InputStreamReader permet de convertir lentre binaire en entre
caractres
BufferedReader permet de lire une ligne
Java, avanc (examen 1Z0-804) alphorm.com
BufferedReader permet de lire une ligne
-
Scanner Pour rappel, il est possible dutiliser Scanner
Lecture de donnes formates
Java, avanc (examen 1Z0-804) alphorm.com
-
Ce quon a couvert System.in est une entre binaire
Les filtres pour lire la console
Java, avanc (examen 1Z0-804) alphorm.com
-
Principes de