Beruflich Dokumente
Kultur Dokumente
- JAVA 2e anne
Sabeur ELKOSANTINI
Oracle Certified Java Programmer
Sabeur.Elkosantini@isima.rnu.tn
S. Elkosantini
Objectifs du cours
Objectifs :
S. Elkosantini
Bibliographie
Livres
Bruce Eckel, Thinking in Java , 2nd revision, 2000 (Disponible sur internet).
http://www.jmdoudoux.fr/java/dej/
http://mbaron.ftp-developpez.com/javase/java.pdf
S. Elkosantini
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Polymorphisme
5 : Hritage
6 : Exception
S. Elkosantini
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Polymorphisme
5 : Hritage
6 : Exception
S. Elkosantini
Introduction
Historique de la POO
S. Elkosantini
Introduction
Historique de la POO
Standardisation de C++
S. Elkosantini
Introduction
S. Elkosantini
Introduction
Moto
Couleur : noir
Vitesse : 150 Km/h
Acclrer
Freiner
S. Elkosantini
Introduction
S. Elkosantini
10
Introduction
S. Elkosantini
11
Introduction
S. Elkosantini
12
Introduction
Compilation :
Excution :
gnration du fichier ..
S. Elkosantini
13
Introduction
Java Vs C++
En C++:
// Exemple de programme minimal : Salut.cpp
#include <stdio.h>
//
void main () {
printf("Salut tout le monde");
}
En Java:
// Exemple de programme minimal : Salut.java
import java.io.*;
//.
public class Salut {
public static void main (String args[]) {
System.out.println("Salut tout le monde");
}
}
S. Elkosantini
14
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Polymorphisme
5 : Hritage
6 : Exception
S. Elkosantini
15
Plan
Les tableaux
Les commentaires
S. Elkosantini
16
import java.io.*;
afficher (5);
}
public void afficher (int val ) {
17
Caractres : char
Quelle est la
diffrence ??
Dclaration en java :
Int a, b, c ;
float x;
char ch
Boolens u, b;
S. Elkosantini
18
Source : http://www.ntu.edu.sg/
S. Elkosantini
19
Les constantes
Le mot cl final permet de dclarer une constante: la valeur ne doit pas tre
modifie pendant lexcution du programme.
Dclaration en java :
final int PI=3.14, NB ;
PI=PI+1;
NB=10;
S. Elkosantini
20
Oprateur
Exemple
Equivalent
Note = 18
Note = 18
+=
Note+ = 2
Note = Note + 2
-=
Note- = 2
Note = Note - 2
Note = Note * 1.5
*=
Note* = 1.5
/=
Note/ = 2
Note = Note / 2
%=
Note% = 2
Note = Note % 2
^=
Note^ = 2
Note = Note ^ 2
float nb1;
int nb2;
nb1 + nb2 = .
S. Elkosantini
21
Priorit
()
++ , --
*,/,%
+,-
<,>
==,!=
&&, ||
=, += , -=
Plus faible
Plus fort
Les instructions
Quel est le rsultat de chaque
final int N=50;
instruction ??
short p=10;
char c=2*N+3; // la variable c contient .
byte b= 10*N; // le rsultat est .
S. Elkosantini
22
j=i++;
j=++i;
Lire et incrmenter i
Affecter la nouvelle valeur de i j
S. Elkosantini
23
24
int a,b;
a = 10;
b=++a;
System.out.println("a ="+a+" b ="+b);
S. Elkosantini
25
Autres oprateurs
Oprateur
&&
Loprateur ET logique
||
Loprateur OU logique
==
Oprateur dgalit
!=
Oprateur de diffrence
Loprateur ngation
double nb1;
double nb2;
boolean res1, res2;
res1 = ( nb1==nb2)
res2= ( nb1==nb2) && (nb1>10)
S. Elkosantini
26
int i = 200;
long l = (long)i;
long l2 = (long)200;
S. Elkosantini
27
Loprateur ET
Loprateur OU
Oprateur OU exclusif
Loprateur ngation
Nb1
Nb2
00000101
00000011
Nb1 | Nb2
Nb1 ^ Nb2
~Nb1
Exemple :
S. Elkosantini
28
Exemple :
N=10000101
N<< 2
donne ........
int N = 6;
N>>1
donne .......
S. Elkosantini
29
Syntaxe:
Le bloc else est optionnel
if (condition logique)
Instructions excutes si la condition logique est vraie
else
Instructions excutes si la condition logique est fausse
Exemple 1:
30
10
Exemple
int nombreAnimaux = 3;
String statut = (nombreAnimaux<4) ? "peu d'animaux": "trop d'animaux";
System.out.println("le statut du troupe est " + statut);
S. Elkosantini
31
Exercice 1:
S. Elkosantini
32
switch casedefault
Syntaxe:
switch(expression)
{case constante_1: suite dinstructions;
...
case constante_n: suite dinstructions;
default : suite dinstruction;}
S. Elkosantini
33
11
Exercice 2:
Ecrire la partie du programme Java qui affiche:
o
Trs bien si la note est A,
o
Bien si la note est B,
o
Insuffisant si la note est C,
o
un message derreur sinon
S. Elkosantini
34
while :
do while :
do {
Bloc dinstructions ;
}
while ( condition logique)
S. Elkosantini
35
for :
Exemple 2:
S. Elkosantini
36
12
Exemple 3:
int [] a = {1,2,3,4};
for(int n : a)
System.out.print(n);
S. Elkosantini
37
Exercice :
On dnomme nombre de Armstrong un entier naturel qui est gal la somme des
cubes des chiffres qui le composent. Ecrire un programme Java qui affiche de tels
nombres. Ex : 153 = 13 + 53 + 33
S. Elkosantini
38
break et continue
break : permet de sortir dune boucle sans excuter la suite des instructions
S. Elkosantini
39
13
break et continue
switch (variable) {
case valeur1 : Liste d'instructions; break;
case valeur2 : Liste d'instructions; break;
case valeurN... : Liste d'instructions; break;
default: Liste d'instructions }
40
break et continue
x=1;
for (int x=0; x<=10; x++) {
if (x == 7) {
System.out.println("Division par zro!");
continue;
}
double a = 1.0/(x-7);
System.out.println(a);
}
S. Elkosantini
41
etiquette : instruction
boucleFor :
for (int i=0;i<10;i++)
S. Elkosantini
42
14
S. Elkosantini
43
S. Elkosantini
44
Les tableaux
Tableau unidimensionnels
Dclaration :
ou
int [] tab;
int tab[];
NULL
tab
tab
tab
45
15
Les tableaux
Tableau multidimensionnels
Dclaration :
NULL
tab
ou aussi
tab = new type [2];
tab [0] = new type[2];
tab [1] = new type[3]
tab
S. Elkosantini
46
Les tableaux
Exercice 3:
Soit T une matrice carre de 3 lignes et 3 colonnes. Ecrire un algorithme qui affiche un
message informant si la matrice est symtrique ou pas.
S. Elkosantini
47
Les tableaux
Exercice 4:
Ecrire un algorithme qui tri un tableau en utilisant la mthode de tri par insertion.
S. Elkosantini
48
16
Les commentaires
Importance des commentaire
Clart du code
Commentaire classique /* */ ou //
* @author Sabeur
* @version 2.0
*/
S. Elkosantini
49
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Encapsulation et surcharge
5 : Hritage
6 : Exception
S. Elkosantini
50
Notion dobjet
Objet Moto
S. Elkosantini
51
17
Notion de classe
Lorsque des objets ont les mmes attributs et comportements : ils sont regroups
dans une famille appele : Classe
Moto
Couleur : noir
Vitesse_limite : 200
Couleur : rouge
Vitesse_limite : 250
Acclrer
Freiner
Acclrer
Freiner
S. Elkosantini
52
..
Couleur
Vitesse_limite
Acclrer
Freiner
.
Moto : Kawasaki
Moto : Yamaha
Couleur : noir
Vitesse_limite : 200
Couleur : rouge
Vitesse_limite : 250
Acclrer
Freiner
Acclrer
Freiner
S. Elkosantini
53
Moto
Couleur
Vitesse_limite
S. Elkosantini
Acclrer
Freiner
54
18
55
S. Elkosantini
56
Les mthodes
Le code de la mthode.
int valeur(){
int amortissement;
amortissement = 0.05;
return Prix Prix * amortissement * Age;
}
57
19
S. Elkosantini
58
Dclaration :
Moto (){
// constructeur cre par dfaut
}
S. Elkosantini
59
S. Elkosantini
60
20
et le constructeur en Java
La construction en JAVA :
new + nom de la classe (paramtres)
Cest le constructeur
Produit p1 = new Produit ( Portable , 1) ;
Produit p2 = new Produit () ;
Comment programmer
la classe Produit ??
S. Elkosantini
61
et le constructeur en Java
Moto
Couleur
Vitesse_limite
Moto
Acclrer
Freiner
S. Elkosantini
62
Linstanciation
Moto
Couleur
Vitesse_limite
Acclrer
Freiner
Moto : Kawasaki
Moto : Yamaha
Couleur : noir
Vitesse_limite : 200
Couleur : rouge
Vitesse_limite : 250
Acclrer
Freiner
Acclrer
Freiner
S. Elkosantini
63
21
S. Elkosantini
64
Les mthodes daccs qui permettent de renvoyer les informations relatives un objet
int getVitesse(){
return vitesse;
}
Dclaration :
Les mthodes daltration qui modifient ltat dun objet (les valeurs de certains
champs), donc elles comportent certains contrlent pour valider les nouvelles
valeurs.
Dclaration :
S. Elkosantini
65
obj
NULL
S. Elkosantini
66
22
obj
NULL
Attribut 1
Attribut 2
Mthode 1
S. Elkosantini
67
Accs aux attributs et mthodes dun objet partir dun autre objet .
Nomobjet.Nommethode() ;
Nomobjet.NomAttribut;
S. Elkosantini
68
signifie
S. Elkosantini
69
23
Exemple dutilisation
public class Moto {
int vitesse;
int prix;
Moto( int vitesse , int prix){
}
S. Elkosantini
70
freiner();
prix;
Exercice 5 :
Ecrire une classe Livre, caractrise par les attributs titre, auteur et anne et par les
mthodes suivantes :
- Une mthode affichant les caractristiques dun livre
- Une mthode qui prend en paramtre un livre et qui permet dafficher les deux
livres et de le comparer le nom du livre pass en paramtre.
S. Elkosantini
71
Exercice 6 :
Crer une classe Segment qui est dfinie par ses extrmits (des points) et par sa
couleur. Avec cette classe, on peut calculer la longueur dun segment, le dplacer
et changer sa couleur.
S. Elkosantini
72
24
S. Elkosantini
73
S. Elkosantini
74
Voiture : BMW
Voiture : Mercedes
Puissance : 9
Couleur: noir
Puissance: 9
Couleur : noir
Acclrer
Freiner
Acclrer
Freiner
Les deux objets ont les mmes valeurs dattributs mais la rfrence est diffrente.
Comment crer deux objets avec la
mme rfrence
S. Elkosantini
75
25
S. Elkosantini
76
Line 1
m1 Line 2
Obj
m1
m2
Obj
m2
Line 2
Stack
Heap
S. Elkosantini
77
method
Line 1
m1
m
m2
Stack
S. Elkosantini
Obj
m1
Heap
78
26
79
System.gc();
Il est dconseill de le faire.
JVM se chargera de la destruction
Mme avec cette instruction, la
destruction nest pas automatique;
S. Elkosantini
80
Les blocs sont appeles dans leur ordre dapparition dans le code source, i.e. de
gauche droite et de haut en bas).
class ... {
/* static variable with initial value */
int x = initial_value
/* ---- static initialization block
--- */
{ /* code executed once, when loaded */ }
}
81
27
}}
S. Elkosantini
82
83
S. Elkosantini
84
28
Le mot cl static
85
Le mot cl static
class StaticTest {
static int i = 47;
}
S. Elkosantini
86
instanceof
Loprateur instanceof permet de savoir quelle classe appartient une
instance
Pour tester si un objet o est de la mme classe que lobjet courant, il ne faut
donc pas utiliser instanceof mais le code suivant :
if (o != null && o.getClass() == this.getClass())
S. Elkosantini
87
29
instanceof
class B{ }
class D extends B{}
class C {}
B b = new B();
D d = new D();
C c = new C();
b instanceof B
b instanceof D
d instanceof B
d instanceof D
b = d;
b instanceof B
b instanceof D
c instanceof B
//
//
//
//
//
//
//
// :
S. Elkosantini
88
La classe String
Cest une classe considre comme type simple.
Ce nest pas un type primitif.
Longueur : txt.length();
89
La classe String
Exercice 8:
Ecrire un programme qui permet dafficher les mots dune phrase. Les mots de la
phrases sont spars par un espace puis ; .
S. Elkosantini
90
30
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Encapsulation et surcharge
5 : Hritage
6 : Exception
S. Elkosantini
91
Encapsulation et surcharge
Peu importe comment il est construit en interne, la seule chose ncessaire pour
pouvoir utiliser un objet est de savoir ce quil peut faire et surtout comment lui
demander :
Exemple :un poste de TV est une boite noire ayant pour interface : un cran, des
HP et une tlcommande. Pour changer de chaine, il suffit de
.Peu importe ce qui se passe rellement en interne.
S. Elkosantini
92
Encapsulation et surcharge
Lensemble des mthodes proposes par un objet est appel linterface de cet
objet.
On dit quun objet est encapsul par son interface : la seule manire dinteragir
avec cet objet est dinvoquer une mthodes de son interface. Peu importe de quoi
cet objet est rellement constitu, ce qui est important cest les services (les
mthodes) quil peut fournir.
Interface
Objet
S. Elkosantini
93
31
Encapsulation et surcharge
Empcher l'accs aux donnes par un autre moyen que les services proposs.
Compte_Bancaire
Attributs privs
Mthodes publiques
- Num_RIB
- Nom
- Montant
+ Crditer()
+ Dbiter()
S. Elkosantini
94
Encapsulation et surcharge
Publique : veut dire que les attributs ou les mthodes sont disponibles pour tout le
monde
Priv : veut dire quaucune autre classe ne peut accder au contenu de lattribut et
limplmentation de la mthode concern,
Protg : l'accs aux donnes est rserv aux fonctions des classes hritires, c'est-dire par les fonctions membres de la classe ainsi que des classes drives.
Par dfaut : de mme que le niveau protg sauf que laccs par une sous classe dun
package diffrent est restreint
S. Elkosantini
95
Encapsulation et surcharge
Encapsulation en Java
Il existe quatre niveaux de visibilit :
Compte_Bancaire
- Num_RIB
- Nom
- Montant
+ Crditer()
+ Dbiter()
96
32
Encapsulation et surcharge
Encapsulation en Java
Lide de restreindre la visibilit des mthodes et des attributs :
Rendre priv les attributs caractrisant ltat de lobjet et de fournir des mthodes
publiques permettant de modifier/accder lattributs.
getMontant () : le getter
setMontant () : le setter
S. Elkosantini
97
Encapsulation et surcharge
Encapsulation en Java
Exemple : Application pour la gestion des comptes en banques.
S. Elkosantini
98
Encapsulation et surcharge
S. Elkosantini
99
33
Encapsulation et surcharge
Encapsulation en Java
+ Compte_Bancaire
- Num_RIB
- Nom
- Montant
+ Crditer()
+ Dbiter()
Implmenter cette
classe en java
S. Elkosantini
100
Encapsulation et surcharge
PEUT dclarer une nouvelle (ou plus large) exception (checked exceptions).
101
Encapsulation et surcharge
La surcharge (overloading)
Exemple : la surcharge de
la mthode somme
102
34
Encapsulation et surcharge
La surcharge (overloading)
Exercice 7:
1. Crez une classe avec un constructeur par dfaut qui imprime un message.
2. Ajoutez cette classe un constructeur surcharg qui prend un String en argument et
qui l'imprime avec votre message.
3. Crez, dans le programme principale, deux instances de cette objet pour tester les
deux constructeurs.
S. Elkosantini
103
Le concept dobjets
S. Elkosantini
104
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Encapsulation et surcharge
5 : Hritage
6: Classes abstraites et interfaces
6 : Exception
S. Elkosantini
105
35
Le concept dobjets
Lhritage
les objets d'une classe fille ont accs aux donnes et aux mthodes de la classe parent et
peuvent les tendre.
Les sous classes peuvent redfinir les variables et les mthodes hrites.
Les mthodes des clases filles sont redfinies avec le mme nom, les mmes types et le
mme nombre d'arguments
S. Elkosantini
106
Le concept dobjets
Lhritage
la classe Etudiant :
no m
capital UV
d ipl m e
la classe Etudiant-Elu :
no m
capital UV
d ipl m e
Mandat
Syndicat
VrifierNo m
MajUV
ChangerDipl m e
VrifierNo m
MajUV
ChangerDipl m e
DmissionnerMandat
ChangerSyndicat
S. Elkosantini
107
Le concept dobjets
Lhritage
Lobjet Etudiant-Elu a les proprits (attributs et mthodes) de lobjet
Etudiant mais en plus possde dautres proprits.
108
36
Le concept dobjets
Lhritage
Chaque sous classe peut avoir une ou plusieurs sous classes formant ainsi
une hirarchie dobjet. On parle de classe anctre (ou mre) et de classes
descendant (ou fille).
Forme
Rectangle
Triangle
Cercle
109
Le concept dobjets
Lhritage
Autre exemple : les formes gomtrique (utiliser dans les systmes daide
la conception des jeux vido)
Forme
dessiner ()
effacer()
deplacer()
getcouleur()
setcouleur()
Carre
Triangle
Cercle
S. Elkosantini
110
Le concept dobjets
Lhritage
Pour diffrentier une classe drive dune classe parent :
ajouter dautres mthodes dans les classes drives: la classe de base n'tait pas
assez complte
Forme
dessiner ()
effacer()
deplacer()
getcouleur()
setcouleur()
S. Elkosantini
Triangle
RetournerHor()
RetournerVer()
Cercle
111
37
Le concept dobjets
Lhritage
Pour diffrentier une classe drive dune classe parent :
Forme
dessiner ()
effacer()
deplacer()
getcouleur()
setcouleur()
dessiner()
effacer()
Triangle
Cercle
dessiner()
effacer()
dessiner()
effacer()
S. Elkosantini
112
Forme
Lhritage
Rectangle
Triangle
Cercle
Et le mot cl protected ?
113
Forme
Lhritage
Carre
S. Elkosantini
dessiner ()
effacer()
deplacer()
getcouleur()
setcouleur()
Triangle
RetournerHor()
RetournerVer()
Cercle
114
38
Forme
dessiner ()
effacer()
Limplmentation en Java de la classe Triangle rectangle deplacer()
getcouleur()
setcouleur()
Carre
dessiner()
effacer()
Triangle
dessiner()
effacer()
Triangle
rectangle
Cercle
dessiner()
effacer()
Triangle
isocle
S. Elkosantini
115
Forme
Lhritage : le polymorphisme
Carre
dessiner()
effacer()
dessiner ()
effacer()
deplacer()
getcouleur()
setcouleur()
Triangle
dessiner()
effacer()
Cercle
dessiner()
effacer()
S. Elkosantini
116
S. Elkosantini
117
39
class Forme
{
void effacer (){
{
System.out.println(la forme est efface);}
}
class Rectangle extends Forme
{
void effacer (){
{
System.out.println(le rectangle est effac);
super.effacer();
}
}
S. Elkosantini
118
119
Lhritage : le transtypage
Le transtypage : Traiter un type driv comme s'il tait son type de base.
Crer trois objets de type cercle, carr et triangle. Ecrire dans la classe principale
les mthodes permettant dafficher la couleur de chaque instance.
S. Elkosantini
120
40
Lhritage : le transtypage
Le transtypage en java :
dessiner ()
effacer()
Triangle
Carre
Cercle
dessiner()
effacer()
dessiner()
effacer()
dessiner()
effacer()
S. Elkosantini
121
Lhritage : le transtypage
La classe mre Forme tablit l'interface commune pour toutes les classes
filles .
Classe Forme
Linstance f
Classe Triangle
Interface
Interface
Interface
Implmentation
Implmentation
Implmentation
S. Elkosantini
122
Forme
Lhritage : le transtypage
dessiner ()
effacer()
getcouleur()
Implmentation
Interface
Classe Forme
Carre
dessiner()
effacer()
dessiner()
effacer()
Cercle
dessiner()
effacer()
Classe Trianglerectangle
Implmentation
Triangle
rectangle
Interface
Implmentation
Triangle
Linstance f
Triangle
isocle
S. Elkosantini
123
41
Lhritage : le transtypage
Rcapitulation : Dans quel cas le transtypage et le polymorphisme sont
utiliss ?
class Emloye {
String nom;
int id, salaire;
public Emloye(String n) {
nom=n;
}
S. Elkosantini
124
Lhritage
Exercice 8: Crer une hirarchie d'hritage de Rongeur: Souris, Gerbille, et
Hamster. Dans la classe de base, fournir des mthodes qui sont communes tous
les Rongeurs, et les redfinir dans les classes drives pour excuter des
comportements diffrents dpendant du type spcifique du Rongeur. Crer un
tableau de Rongeur, le remplir avec diffrent types spcifiques de Rongeurs, et
appeler vos mthodes de la classe de base pour voir ce qui arrive.
S. Elkosantini
125
Lhritage
Exercice 9:
Ecrivez les classes ncessaires au fonctionnement du programme suivant. Donnez
uniquement le nom des classes et les mthodes (sans dtailler le contenu).
public class TestBatiments {
public static void main(String args[]){
Batiments[] B=new Batiments[3] ;
B [0] = new Appartement(Atef) ;
B [1] = new Villa(Walid) ;
B [2] = new Studio(Anis) ;
For (int i = 0; i<3 ; i++)
B [i].affiche() ;
}
}
Le rsultat de ce programme est :
Lappartement appartient Atef
La villa appartient Walid
Le studio appartient Anis
S. Elkosantini
126
42
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Encapsulation et surcharge
5 : Hritage
6: Classes abstraites et interfaces
6 : Exception
S. Elkosantini
127
Classes abstraites
Forme
primtre ()
Triangle
Carre
primtre ()
primtre ()
Cercle
primtre ()
128
Classes abstraites
Il faut donner la signature de la mthode primtre () mais pas son
implmentation dans la classe Forme
Syntaxe :
129
43
Classes abstraites
Une classe fille hritant d'une classe mre abstraite doit implmenter toutes
ses mthodes abstraites, sinon elle est aussi une classe abstraite.
Une mthode static ne peut tre abstraite car on ne peut pas redfinir
une mthode static?
S. Elkosantini
130
Classes abstraites
S. Elkosantini
131
Classes abstraites
132
44
Classes abstraites
Exemple 2 :
Mthode abstraite
public abstract class CentreInfoBourse {
private URL[] urlsCentre;
...
abstract protected String lireDonnees(String[] titres);
S. Elkosantini
133
Classes abstraites
Exemple 2 :
S. Elkosantini
134
Classes interfaces
Une interface est une classe purement abstraite dont toutes les mthodes
sont abstraites et publiques.
Une interface est un prototype de classe. Elle dfinit la signature des
mthodes qui doivent tre implmentes dans les classes construites partir
de ce prototype
Une interface est une classe purement abstraite dont toutes les mthodes
sont abstraites et publiques et sans attributs (les mots-cls abstract et public
sont optionnels).
Syntaxe : inter face NomInterface { . . . }
S. Elkosantini
135
45
Classes interfaces
A quoi sert les interfaces en Java ?
S. Elkosantini
136
Classes interfaces
S. Elkosantini
137
Classes interfaces
Comment implmenter les mthodes dune
interface?
S. Elkosantini
138
46
Classes interfaces
Une classe peut implmenter plusieurs interfaces .
Une classe peut hriter d'une autre classe et implmenter une ou plusieurs
interfaces.
S. Elkosantini
139
Classes interfaces
Une interface peut remplacer une classe pour dclarer une variable, un
paramtre, une valeur de retour, etc.
Exemple Figure f;
S. Elkosantini
140
Classes interfaces
Une interface ne possde pas de d'attribut. Les interfaces ne sont pas instanciables
(comme les classes abstraites).
Une interface peut dfinir des constantes, c'est--dire dfinir des variables
dclares publiques, statiques et finale et ayant une valeur constante d'affectation.
Exemple : public static final float PI = 3.14f;
Une interface peut hriter d'une autre interface : inter face interface1 extends
interface2 { . . .}.
S. Elkosantini
141
47
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Objet, classe et instanciation
4 : Encapsulation et surcharge
5 : Hritage
6: Classes abstraites et interfaces
6 : Exception
S. Elkosantini
142
Exceptions et flux
Les exceptions
Une exception est un signal qui indique que quelque chose dexceptionnel
(comme une erreur) sest produit. Elle interrompt le flot dexcution normal du
programme.
class Forme
{
Quel est le rsultat ?
Public static void main (String arg[])
{ int a=3,b=0;
System.out.println( a/b);
}
}
Exception in thread "main" java.lang.ArithmeticException: /
by zero
at Forme.main(Forme.java:4)
S. Elkosantini
143
Exceptions et flux
try {
// bloc dinstruction
Mais, quoi faire avec cette
exception dtecte ?
144
48
Exceptions et flux
try {
// bloc dinstruction
}
catch (Type1 id1)
{ //instruction faire en cas derreur de type 1 }
S. Elkosantini
145
Exceptions et flux
S. Elkosantini
146
Exceptions et flux
147
49
Exceptions et flux
148
Exceptions et flux
149
Exceptions et flux
Dclaration :
Moto (String couleur, int vitesse) throws MotoErr{
If (vitesse <0) throw new MotoErr();
}
S. Elkosantini
150
50
Exceptions et flux
S. Elkosantini
151
Exceptions et flux
try{
}
finally{
}
S. Elkosantini
152
Exceptions et flux
Exemple :
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
doSomething();
} finally {
lock.unlock()
}
S. Elkosantini
153
51
Exceptions et flux
Les flux
Pour obtenir des donnes, un programme ouvre un flux de donnes sur une
source de donnes (fichier, clavier, mmoire, etc).
Java fournit un paquetage java.io qui permet de grer les flux de donnes en
entre et en sortie, sous forme de caractres (exemple fichiers textes) ou sous
forme binaire (octets, byte).
S. Elkosantini
154
Exceptions et flux
Les flux
Toute opration d'entre/sortie en Java suit le schma suivant :
Fermeture du flux.
S. Elkosantini
155
Exceptions et flux
Les flux
Java fournit quatre hirarchies de classes pour grer les flux de donnes:
156
52
Exceptions et flux
inputLine = is.readLine();
is.close();
Lire la ligne jusquau caractre retour chariot
} catch (Exception e) {
System.out.println("Intercept : " + e);
}
if (inputLine != null)
System.out.println("Votre nom est :" + inputLine);
}
}
S. Elkosantini
157
Exceptions et flux
S. Elkosantini
158
Exceptions et flux
char c = (char)System.in.read();
S. Elkosantini
159
53
Exceptions et flux
S. Elkosantini
160
Exceptions et flux
161
Exceptions et flux
162
54
Plan
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
1 : Introduction
2 : Les premiers pas en Java
3 : Le concept dobjets
4 : POO avec Java
5 : Exceptions et flux
6 : Base de donnes (JDBC)
S. Elkosantini
163
Introduction
Utilisation de l API JDBC pour les bases de donnes :
S. Elkosantini
164
Le pilote
JDBC
BD
Driver spcifique
pour chaque SGBD
Oracle
Mysql
SQLServer
Sybase
Informix
DB2
165
55
Architecture JDBC
S. Elkosantini
166
S. Elkosantini
167
JDBC
S. Elkosantini
168
56
JDBC
Quand une classe Driver est charge, elle doit crer une instance
d elle mme et s enregistrer auprs du DriverManager
try
{
Class.forName (" driver_name ").newInstance();
}
catch (ClassNotFoundException a) {System.out.println ("Driver non
trouve");}
S. Elkosantini
169
JDBC
170
JDBC
try {
S. Elkosantini
171
57
JDBC
S. Elkosantini
172
JDBC
Excuter la requte :
3 types d excution :
173
JDBC
Excuter la requte :
S. Elkosantini
174
58
JDBC
S. Elkosantini
175
JDBC
L accs aux valeurs des colonnes se fait par les mthodes de la forme
getXXX()
176
JDBC
S. Elkosantini
177
59
JDBC
S. Elkosantini
178
JDBC
Fermer les diffrents connexions :
179
Exemple complet
try {
Class.forName ("org.gjt.mm.mysql.Driver").newInstance();}
catch (ClassNotFoundException a) { System.out.println ("Driver non trouve"); }
catch (Exception b) { System.out.println ("Probleme sur chargement de driver JDBC"); }
Charger
le pilote
try{
conn = DriverManager.getConnection ("jdbc:mysql://127.0.0.1/cbr", "root", "mysql");
Connexion
stmt = conn.createStatement(); }
catch (SQLException c) { System.out.println ("Connexion refuse ou base inconnu "+c); }
catch (Exception d) { System.out.println ("Probleme sur connexion");}
try{String req= "SELECT nom FROM Etudiant ";
ResultSet rs = stmt .executeQuery(req);
while(rs.next()) {
System .out.println(rs.getString(" nom"));}
catch (SQLException c) { System.out.println ( problme SQL"+c); }
rs.close(); stmt .close(); conn.close();
Prparer, excuter et
traiter la requte
Fermer la connexion
S. Elkosantini
180
60
Fin du cours
S. Elkosantini
181
61