Cours POO1_JAVA_2014_2015.pdf

download Cours POO1_JAVA_2014_2015.pdf

of 78

Transcript of Cours POO1_JAVA_2014_2015.pdf

  • PO

    O

    1

    Programmation Oriente Objet :Application en JAVA

    -Partie 1-

    1Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    -Partie 1-

  • PO

    O

    1

    OBJECTIFS ET PRE-REQUIS

    L'objectif de ce cours est d'apprendre aux tudiants les concepts de base de

    la programmation oriente objet applique au langage Java (Ils apprendront

    programmer des interfaces hommemachine simple et ce connecter via

    java une base de donne).

    PRE-REQUIS

    OBJECTIFS

    2Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    PRE-REQUIS

    Le bon droulement de ce cours suppose la matrise des notions de base de

    lalgorithmique et des connaissances en programmation structure applique

    au langage C .

  • PO

    O

    1

    Chapitre 1 : Dveloppement logicielChapitre 2 : Le langage JavaChapitre 3 : Objet et classe-Application JavaChapitre 4 : Mes premiers applications en ligne de commandeChapitre 5 : Environnement de dveloppement : Etude IDE EclipseChapitre 6 : Hritage-Polymorphisme -Classe abstraiteChapitre 7 : Paquetage en java

    SOMMAIRE

    3Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Chapitre 7 : Paquetage en java Chapitre 8 : ExceptionChapitre 9 : Classe StringChapitre 10 : Programmation dynamiqueChapitre 11: Interface graphique AWT et SWINGChapitre 12 : Les appletsChapitre 13: La connexion une BD

  • PO

    O

    1

    Cours : 2H par semaineTD/TP : 2H par semaine Devoir : 1 devoir aprs chaque chapitre du cours (Domicile et corrig en coursQUIZ : Intervient aprs trois sances et sont compts dans les valuations (10mn)

    et 20 mn de correction

    Droulement

    ------------------------ CCDevoir = 20 %

    Cours

    Evaluation

    4Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Moy CC = 0,2*Devoir + 0,3*QUIZ + 0,5*CC programmMoy Projet = 0,65 *Projet de Groupe + 0,35*Certificat MOOC

    56 Heures

    Devoir = 20 %QUIZ = 30%CC programm = 50 %------------------------- ProjetCertification MOOC = 35 % (40% Certificat reu + 60% En test)Projet de groupe = 65 %

    NB Heures

  • PO

    O

    1

    Bibliographie Livres/articles, liens internet

    Jean Michel DOUDOUX, Dveloppons en JAVA, http://www.jmdoudoux.fr/java,1999-2013

    Gauthier Picard , Langage et Concepts de Programmation Oriente-Objet , cole Nationale Suprieure des Mines de Saint-tienne; Ple Informatique 2008/2009.

    GUI Programming Java, http://www3.ntu.edu.sg/home.ehchua/programming/java/J4a_GUI.html

    5Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    MOOCs

    http://www3.ntu.edu.sg/home.ehchua/programming/java/J4a_GUI.html

    Emmanuel Puybaret, les cahiers du programmeur Java, 3me dition, EYROLLES

    ohttps://www.coursera.org/course/initprogjavao5 Septembre -27 Octobre 2014oEPFL

    ohttps://www.coursera.org/course/java-froFeb 17th 2014 (7 weeks long)oEPFL

  • PO

    O

    1

    2

    Mthodes et langages

    Langages de programmation

    1

    CHAPITRE 1Dveloppement Logiciel

    3

    6Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    3 Ecriture dun programme

  • PO

    O

    1

    Mthodes et Langages

    Analyse

    Conception

    Implmentation

    Tests

    SADT, SA-RT, MERISE, OMT, UML,

    Fortran, Cobol, C, SmallTalk, Ada, C++, Java,

    1

    7Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI7

    Maintenance

    Cycle de dveloppement ? Cycle de vie ?

    pcNoteChercher les types de maintenance

    pcPencil

    pcPencil

    pcPencil

  • PO

    O

    1

    Les langages de programmation2

    Paradigme de programmationUn programme est une solution un problme. Cette solution est formule dans unlangage de programmation suivant un style de programmation informatique appelparadigme. Ce dernier fournit la vue qu le developpeur de lexcution de sonprogramme.

    Les paradigmes peuvent tre regroups en grandes familles dont les plus connuessont:

    La programmation imprative

    8Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI8

    La programmation imprativeLa programmation Oriente objetLa programmation dclarativeLa programmation vnementielleLa programmation oriente agentLa programmation oriente aspectLa programmation concurrenteLa programmation squentielleLa programmation oriente contrat

    Nous allons nous intresser dans les lignes qui suivent aux trois premiers types ouparadigmes

    pcNoteIm=Ceve=Visual basic

    pcNoteDevoir : Attacher tous ces paradigmes des exemples

  • PO

    O

    1

    Les langages de programmation2Programmation imprativeCest un paradigme pour lequel la rsolution des problmes se fait de faonsquentielle. Le style propos consiste dcrire un ensemble doprations treexcutes squentiellement afin de modifier ltat du programme en question. On apour ce paradigme, deux types de programmation : la programmation structure et laprogrammation procdurale.

    Programmation structureCest en 1970 quon parle de ce style de programmation. Ce style a tendance limiterlutilisation de linstruction goto des cas inhabituels. Les langages comme PL/1 et

    9Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    lutilisation de linstruction goto des cas inhabituels. Les langages comme PL/1 etPascal se trouvent dans la catgorie des langages qui adoptent ce style. Cependanttous les langages de programmation modernes intgrent ce paradigme travers lesstructures de contrle telles que while, for, if then else.

    Programmation procduraleCe type de programmation malgr quil soit impratif se distingue assez bien de laprogrammation structure. En plus dtre plus volu, il intgre le paradigme structuret permet pour une application de dcouper le code, lorganiser de sorte que celui-cisoit bien structur, comprhensible et plus facile dboguer. En effet, ce paradigmecomme son nom lindique, introduit la notion de procdure qui est en fait une sriedinstructions excuter.

  • PO

    O

    1

    Les langages de programmation2Programmation FonctionnelleCe paradigme tient son origine du langage mathmatique qui traite des fonctions. Unebonne comprhension de ce paradigme passe par une comparaison avec laprogrammation de type procdural. En effet, le paradigme fonctionnel se distingue fortde ce dernier en ce qui concerne la mutation des donnes. Le paradigme fonctionnelest conditionn produire un rsultat unique par transformations successives delensemble des donnes dentres et tout cela sans affectation de variables. La notionde variable ny est mme pas applicable. Cela explique en quelques sortes le fait queles programmeurs sous le paradigme impratif ont souvent plus de difficults saccommoder ce paradigme que des nophytes.

    10Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    saccommoder ce paradigme que des nophytes.Dans le paradigme fonctionnel, une application nest alors vue que comme une fonctionmathmatique. Cependant il existe ce quon appelle les langages fonctionnels impursqui en plus du paradigme fonctionnel permettent le paradigme impratif.Exemple de langage fonctionnel : Haskell, Lisp, Scheme

    Programmation Oriente ObjetLes dveloppeurs peuvent considrer le programme comme une collection dobjetsen interaction. Elle consiste en la dfinition et lassemblage de briques logicielles appeles objets (comme en Smalltalk)

  • PO

    O

    1

    Les langages de programmation2Programmation Oriente Objet

    On peut distinguer dans ce paradigme :Programmation oriente prototype, qui simplifie et rend plus flexible la programmation oriente objetProgrammation oriente classe, comparer la Programmation oriente prototype (dans le contexte de la programmation oriente objet)Programmation oriente composant (comme en OLE)

    Exemple de langage orient objet : C++, Java, C#, Python,

    11Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Programmation dclarativeconsistant dclarer les donnes du problme, puis demander au programme de le rsoudre

    Programmation descriptive, l'expressivit rduite, qui permet de dcrire des structures de donnes (par exemple, HTML, XML ou Latex)Programmation fonctionnelle, avec laquelle un programme est une fonction au sens mathmatique du termeProgrammation logique, consistant exprimer les problmes et les algorithmes sous forme de prdicats (comme en Prolog)Programmation par contraintes, comparer la programmation logique

  • PO

    O

    1

    Langages de programmation

    Traitement 1

    Donnes

    Un programme est compos de plusieurs procdures (ou fonctions) :

    qui effectuent un traitement sur des donnes (procdure)

    qui retournent une valeur aprs leur invocation (fonction)

    Certains langages ne distinguent pas procdures et

    2

    Illustration Programmation imprative

    12Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Traitement 2

    Traitement 3

    Certains langages ne distinguent pas procdures et fonctions.

    Exemples de langages procduraux ou fonctionnels : Fortran, Lisp, C, Pascal

  • PO

    O

    1

    Traitement 1

    Donnes

    Rappels : EXEMPLE DE PROGRAMME STRUCTUREE EN C

    2 Langages de programmation

    13Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI13

    Traitement 2

    Traitement 3

  • PO

    O

    1

    Langages de programmation

    Un programme est compos de plusieurs objets qui contiennent :

    des donnes "internes" des traitements manipulant ces donnes

    internes ou d'autres donnes

    Les donnes d'un objet sont appels ses attributset ses traitements sont ses mthodes (ou

    D

    DD

    TT

    T

    2

    Programmation oriente objet : illustration

    14Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    et ses traitements sont ses mthodes (ou oprations).

    Exemples de langages orients-objet : SmallTalk, C++, Java,

    DD

    T T

    T

  • PO

    O

    1

    Ecriture dun programme3

    15Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Extrait t MOOC EPFLProgrammation Java

  • PO

    O

    1

    Ecriture dun programme3Des lments de rappel : donnes et traitements

    16Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Extrait t MOOC EPFLProgrammation Java

  • PO

    O

    1

    Ecriture dun programme3Variables et types

    Une variable est caractrise par :

    oSon identificateur, qui est le nom par lequel la donne est dsigne

    oSon type, qui dfinit de quel genre est la donne contenue dans la variable

    oSa valeur, exemple si la donne est un nombre sa valeur pourra tre 12 ou 3.18

    Si je dois dclarer une variable en java, je dois dcider :

    oDu nom de la variable

    17Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    oDu nom de la variable

    oDu type de la variable

    oEt de la valeur initiale de la variable

    Ex : int n = 4; int nCarre ;

  • PO

    O

    1

    Ecriture dun programme3Variables et typesNoms de variable

    18Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Extrait t MOOC EPFLProgrammation Java

  • PO

    O

    1

    Ecriture dun programme3Nommage des variablesEn Java, bien que ce ne soit pas requis par le compilateur, la convention est dcrire le nom des variables en commenant par une minuscule, et commencer les mots suivants par une majuscule.

    Par exemple, on utilisera

    nombreDePoints plutt que NombreDePoints ou nombre_de_points

    AffectationLexcution dune affectation se dcompose en deux temps :

    19Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    int n = 5;

    nCarre = n*n ; ( = est le signe daffectation)

    On commence par valuer lexpression n*n puis on stocke dans la variable nomme nCarreela valeur 25.

    Syntaxe :nom_de_variable = expression ;

    // Une expression calcule une valeur qui doit tre de mme type que la variable.

  • PO

    O

    1

    Ecriture dun programme3Dclaration dune constanteIl peut arriver que la valeur dune variable ne doit pas changer aprs son initialisation. Dans ce cas, il faut ajouter devant la dclaration de cette variable , le mot cl final.

    final type identificateur = valeur_initiale ;

    Exemple final int n = 15 ;

    20Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Dans ce cas on ne peut plus modifier le contenu de la variable n.

    Si on fait n = 25 ; //on obtient une erreur.

  • PO

    O

    1

    Ecriture dun programme3Ecriture lEcranEn java la syntaxe dcriture lcran est la suivante :

    System.out.println([message] + [expression] + [message]);

    Ou

    System.out.print([message] + [expression] + [message]);

    Si lexpression contient des additions, il faut le protger par les parenthses.

    + joue le rle concatnation.

    Des exemples :

    int n= 4, t = 5;

    21Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    int n= 4, t = 5;System.out.println("Le rsultat est :" + n +".")

    Affiche : Le rsultat est 4.

    System.out.println("La somme de n et t vaut :" + (n +t)+".");

    Affiche : La somme de n et t vaut : 9.

    System.out.println("La somme de n et t vaut :" + n +t + ".");

    Affiche : La somme de n et t vaut : 45.

  • PO

    O

    1

    Ecriture dun programme3Lecture dune variable au clavierLa lecture dune variable au clavier ncessite limportation de la classe Scanner; (entre standard)

    import java.util.Scanner;

    On cre une instance de Scanner qui sera utilise pour demander les valeurs au clavier :

    Scanner keyb = new Scanner(System.in);// System.in pour dire que ce quon saisi vient du clavier

    Et on effectue la demande

    22Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Et on effectue la demande

    int n = keyb.nextInt(); // demande lentre au clavier de la valeur de n

    Pour effectuer la saisie dun double on fait double d = keyb.nextDouble();

    Fonctionnement de la mthode nextInt(); 1. Elle arrte le programme momentanment 2. Elle attend que lutilisateur entre une valeur au clavier et appuie sur la touche retour;3. Elle affecte la valeur entre par lutilisateur la variable n, puis le programme continue.

  • PO

    O

    1

    Ecriture dun programme3Lecture dune variable au claverSaisie dune chaine de caractre aux clavier

    String s = keyb.nextLine();

    S contient toute les caractres saisies au clavier jusquau return.

    De ce fait, si vous appeler un nextLine() la suite dun nextInt, il y a des fortes chance que vous nobtenez pas le bon resultat car s contiendra dabord la return. Pour viter ceci, il faut faire un nextLine() avant.

    23Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Par exemple :

    int n = keyb.nextInt();keyb.nextLine();String s = keyb.nextLine();

  • PO

    O

    1

    Ecriture dun programme3Lecture dune variable au clavierLeur seule diffrence est donc au niveau de leur valeur :i++ Vaut la valeur de i avant incrmentation

    alors que++ivaut la valeur de i aprs incrmentation.Si lon prend lexemple suivant :int i = 3;int j = i; // i et j ont la mme valeur

    24Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    int j = i; // i et j ont la mme valeurint k = 0;int l = 0;k = ++i; // oprateur prfixl = j++; // oprateur postfix

  • PO

    O

    1

    Chercher et commenter les mthodes de la classe Scanner.

    25Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    pcNoteVoir les diffrents types de modificateurs d'accs et signification

  • PO

    O

    1

    2

    Prsentation

    3

    Caractristiques

    1

    Quelques ditions

    CHAPITRE 2Langage Java

    26Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    3

    4

    Quelques ditions

    Ressources

    5 Installation de java

  • PO

    O

    1

    Une technologie dveloppe par SUN Microsystems lance en 1995

    Un langage de programmation

    Une plateforme , environnement logiciel dans lequel les programmes java s'excutent.

    Prsente dans de trs nombreux domaines dapplication : des serveurs dapplications aux tlphone portables et cartes puces (JME)

    Analyse

    Conception

    Implmentation

    Prsentation1

    27Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    (JME)

    Quelques chiffres (Java One 2005): 4,5 millions de dveloppeurs Java 700 millions de PC quips d'une JVM 708 millions de tlphones Java 600 millions de priphriques mobiles 1 milliard de Java Cards

    - Et aujourdhui (A chercher)

    Tests

    Maintenance

  • PO

    O

    1

    Le source est compil en pseudo code ou byte code puis excut par un interprteur Java : laJava Virtual Machine (JVM). Ce concept est la base du slogan de Sun pour Java : WORA(Write Once, Run Anywhere : crire une fois, excuter partout). En effet, le byte code, s'il necontient pas de code spcifique une plate-forme particulire peut tre excut et obtenirquasiment les mme rsultats sur toutes les machines disposant d'une JVM.

    Java est interprt

    Il est possible d'excuter des programmes Java sur tous les environnements qui possdent une JavaVirtual Machine. Cette indpendance est assure au niveau du code source grce Unicode et auniveau du byte code.

    Java est portable : il est indpendant de toute plate-forme

    Caractristiques2

    28Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    niveau du byte code.

  • PO

    O

    1

    Java est fortement typtoutes les variables sont types et il n'existe pas de conversion automatique qui risqueraitune perte de donnes. Si une telle conversion doit tre ralise, le dveloppeur doitobligatoirement utiliser un cast ou une mthode statique fournie en standard pour laraliser.

    L'allocation de la mmoire pour un objet est automatique sa cration et Java rcupreautomatiquement la mmoire inutilise grce au garbage collector qui restitue les zonesde mmoire laisses libres suite la destruction des objets.

    Java assure la gestion de la mmoire

    Caractristiques2

    29Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Il permet l'utilisation de threads qui sont des units d'excution isoles. La JVM, elle mme, utilise plusieurs threads.

    Java est multitche

    Le choix de ses auteurs a t d'abandonner des lments mal compris ou mal exploitsdes autres langages tels que la notion de pointeurs (pour viter les incidents en manipulantdirectement la mmoire), l'hritage multiple et la surcharge des oprateurs, ...

    Java est simple

  • PO

    O

    1

    Pour dvelopper avec Java, SUN fournit un ensemble doutils et API, ceci travers un Kitappel JDK (Java Developement Kit).

    JRE : Java Runtime Environnement , cest uniquement lenvironnement dexcution deJava.

    Pour quun programme sxcute sur une machine, JRE doit y tre install. JDK contient JRE. Java a t nomm Java 2 partir de la version 1.2 :

    Les ditions de Java3

    30Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Trois ditions de Java qui existent :

    J2ME : Java Micro Edition : contient le ncessaire pour dvelopper des applications capablesde fonctionner dans des environnements limits tels que les assistants personnels (PDA), lestlphones portables ou les systmes de navigation embarqus

    J2SE : Java Standard Edition : contient le ncessaire pour dvelopper des applications et des applets.

    J2EE : Java Enterprise Edition : contient un ensemble de plusieurs API permettant le dveloppement d'applications destines aux entreprises tel que JDBC pour l'accs aux bases de donnes, EJB pour dvelopper des composants orients mtiers, Servlet / JSP pour gnrer des pages HTML dynamiques, ... Cette dition ncessite le J2SE pour fonctionner.

  • PO

    O

    1

    http://java.sun.com : contient toute les informations concernant JAVA .Pour tlcharger JDK et toute la documentation, allez dans ce site. Ilcontient toute sorte de ressources pour les dveloppeurs.

    http://www.java.com/ : Contient les informations sur Java, vous pouveztlcharger les informations concernant certains aspects de JAVA.

    Pour quun programme crit en Java sur une plateforme X, sexcute sur

    Ressources Java4

    31Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Pour quun programme crit en Java sur une plateforme X, sexcute surune plate forme Y, nous devons installer sur Y la JRE qui correspond Y.

  • PO

    O

    1

    http://docs.oracle.com/javase/7/docs/index.html

    Ressources Java: documentation4

    32Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Les IDE pour Java4

    33Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Tlcharger sur le site de Sun et excuter le fichier j2sdk.

    Exemple de j2DK version 1.5 pour la plateforme Windows : j2sdk.-1_5_0-windows-i586.exe

    Installation Java5

    34Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Un assistant guide l'utilisateur pour l'installation de l'outil.Sur la page Licence Agreement , il faut lire la licence et si vous l'acceptez, cochez lebouton radio I accept the terms in the licence agreement et cliquez sur le bouton Next

    Sur la page Custom Setup , il est possible de slectionner/dslectionner leslments installer. Cliquez simplement sur le bouton Next .

  • PO

    O

    1

    La page Browser registration permet de slectionner les plug-ins des navigateurs qui seront installs. Cliquez sur le bouton Install Les fichiers sont copis.

    La page InstallShield Wizard Completed s'affichage la fin de l'installation. Cliquez sur Finish .

    Pour faciliter l'utilisation des outils du J2SE SDK, il faut ajouter le chemin du rpertoire bin contenant ces outils dans la variable Path du systme.

    5 Installation Java

    35Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Il est aussi utile de dfinir la variable d'environnement JAVA_HOME avec comme valeur le chemin d'installation du SDK.

  • PO

    O

    1

    5 Installation Java

    36Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Vrifier que Java est bel et bien install

    5 Installation Java

    37Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    2

    Objet

    3

    Classe

    1

    Syntaxe et lments de base

    CHAPITRE 3Objet et classe : Application en Java

    38Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    4

    5

    Mthode

    6

    Porte dune variable

    Instanciation de la classe

  • PO

    O

    1

    Objet Approche procdurale :"Que doit faire mon programme ?" Approche oriente-objet :"De quoi doit tre compos mon programme ?" Cette composition est consquence d'un choix de modlisation fait

    pendant la conception

    Exemple: Gestion d'une bibliothque

    1

    39Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Le seigneur des anneauxJ.R.R.Tolkien

    GerminalE. Zola

    Le Monde Alice DupontDirectrice

    Michel MartinBibliothcaire

    Anne DurandLectrice

    Arsne DeschampsLecteur

  • PO

    O

    1

    Classe : dfinitionDes objets similaires peuvent tre informatiquement dcrits par une mme abstraction : une classe

    mme structure de donnes et mthodes de traitement valeurs diffrentes pour chaque objet

    Classe Livre-titre, auteur Classe Journal

    -titre

    Classe Employ-nom, prnom, statut

    Classe Lecteur-nom, prnom

    2

    40Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Le seigneur des anneauxJ.R.R.Tolkien

    GerminalE. Zola

    Le MondeAlice Dupont

    Directrice

    Michel MartinBibliothcaire

    Anne DurandLectrice

    Arsne DeschampsLecteur

    -titre

  • PO

    O

    1

    Classe : contenuUne classe est compose de plusieurs membres dont chacun est soit :

    un attribut : variable type une mthode (ou opration) : ensemble d'instructions de traitement

    class CompteBancaire {String proprietaire;double solde;

    double getSolde() {

    Attributs

    2

    41Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    double getSolde() {return solde;

    }

    void credite(double val) {solde = solde + val;

    }}

    Mthodes

  • PO

    O

    1

    Classe: encapsulationL'encapsulation est la pratique consistant regrouper des attributs au sein d'une mme classe.

    Exemple : la classe Livre encapsule les attributs titre et emprunteur

    Pour amliorer la lisibilit des programmes, les attributs encapsuls sont souvent privs (inaccessibles aux autres classes).

    Les donnes et mthodes accessibles sont dites publiques.

    2

    42Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Les donnes et mthodes accessibles sont dites publiques.

  • PO

    O

    1

    Syntaxe et lments de base

    Le code source d'un programme Java est contenu dans plusieursfichiers d'extension .java

    Une seule classe publique par fichier; Le nom du fichier doit tre le mme que celui de la classe; Par convention, le nom d'une classe commence toujours par une

    majuscule.

    3

    Le code source dun programme Java

    43Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Le code source d'une classe commence par le mot-cl class suivi de son contenu :

    class {

    }

  • PO

    O

    1

    Syntaxe et lments de base

    Java est sensible la casse. Chaque objet, classe, programme ou variable est associ un nom :l'identificateur qui peut se composer de tous les caractres alphanumriqueset des caractres _ et $. Le premier caractre doit tre une lettre, lecaractre de soulignement ou le signe dollar.

    Liste des mots cls

    3

    Un identificateur Java

    44Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    abstract const Finalintpublic throwassert (Java 1.4)continuefinally

    interface return throwsBooleandefault float long short transientbreak do

    for native StatictrueBytedouble gotonew strictfp

    Elseif null super voidcatch enum (Java 5) implements trycase

    package Switchvolatilechar extends import private synchronized while

    Classfalseinstanceofprotectedthis

    pcNoteSItuer et donner la signification de chaque cl

  • PO

    O

    1

    3 Syntaxe et lments de baseDclaration de variableType lmentaire dit aussi type primitif ou type simple est dclar sous la forme:

    type_lmentaire variable;

    Exemple:long nombre;int compteur;int jour, mois, annee ;

    45Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Une classe dclare sous la forme: MaClasse instance; // dclaration de l'objetinstance = new MaClasse(); // cration de l'objetOU MaClasse instance = new MaClasse(); // dclaration et cration de l'objet

    Exemple : int[] nombre = new int[10]; // Un tableau est un objet

  • PO

    O

    1

    3

    Mme types qu'en C :

    int

    float

    double

    short

    long

    Plus deux nouveaux types : boolean byte

    Plus la classe : String

    Dclaration :int monEntier;

    Types primitifs

    46Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    long

    char

    void

    int monEntier;String chaine;boolean test;

    Une chaine de caractre est un type dite compos car une chaine de caractre est un ensemble de caractres.

  • PO

    O

    1

    Complments de syntaxe

    Instruction conditionnelle

    if {bloc_si_vrai} else {bloc_si_faux}

    Exemple :

    if (emprunteur.getStatut() == "employe") {

    3

    47Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    if (emprunteur.getStatut() == "employe") {unLivre.setDateRetour(30);

    } else {unLivre.setDateRetour(15);

    }

  • PO

    O

    1

    Complments de syntaxe

    Instruction itrativewhile {bloc}

    Exemple :

    while (i < biblio.nbLivres() ) {Livre l = biblio.getLivre(i);l.setDisponible(true);i++;

    3

    48Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    i++;}

  • PO

    O

    1

    Complments de syntaxe

    Instruction itrative

    for (; ; ) {bloc}

    Exemple :

    for (int i = 0; i < biblio.nbLivres(); i++ ) {

    3

    49Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    for (int i = 0; i < biblio.nbLivres(); i++ ) {Livre l = biblio.getLivre(i);l.setDisponible(true);

    }

  • PO

    O

    1

    Complments de syntaxe

    Instruction de choix multipleswitch () {case : case : default:

    }

    3

    50Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Exemple :

    switch (l.getCategorie()) {case 1: l.setDuree(15);break;

    case 2: l.setDuree(20);break;

    default: l.setDuree(30);}

  • PO

    O

    1

    Autres particularits de syntaxe On peut utiliser l'oprateur + sur les objets de classe StringString s1 = "hello ", s2 = "world";String s3 = s1 + s2;

    s3 vaut "hello world"

    La variable length donne la taille d'un tableauchar[] tab = new char[25];int a = tab.length;

    a vaut 25

    3

    51Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Mthodes : dfinition

    La signature d'une mthode contient notamment : un nom de mthode; un type de donnes de retour; des types de donnes pour ses arguments;

    Par convention le nom des mthodes et attributs commencent toujours par une minuscule.

    Une mthode est compose de sa signature et d'un traitement associ.

    4

    52Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    une minuscule.

    ( * ) {

    }

  • PO

    O

    1

    Mthodes : Exemple classe Livreclass Livre {

    String titre;Lecteur emprunteur;

    void setTitre(String t) {titre = t;

    }

    String getTitre() {return titre; Mthodes

    Attributs

    4

    53Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    return titre;}

    Date emprunte(Lecteur lec) {if (emprunteur = = null) {

    emprunteur = lec;return new Date();

    } else return null;}

    }

    Mthodes

  • PO

    O

    1

    Porte d'une variable

    public class Portee {int a;

    public void test(int b) {if (a > b) {int c = b;b = a;a = b;

    }

    l'entier a est visible dans toute la classe

    5

    54Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    }afficher(b);

    }}

  • PO

    O

    1

    Porte d'une variable

    public class Portee {int a;

    public void test(int b) {if (a > b) {int c = b;b = a;a = b;

    l'entier b est visible l'intrieur de la mthode test

    5

    55Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    a = b;}afficher(b);

    }}

  • PO

    O

    1

    Porte d'une variablepublic class Portee {int a;

    public void test(int b) {if (a > b) {int c = b;b = a;a = b;

    }

    l'entier c est visible dans le bloc du if

    5

    56Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    }afficher(b);

    }}

  • PO

    O

    1

    InstanciationL'instanciation est l'opration qui consiste crer un objet partir d'une classe.

    En Java, le mot-cl new provoque une instanciation en faisant appel un constructeur de la classe instancie.

    Un constructeur est une mthode qui a le mme nom que la classe Un constructeur n'a pas de valeur de retour Plusieurs constructeurs peuvent exister dans une mme classe (avec

    6

    57Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    des arguments diffrents) Il faut au moins un constructeur dans une classe pour en instancier

    des objets

  • PO

    O

    1

    Constructeur de la classe Livreclass Livre {

    String titre;Lecteur emprunteur;

    Livre(String t) {titre = t;emprunteur = null;

    }

    void setTitre(String t) {

    Constructeur

    6

    58Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    void setTitre(String t) {titre = t;}

    String getTitre() {return titre;}

    Date emprunte(Lecteur lec) {

    }}

  • PO

    O

    1

    Instanciation de la classe Livreclass InterfaceBibliothecaire {

    void enregistreLivre(String nom) {Livre nouveauLivre;nouveauLivre = new Livre(nom);ajouteEnBibliotheque(nouveauLivre);

    }

    void ajouteEnBibliotheque(Livre li) {

    6

    59Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    void ajouteEnBibliotheque(Livre li) {

    }}

  • PO

    O

    1

    Invocation de mthodes

    En Java, une mthode ne peut pas tre invoque seule, elle est toujours appele sur un objet.

    Un point . spare le nom de la mthode de l'objet sur lequel elle est invoque.Livre monLivre = new Livre("Germinal");String titreDuLivre = monLivre.getTitre();

    6

    60Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Le mot-cl this dsigne, en cours d'excution d'une mthode, l'objet sur lequel elle est appele.

    La syntaxe pour accder aux attributs d'un objet est la mme.

  • PO

    O

    1

    Exemple

    class Livre {String titre;Lecteur emprunteur;boolean estEmprunte() {if (emprunteur == null) return false;else return true;

    }

    Date emprunte(Lecteur lec) {if ( this.estEmprunte() == true)

    class Lecteur {Livre[ ] emprunts;int nbEmprunts;boolean empruntePossible() {if (nbEmprunts < 5) return true;else return false;

    }

    void ajouteEmprunt(Livre liv) {

    6

    61Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    if ( this.estEmprunte() == true)return null;

    if ( lec.empruntPossible() ) {emprunteur = lec;lec.ajouteEmprunt(this);return new Date();

    } else return null;}

    }

    void ajouteEmprunt(Livre liv) {empruntsnbEmprunts] = liv;nbEmprunts ++;

    }}

  • PO

    O

    1

    Passage dargument une mthode en java6

    62Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Visibilit des membresLa visibilit d'une classe et de ses membres dfinit quelles autres classes y ont accs. Ces contraintes portent sur :

    la rfrence fait une classe l'invocation d'une mthode sur un objet l'accs en lecture et criture un attribut d'un objet

    4 niveaux de visibilit en Java :

    public : visible tous les objets

    6

    63Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    public : visible tous les objets

    private : uniquement visible par les instances de la classe

    protected : implicite pour une classe et explicite pour une mthode

    par dfaut : expliqu ultrieurement

  • PO

    O

    1

    Exemple de visibilit

    public class Livre {private String titre;private Lecteur emprunteur;private boolean estEmprunte() {if (emprunteur == null) return false;else return true;

    }

    public Date emprunte(Lecteur lec) {

    public class Lecteur {private Livre[ ] emprunts;private int nbEmprunts;public boolean empruntePossible() {if (nbEmprunts < 5) return true;else return false;

    }

    6

    64Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    if ( this.estEmprunte() == true)return null;

    if ( lec.empruntPossible() ) {emprunteur = lec;lec.ajouteEmprunt( this );return new Date();

    } else return null;}

    }

    public void ajouteEmprunt(Livre liv) {emprunts[nbEmprunts] = liv;nbEmprunts ++;

    }}

  • PO

    O

    1

    Modificateurs daccs6

    Modificateur Rle

    public Une variable, mthode ou classe dclare public est visible par tous les autres objets. Dans la philosophie oriente objet aucune donne d'une classe ne devrait tre dclare publique : il est prfrable d'crire des mthodes pour la consulter et la modifier

    par dfaut :package friendly

    Il n'existe pas de mot cl pour dfinir ce niveau, qui est le niveau par dfaut lorsqu'aucun modificateur n'est prcis. Cette dclaration permet une entit (classe, mthode ou variable) d'trevisible par toutes les classes se trouvant dans le mme package.

    65Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    visible par toutes les classes se trouvant dans le mme package.

    protected Si une mthode ou une variable est dclare protected , seules les mthodes prsentes dans le mme package que cette classe ou ses sous classes pourront y accder. On ne peut pas qualifier une classeavec protected.

    private C'est le niveau de protection le plus fort. Les composants ne sont visibles qu' l'intrieur de la classe : ils ne peuvent tre modifis que par des mthodes dfinies dans la classe prvues cet effet. Lesmthodes dclares private ne peuvent pas tre en mme temps dclares abstract car elles nepeuvent pas tre redfinies dans les classes filles.

  • PO

    O

    1

    Modificateurs daccs : mot cl static6 Le mot cl static s'applique aux variables et aux mthodes.

    Les variables d'instance sont des variables propres un objet. Il est possible dedfinir une variable de classe qui est partage entre toutes les instances d'unemme classe : elle n'existe donc qu'une seule fois en mmoire. Une telle variablepermet de stocker une constante ou une valeur modifie tour tour par les instancesde la classe. Elle se dfinit avec le mot cl static.

    Il est aussi possible par exemple de mmoriser les valeurs min et max d'un ensemble d'objets de mme classe.

    66Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    ensemble d'objets de mme classe.

    Une mthode static est une mthode qui n'agit pas sur des variables d'instancemais uniquement sur des variables de classe. Ces mthodes peuvent tre utilisessans instancier un objet de la classe. Les mthodes ainsi dfinies peuvent treappeles avec la notation classe.methode() au lieu de objet.methode() : lapremire forme est fortement recommande pour viter toute confusion.

    Il n'est pas possible d'appeler une mthode d'instance ou d'accder une variable d'instance partir d'une mthode de classe statique.

  • PO

    O

    1

    Modificateurs daccs : mot cl final6Le mot cl final s'applique aux variables de classe ou d'instance ou locales, aux mthodes, aux paramtres d'une mthodeet aux classes. Il permet de rendre l'entit sur laquelle il s'applique non modifiable une fois qu'elle est dclare pour unemthode ou une classe et initialise pour une variable.Une variable qualifie de final signifie que la valeur de la variable ne peut plus tre modifie une fois que celle-ci estinitialise.

    Une fois la variable dclare final initialise, il n'est plus possible de modifier sa

    67Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Une fois la variable dclare final initialise, il n'est plus possible de modifier sa valeur. Une vrification est opre parle compilateur..

  • PO

    O

    1

    2

    Environnement typique

    3

    Byte code, JVM

    1

    Mon premier programme

    CHAPITRE 4Mes premires applications en ligne de commande

    68Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    3

    4

    Mon premier programme

    Notion de Package

  • PO

    O

    1

    Environnement typique

    Phase 1 Editeur Disque

    Le programme est cre partir dun diteur et stocksur le disque avec lextension.java

    Phase 2 Compilateur Disque

    Le compilateur cre lebyteCode et le sauvegardesur le disque dans un fichieravec pour extension .class

    1

    69Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    avec pour extension .class

    Phase 3 Chargeur de Classe

    Disque

    Le chargeur de classe lit lesfichier .class contenant lesbytecodes sur le disque etcharge ces byteCodes enmmoire.

    Mmoire Primaire

  • PO

    O

    1

    Phase 4Vrificateur

    Bytecode

    Disque

    Le vrificateur de byteCodevrifie que tous les bytecodessont valides et ne violent pasles restrictions de scuritJava.

    Phase 5Linterprteur lit les byteCodes

    Mmoire Primaire

    Mmoire Primaire

    1 Environnement typique

    70Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Phase 5 Interprteur

    Disque

    Linterprteur lit les byteCodeset les traduit dans un langagecomprhensible par lordinateur.

  • PO

    O

    1

    Byte code, JVM

    Programmer en Java, cest :

    crire les classes du programme, leurs mthodes et leurs champs ;instancier les classes (crer les objets du programme) ;appeler les mthodes de ces objets (leur envoyer des messages).

    Le cycle de dveloppement Java

    2

    71Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Lancement de la machine virtuelle Java (JVM, pour JavaVirtual Machine). La JVM charge les fichiers ncessaires lexcution du programme et interprte le code binaire desinstructions des mthodes en instructions du microprocesseurde la machine sur laquelle tourne le programme.

    Les trois principaux environnements dexcution Java

    Byte code, JVM 2

    72Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Les trois principaux environnements dexcution Java(frameworks en anglais) sont les applications, les applets et lesservlets . Chaque environnement utilise une catgorie de classeet un point dentre diffrents ; le point dentre dunprogramme est la mthode appele par la JVM pour excuterun programme.

  • PO

    O

    1

    Application batch ou interface homme-machine lance avec la commande javaUne application sexcute sur une machine isole ou raccorde un rseau.La JVM et les fichiers dune application doivent tre installs sur la machine.Le point dentre dune application est la mthode dune classe respectant la syntaxe dcrite ci-aprs.

    Byte code, JVM 2

    73Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Applet dun fichier HTML lance par un navigateurUne applet sexcute dans une page HTML sur une machine clienteraccorde un serveur Web.La JVM, installe sur la machine cliente, est lance par le navigateur.Les fichiers dune applet sont installs sur le serveur Web et tlchargs parle navigateur.Le point dentre dune applet est la mthode dune classe respectant lasyntaxe dcrite ci-aprs.

    Byte code, JVM 2

    74Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    syntaxe dcrite ci-aprs.

  • PO

    O

    1

    Servlet lance par une requte sur un serveur WebUne servlet sexcute sur un serveur Web pour gnrer dynamiquement des pages HTML ou des images.La JVM et les fichiers dune servlet doivent tre installs sur le serveur Web.Le point dentre dune servlet est la mthode dune classe respectant la syntaxe dcrite ci-aprs.

    Byte code, JVM 2

    75Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Mon Premier Programme 3

    76Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

  • PO

    O

    1

    Cas Pratique 1 : Mon Premier Programme

    1. Crer un dossier javaExample dans la racine de votre disque dur

    2. Ouvrir lditeur bloc-notes

    3. Saisir le code ci-dessous

    77Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    4. Enregistrer le fichier sous le nom MaClasse.java

    NB : Pour que le fichier conserve lextension .java , le nom du fichier doittre entre guillemets.

  • PO

    O

    1

    Cas Pratique 1 : Mon Premier Programme -->suite

    78Cours POO 1- JAVA Dr. Ing/PhD Bernab BATCHAKUI

    Questions

    A. Comment saurai-je que jai le dispositif de compilation et dexcution du programme MaClasse ?

    B. Quelle est la cause de lerreur ci-dessus ?

    C. Comment y remdier ?