Vous êtes sur la page 1sur 78

P

O
O
1
Programmation Oriente Objet :
Application en JAVA
-Partie 1-
1
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
-Partie 1-
P
O
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 J ava (Ils apprendront
programmer des interfaces hommemachine simple et ce connecter via
java une base de donne).
PRE-REQUIS
OBJECTIFS
2
Cours 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 .
P
O
O
1
Chapitre 1 : Dveloppement logiciel
Chapitre 2 : Le langage J ava
Chapitre 3 : Objet et classe-Application J ava
Chapitre 4 : Mes premiers applications en ligne de commande
Chapitre 5 : Environnement de dveloppement : Etude IDE Eclipse
Chapitre 6 : Hritage-Polymorphisme -Classe abstraite
Chapitre 7 : Paquetage en java
SOMMAIRE
3
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Chapitre 7 : Paquetage en java
Chapitre 8 : Exception
Chapitre 9 : Classe String
Chapitre 10 : Programmation dynamique
Chapitre 11: Interface graphique AWT et SWING
Chapitre 12 : Les applets
Chapitre 13: La connexion une BD
P
O
O
1
Cours : 2H par semaine
TD/TP : 2H par semaine
Devoir : 1 devoir aprs chaque chapitre du cours (Domicile et corrig en cours
QUIZ : Intervient aprs trois sances et sont compts dans les valuations (10mn)
et 20 mn de correction
Droulement
------------------------ CC
Devoir = 20 %
Cours
Evaluation
4
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Moy CC = 0,2*Devoir + 0,3*QUIZ + 0,5*CC programm
Moy Projet = 0,65 *Projet de Groupe + 0,35*Certificat MOOC
56 Heures
Devoir = 20 %
QUIZ = 30%
CC programm = 50 %
------------------------- Projet
Certification MOOC = 35 % (40% Certificat reu + 60% En test)
Projet de groupe = 65 %
NB Heures
P
O
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
5
Cours 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/initprogjava
o5 Septembre -27 Octobre 2014
oEPFL
ohttps://www.coursera.org/course/java-fr
oFeb 17th 2014 (7 weeks long)
oEPFL
P
O
O
1
2
Mthodes et langages
Langages de programmation
1
CHAPITRE 1
Dveloppement Logiciel
3
6
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
3
Ecriture dun programme
P
O
O
1
Mthodes et Langages
Analyse
Conception
Implmentation
Tests
SADT, SA-RT, MERISE, OMT, UML,
Fortran, Cobol, C, SmallTalk, Ada, C++, Java,
1
7
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
7
Maintenance
Cycle de dveloppement ? Cycle de vie ?
P
O
O
1
Les langages de programmation
2
Paradigme de programmation
Un programme est une solution un problme. Cette solution est formule dans un
langage de programmation suivant un style de programmation informatique appel
paradigme. Ce dernier fournit la vue qu le developpeur de lexcution de son
programme.
Les paradigmes peuvent tre regroups en grandes familles dont les plus connues
sont:
La programmation imprative
8
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
8
La programmation imprative
La programmation Oriente objet
La programmation dclarative
La programmation vnementielle
La programmation oriente agent
La programmation oriente aspect
La programmation concurrente
La programmation squentielle
La programmation oriente contrat
Nous allons nous intresser dans les lignes qui suivent aux trois premiers types ou
paradigmes
P
O
O
1
Les langages de programmation
2
Programmation imprative
Cest un paradigme pour lequel la rsolution des problmes se fait de faon
squentielle. Le style propos consiste dcrire un ensemble doprations tre
excutes squentiellement afin de modifier ltat du programme en question. On a
pour ce paradigme, deux types de programmation : la programmation structure et la
programmation procdurale.
Programmation structure
Cest en 1970 quon parle de ce style de programmation. Ce style a tendance limiter
lutilisation de linstruction goto des cas inhabituels. Les langages comme PL/1 et
9
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
lutilisation de linstruction goto des cas inhabituels. Les langages comme PL/1 et
Pascal se trouvent dans la catgorie des langages qui adoptent ce style. Cependant
tous les langages de programmation modernes intgrent ce paradigme travers les
structures de contrle telles que while, for, if then else.
Programmation procdurale
Ce type de programmation malgr quil soit impratif se distingue assez bien de la
programmation structure. En plus dtre plus volu, il intgre le paradigme structur
et permet pour une application de dcouper le code, lorganiser de sorte que celui-ci
soit bien structur, comprhensible et plus facile dboguer. En effet, ce paradigme
comme son nom lindique, introduit la notion de procdure qui est en fait une srie
dinstructions excuter.
P
O
O
1
Les langages de programmation
2
Programmation Fonctionnelle
Ce paradigme tient son origine du langage mathmatique qui traite des fonctions. Une
bonne comprhension de ce paradigme passe par une comparaison avec la
programmation de type procdural. En effet, le paradigme fonctionnel se distingue fort
de ce dernier en ce qui concerne la mutation des donnes. Le paradigme fonctionnel
est conditionn produire un rsultat unique par transformations successives de
lensemble des donnes dentres et tout cela sans affectation de variables. La notion
de variable ny est mme pas applicable. Cela explique en quelques sortes le fait que
les programmeurs sous le paradigme impratif ont souvent plus de difficults
saccommoder ce paradigme que des nophytes.
10
Cours 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 fonction
mathmatique. Cependant il existe ce quon appelle les langages fonctionnels impurs
qui en plus du paradigme fonctionnel permettent le paradigme impratif.
Exemple de langage fonctionnel : Haskell, Lisp, Scheme
Programmation Oriente Objet
Les dveloppeurs peuvent considrer le programme comme une collection dobjets
en interaction. Elle consiste en la dfinition et lassemblage de briques logicielles
appeles objets (comme en Smalltalk)
P
O
O
1
Les langages de programmation
2
Programmation Oriente Objet
On peut distinguer dans ce paradigme :
Programmation oriente prototype, qui simplifie et rend plus flexible la
programmation oriente objet
Programmation 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++, J ava, C#, Python,
11
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Programmation dclarative
consistant 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 terme
Programmation logique, consistant exprimer les problmes et les algorithmes
sous forme de prdicats (comme en Prolog)
Programmation par contraintes, comparer la programmation logique
P
O
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
12
Cours 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
P
O
O
1
Traitement 1
Donnes
Rappels : EXEMPLE DE PROGRAMME STRUCTUREE EN C
2
Langages de programmation
13
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
13
Traitement 2
Traitement 3
P
O
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 attributs
et ses traitements sont ses mthodes (ou
D
D
D
T
T
T
2
Programmation oriente objet : illustration
14
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
et ses traitements sont ses mthodes (ou
oprations).
Exemples de langages orients-objet : SmallTalk,
C++, J ava,
D
D
T
T
T
P
O
O
1
Ecriture dun programme
3
15
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Extrait t MOOC EPFL
Programmation Java
P
O
O
1
Ecriture dun programme
3
Des lments de rappel : donnes et traitements
16
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Extrait t MOOC EPFL
Programmation Java
P
O
O
1
Ecriture dun programme
3
Variables 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
17
Cours 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 ;
P
O
O
1
Ecriture dun programme
3
Variables et types
Noms de variable
18
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Extrait t MOOC EPFL
Programmation Java
P
O
O
1
Ecriture dun programme
3
Nommage des variables
En J ava, 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
Affectation
Lexcution dune affectation se dcompose en deux temps :
19
Cours 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 nCarree
la valeur 25.
Syntaxe :
nom_de_variable = expression ;
// Une expression calcule une valeur qui doit tre de mme type que la variable.
P
O
O
1
Ecriture dun programme
3
Dclaration dune constante
Il 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 ;
20
Cours 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.
P
O
O
1
Ecriture dun programme
3
Ecriture lEcran
En 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;
21
Cours 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.
P
O
O
1
Ecriture dun programme
3
Lecture dune variable au clavier
La 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
22
Cours 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.
P
O
O
1
Ecriture dun programme
3
Lecture dune variable au claver
Saisie 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.
23
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Par exemple :
int n = keyb.nextInt();
keyb.nextLine();
String s = keyb.nextLine();
P
O
O
1
Ecriture dun programme
3
Lecture dune variable au clavier
Leur seule diffrence est donc au niveau de leur valeur :
i++Vaut la valeur de i avant incrmentation
alors que
++i
vaut la valeur de i aprs incrmentation.
Si lon prend lexemple suivant :
int i =3;
int j =i; // i et j ont la mme valeur
24
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
int j =i; // i et j ont la mme valeur
int k =0;
int l =0;
k =++i; // oprateur prfix
l =j++; // oprateur postfix
P
O
O
1
Chercher et commenter les mthodes de
la classe Scanner.
25
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
2
Prsentation
3
Caractristiques
1
Quelques ditions
CHAPITRE 2
Langage Java
26
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
3
4
Quelques ditions
Ressources
5
Installation de java
P
O
O
1
Une technologie dveloppe par SUN Microsystems l ance 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
Prsentation
1
27
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
(JME)
Quelques chiffres (J ava One 2005):
4,5 millions de dveloppeurs J ava
700 millions de PC quips d'une J VM
708 millions de tlphones J ava
600 millions de priphriques mobiles
1 milliard de J ava Cards
- Et aujourdhui (A chercher)
Tests
Maintenance
P
O
O
1
Le source est compil en pseudo code ou byte code puis excut par un interprteur J ava : la
J ava Virtual Machine (J VM). Ce concept est la base du slogan de Sun pour J ava : WORA
(Write Once, Run Anywhere : crire une fois, excuter partout). En effet, le byte code, s'il ne
contient pas de code spcifique une plate-forme particulire peut tre excut et obtenir
quasiment les mme rsultats sur toutes les machines disposant d'une JVM.
Java est interprt
Il est possible d'excuter des programmes J ava sur tous les environnements qui possdent une J ava
Virtual Machine. Cette indpendance est assure au niveau du code source grce Unicode et au
niveaudubyte code.
Java est portable : il est indpendant de toute plate-forme
Caractristiques
2
28
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
niveaudubyte code.
P
O
O
1
Java est fortement typ
toutes les variables sont types et il n'existe pas de conversion automatique qui risquerait
une perte de donnes. Si une telle conversion doit tre ralise, le dveloppeur doit
obligatoirement utiliser un cast ou une mthode statique fournie en standard pour la
raliser.
L'allocation de la mmoire pour un objet est automatique sa cration et J ava rcupre
automatiquement la mmoire inutilise grce au garbage collector qui restitue les zones
de mmoire laisses libres suite la destruction des objets.
Java assure la gestion de la mmoire
Caractristiques
2
29
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Il permet l'utilisation de threads qui sont des units d'excution isoles. La J VM, elle mme,
utilise plusieurs threads.
Java est multitche
Le choix de ses auteurs a t d'abandonner des lments mal compris ou mal exploits
des autres langages tels que la notion de pointeurs (pour viter les incidents en manipulant
directement la mmoire), l'hritage multiple et la surcharge des oprateurs, ...
Java est simple
P
O
O
1
Pour dvelopper avec J ava, SUN fournit un ensemble doutils et API, ceci travers un Kit
appel J DK (J ava Developement Kit).
J RE : J ava Runtime Environnement , cest uniquement lenvironnement dexcution de
J ava.
Pour quun programme sxcute sur une machine, J RE doit y tre install.
J DK contient J RE.
J ava a t nomm J ava 2 partir de la version 1.2 :
Les ditions de Java
3
30
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Trois ditions de J ava qui existent :
J 2ME : J ava Micro Edition : contient le ncessaire pour dvelopper des applications capables
de fonctionner dans des environnements limits tels que les assistants personnels (PDA), les
tlphones portables ou les systmes de navigation embarqus
J 2SE : J ava Standard Edition : contient le ncessaire pour dvelopper des applications et
des applets.
J 2EE : J ava Enterprise Edition : contient un ensemble de plusieurs API permettant le
dveloppement d'applications destines aux entreprises tel que J DBC pour l'accs aux bases de
donnes, EJ B pour dvelopper des composants orients mtiers, Servlet / J SP pour gnrer
des pages HTML dynamiques, ... Cette dition ncessite le J 2SE pour fonctionner.
P
O
O
1
http://java.sun.com : contient toute les informations concernant J AVA .
Pour tlcharger J DK et toute la documentation, allez dans ce site. Il
contient toute sorte de ressources pour les dveloppeurs.
http://www.java.com/ : Contient les informations sur J ava, vous pouvez
tlcharger les informations concernant certains aspects de J AVA.
Pour quun programme crit en J ava sur une plateforme X, sexcute sur
Ressources Java
4
31
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Pour quun programme crit en J ava sur une plateforme X, sexcute sur
une plate forme Y, nous devons installer sur Y la J RE qui correspond Y.
P
O
O
1
http://docs.oracle.com/javase/7/docs/index.html
Ressources Java: documentation
4
32
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
Les IDE pour Java
4
33
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
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 Java
5
34
Cours 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 le
bouton 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 les
lments installer. Cliquez simplement sur le bouton Next .
P
O
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 J 2SE SDK, il faut ajouter le chemin du rpertoire
bin contenant ces outils dans la variable Path du systme.
5
Installation Java
35
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Il est aussi utile de dfinir la variable d'environnement J AVA_HOME avec comme valeur le
chemin d'installation du SDK.
P
O
O
1
5
Installation Java
36
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
Vrifier que J ava est bel et bien install
5
Installation Java
37
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
2
Objet
3
Classe
1
Syntaxe et lments de base
CHAPITRE 3
Objet et classe : Application en Java
38
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
4
5
Mthode
6
Porte dune variable
Instanciation de la classe
P
O
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
39
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Le seigneur des anneaux
J .R.R.Tolkien
Germinal
E. Zola
Le Monde Alice Dupont
Directrice
Michel Martin
Bibliothcaire
Anne Durand
Lectrice
Arsne Deschamps
Lecteur
P
O
O
1
Classe : dfinition
Des 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
40
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Le seigneur des anneaux
J .R.R.Tolkien
Germinal
E. Zola
Le Monde
Alice Dupont
Directrice
Michel Martin
Bibliothcaire
Anne Durand
Lectrice
Arsne Deschamps
Lecteur
-titre
P
O
O
1
Classe : contenu
Une classe est compose de plusieurs membres dont chacun est soit :
un attribut : variable type
une mthode (ou opration) : ensemble d'instructions de traitement
cl ass Compt eBancai r e {
St r i ng pr opr i et ai r e;
doubl e sol de;
doubl e get Sol de( ) {
Attributs
2
41
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
doubl e get Sol de( ) {
r et ur n sol de;
}
voi d cr edi t e( doubl e val ) {
sol de = sol de + val ;
}
}
Mthodes
P
O
O
1
Classe: encapsulation
L'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
42
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Les donnes et mthodes accessibles sont dites publiques.
P
O
O
1
Syntaxe et lments de base
Le code source d'un programme J ava est contenu dans plusieurs
fichiers 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
43
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Le code source d'une classe commence par le mot-cl class suivi de son
contenu :
cl ass <nom de la classe> {
<contenu de la classe>
}
P
O
O
1
Syntaxe et lments de base
J ava est sensible la casse.
Chaque objet, classe, programme ou variable est associ un nom :
l'identificateur qui peut se composer de tous les caractres alphanumriques
et des caractres _ et $. Le premier caractre doit tre une lettre, le
caractre de soulignement ou le signe dollar.
Liste des mots cls
3
Un identificateur Java
44
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
abstract
const
Final
int
public
throw
assert (Java 1.4)
continue
finally
interface
return
throws
Boolean
default
float
long
short
transient
break do
for
native
Static
true
Byte
double
goto
new
strictfp
Else
if
null
super
void
catch
enum(Java 5)
implements
try
case
package
Switch
volatile
char
extends
import
private
synchronized
while
Class
false
instanceof
protected
this
P
O
O
1
3
Syntaxe et lments de base
Dclaration de variable
Type 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 ;
45
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Une classe dclare sous la forme:
MaClasseinstance; // dclaration de l'objet
instance =new MaClasse(); // cration de l'objet
OU MaClasseinstance =new MaClasse(); // dclaration et cration de l'objet
Exemple :
int[] nombre =new int[10]; // Un tableau est un objet
P
O
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
46
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
long
char
void
int monEntier;
Stringchaine;
booleantest;
Une chaine de caractre est un type dite compos car une chaine de caractre est un
ensemble de caractres.
P
O
O
1
Complments de syntaxe
Instruction conditionnelle
i f <condi t i on> {bl oc_si _vr ai }
el se {bl oc_si _f aux}
Exemple :
i f ( empr unt eur . get St at ut ( ) == " empl oye") {
3
47
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
i f ( empr unt eur . get St at ut ( ) == " empl oye") {
unLi vr e. set Dat eRet our ( 30) ;
} el se {
unLi vr e. set Dat eRet our ( 15) ;
}
P
O
O
1
Complments de syntaxe
Instruction itrative
whi l e <condi t i on> {bl oc}
Exemple :
whi l e ( i < bi bl i o. nbLi vr es( ) ) {
Li vr e l = bi bl i o. get Li vr e( i ) ;
l . set Di sponi bl e( t r ue) ;
i ++;
3
48
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
i ++;
}
P
O
O
1
Complments de syntaxe
Instruction itrative
f or ( <i ni t >; <condi t i on>; <i ncr ement >) {bl oc}
Exemple :
f or ( i nt i = 0; i < bi bl i o. nbLi vr es( ) ; i ++ ) {
3
49
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
f or ( i nt i = 0; i < bi bl i o. nbLi vr es( ) ; i ++ ) {
Li vr e l = bi bl i o. get Li vr e( i ) ;
l . set Di sponi bl e( t r ue) ;
}
P
O
O
1
Complments de syntaxe
Instruction de choix multiple
swi t ch ( <var i abl e>) {
case <val 1>: <bl oc1>
case <val 2>: <bl oc2>

def aul t : <bl oc>


}
3
50
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Exemple :
swi t ch ( l . get Cat egor i e( ) ) {
case 1: l . set Dur ee( 15) ;
br eak;
case 2: l . set Dur ee( 20) ;
br eak;
def aul t : l . set Dur ee( 30) ;
}
P
O
O
1
Autres particularits de syntaxe
On peut utiliser l'oprateur +sur les objets de classe String
St r i ng s1 = "hel l o " , s2 = " wor l d" ;
St r i ng s3 = s1 + s2;
s3 vaut "hello world"
La variable length donne la taille d'un tableau
char [ ] t ab = new char [ 25] ;
i nt a = t ab. l engt h;
a vaut 25
3
51
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
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
52
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
une minuscule.
<type de retour> <nom de mthode> ( <arguments> * ) {
<traitement associ>
}
P
O
O
1
Mthodes : Exemple classe Livre
cl ass Li vr e {
St r i ng t i t r e;
Lect eur empr unt eur ;
voi d set Ti t r e( St r i ng t ) {
t i t r e = t ;
}
St r i ng get Ti t r e( ) {
r et ur n t i t r e;
Mthodes
Attributs
4
53
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
r et ur n t i t r e;
}
Dat e empr unt e( Lect eur l ec) {
i f ( empr unt eur = = nul l ) {
empr unt eur = l ec;
r et ur n new Dat e( ) ;
} el se r et ur n nul l ;
}
}
Mthodes
P
O
O
1
Porte d'une variable
publ i c cl ass Por t ee {
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
54
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
}
afficher(b);
}
}
P
O
O
1
Porte d'une variable
publ i c cl ass Por t ee {
i nt a;
publ i c voi d t est ( i nt b) {
if (a > b) {
int c = b;
b = a;
a = b;
l'entier b est visible l'intrieur de la mthode test
5
55
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
a = b;
}
afficher(b);
}
}
P
O
O
1
Porte d'une variable
publ i c cl ass Por t ee {
i nt a;
publ i c voi d t est ( i nt b) {
i f ( a > b) {
int c = b;
b = a;
a = b;
}
l'entier c est visible dans le bloc du if
5
56
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
}
af f i cher ( b) ;
}
}
P
O
O
1
Instanciation
L'instanciation est l'opration qui consiste crer un objet partir d'une
classe.
En J ava, le mot-cl newprovoque 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
57
Cours 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
P
O
O
1
Constructeur de la classe Livre
cl ass Li vr e {
St r i ng t i t r e;
Lect eur empr unt eur ;
Li vr e( St r i ng t ) {
t i t r e = t ;
empr unt eur = nul l ;
}
voi d set Ti t r e( St r i ng t ) {
Constructeur
6
58
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
voi d set Ti t r e( St r i ng t ) {
t i t r e = t ; }
St r i ng get Ti t r e( ) {
r et ur n t i t r e; }
Dat e empr unt e( Lect eur l ec) {

}
}
P
O
O
1
Instanciation de la classe Livre
cl ass I nt er f aceBi bl i ot hecai r e {
voi d enr egi st r eLi vr e( St r i ng nom) {
Li vr e nouveauLi vr e;
nouveauLi vr e = new Li vr e( nom) ;
aj out eEnBi bl i ot heque( nouveauLi vr e) ;
}
voi d aj out eEnBi bl i ot heque( Li vr e l i ) {
6
59
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
voi d aj out eEnBi bl i ot heque( Li vr e l i ) {

}
}
P
O
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
60
Cours 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.
P
O
O
1
Exemple
cl ass Li vr e {
St r i ng t i t r e;
Lect eur empr unt eur ;

bool ean est Empr unt e( ) {


i f ( empr unt eur == nul l ) r et ur n f al se;
el se r et ur n t r ue;
}
Dat e empr unt e( Lect eur l ec) {
i f ( t hi s. est Empr unt e( ) == t r ue)
cl ass Lect eur {
Li vr e[ ] empr unt s;
i nt nbEmpr unt s;

bool ean empr unt ePossi bl e( ) {


i f ( nbEmpr unt s < 5) r et ur n t r ue;
el se r et ur n f al se;
}
voi d aj out eEmpr unt ( Li vr e l i v) {
6
61
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
i f ( t hi s. est Empr unt e( ) == t r ue)
r et ur n nul l ;
i f ( l ec. empr unt Possi bl e( ) ) {
empr unt eur = l ec;
l ec. aj out eEmpr unt ( t hi s) ;
r et ur n new Dat e( ) ;
} el se r et ur n nul l ;
}
}
voi d aj out eEmpr unt ( Li vr e l i v) {
empr unt snbEmpr unt s] = l i v;
nbEmpr unt s ++;
}
}
P
O
O
1
Passage dargument une mthode en java
6
62
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
Visibilit des membres
La 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 J ava :
public : visible tous les objets
6
63
Cours 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
P
O
O
1
Exemple de visibilit
publ i c cl ass Li vr e {
pr i vat e St r i ng t i t r e;
pr i vat e Lect eur empr unt eur ;

pr i vat e bool ean est Empr unt e( ) {


i f ( empr unt eur == nul l ) r et ur n f al se;
el se r et ur n t r ue;
}
publ i c Dat e empr unt e( Lect eur l ec) {
publ i c cl ass Lect eur {
pr i vat e Li vr e[ ] empr unt s;
pr i vat e i nt nbEmpr unt s;

publ i c bool ean empr unt ePossi bl e( ) {


i f ( nbEmpr unt s < 5) r et ur n t r ue;
el se r et ur n f al se;
}
6
64
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
i f ( t hi s. est Empr unt e( ) == t r ue)
r et ur n nul l ;
i f ( l ec. empr unt Possi bl e( ) ) {
empr unt eur = l ec;
l ec. aj out eEmpr unt ( t hi s ) ;
r et ur n new Dat e( ) ;
} el se r et ur n nul l ;
}
}
publ i c voi d aj out eEmpr unt ( Li vr e l i v) {
empr unt s[ nbEmpr unt s] = l i v;
nbEmpr unt s ++;
}
}
P
O
O
1
Modificateurs daccs
6
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'tre
visible par toutes les classes se trouvant dans le mme package.
65
Cours 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 classe
avec 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. Les
mthodes dclares privatene peuvent pas tre en mme temps dclares
abstract car elles nepeuvent pas tre redfinies dans les classes filles.
P
O
O
1
Modificateurs daccs : mot cl static
6
Le mot cl static s'applique aux variables et aux mthodes.
Les variables d'instance sont des variables propres un objet. Il est possible de
dfinir une variable de classe qui est partage entre toutes les instances d'une
mme classe : elle n'existe donc qu'une seule fois en mmoire. Une telle variable
permet de stocker une constante ou une valeur modifie tour tour par les instances
de 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.
66
Cours 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'instance
mais uniquement sur des variables de classe. Ces mthodes peuvent tre utilises
sans instancier un objet de la classe. Les mthodes ainsi dfinies peuvent tre
appeles avec la notation classe.methode() au lieu de objet.methode() : la
premire 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.
P
O
O
1
Modificateurs daccs : mot cl final
6
Le mot cl final s'applique aux variables de classe ou d'instance ou locales, aux
mthodes, aux paramtres d'une mthode
et aux classes. Il permet de rendre l'entit sur laquelle il s'applique non modifiable
une fois qu'elle est dclare pour une
mthode 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 est
initialise.
Une fois la variable dclare final initialise, il n'est plus possible de modifier sa
67
Cours 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 par
le compilateur..
P
O
O
1
2
Environnement typique
3
Byte code, JVM
1
Mon premier programme
CHAPITRE 4
Mes premires applications en ligne de commande
68
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
3
4
Mon premier programme
Notion de Package
P
O
O
1
Environnement typique
Phase 1
Editeur
Disque
Le programme est cre
partir dun diteur et stock
sur le disque avec lextension
.java
Phase 2
Compilateur
Disque
Le compilateur cre le
byteCode et le sauvegarde
sur le disque dans un fichier
avec pour extension.class
1
69
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
avec pour extension.class
Phase 3
Chargeur de
Classe
Disque
Le chargeur de classe lit les
fichier .class contenant les
bytecodes sur le disque et
charge ces byteCodes en
mmoire.
Mmoire Primaire
P
O
O
1
Phase 4
Vrificateur
Bytecode
Disque
Le vrificateur de byteCode
vrifie que tous les bytecodes
sont valides et ne violent pas
les restrictions de scurit
J ava.
Phase 5
Linterprteur lit les byteCodes
Mmoire Primaire
Mmoire Primaire
1
Environnement typique
70
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Phase 5
Interprteur
Disque
Linterprteur lit les byteCodes
et les traduit dans un langage
comprhensiblepar lordinateur.
P
O
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
71
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
Lancement de la machine virtuelle J ava (J VM, pour J ava
Virtual Machine). La J VM charge les fichiers ncessaires
lexcution du programme et interprte le code binaire des
instructions des mthodes en instructions du microprocesseur
de la machine sur laquelle tourne le programme.
Les trois principaux environnements dexcution J ava
Byte code, JVM
2
72
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
Les trois principaux environnements dexcution J ava
(frameworks en anglais) sont les applications, les applets et les
servlets . Chaque environnement utilise une catgorie de classe
et un point dentre diffrents ; le point dentre dun
programme est la mthode appele par la J VM pour excuter
un programme.
P
O
O
1
Application batch ou interface homme-machine lance avec la
commande java
Une application sexcute sur une machine isole ou raccorde un rseau.
La J VM 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
73
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
Applet dun fichier HTML lance par un navigateur
Une applet sexcute dans une page HTML sur une machine cliente
raccorde un serveur Web.
La J VM, installe sur la machine cliente, est lance par le navigateur.
Les fichiers dune applet sont installs sur le serveur Web et tlchargs par
le navigateur.
Le point dentre dune applet est la mthode dune classe respectant la
syntaxe dcrite ci-aprs.
Byte code, JVM 2
74
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
syntaxe dcrite ci-aprs.
P
O
O
1
Servlet lance par une requte sur un serveur Web
Une servlet sexcute sur un serveur Web pour gnrer dynamiquement des
pages HTML ou des images.
La J VM 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
75
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
O
1
Mon Premier Programme 3
76
Cours POO 1- JAVA
Dr. Ing/PhD Bernab BATCHAKUI
P
O
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
77
Cours 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 doit
tre entre guillemets.
P
O
O
1
Cas Pratique 1 : Mon Premier Programme -->suite
78
Cours 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 ?