Cours POO1_JAVA_2014_2015.pdf
-
Upload
djobiii2078 -
Category
Documents
-
view
56 -
download
2
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 ?