Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
POO : Java
Java
Responsable
Tarak CHAARI
tarak.chaari@isecs.rnu.tn
tarak.chaari@gmail.com
Tarak CHAARI
‹N
‹N°
°›
Contenu
Exercices et corrigés
Tarak CHAARI
‹N
‹N°
°›
Chapitre
POO : Java
1
C'est quoi Java ?
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-1 Historique du langage Java
En 1993,,
1993 avec l'intérêt grandissant d'Internet, ce
langage, se métamorphose en langage dédié à Internet :
SUN diffuse le premier browser HotJava qui permet
d'exécuter des programmes Java encapsulés dans des
pages WEB (i.e. des applets Java) de plus en plus «
vivantes ».
java.io : entrée/sortie
java.awt : interfaces graphiques
java.net : communication réseaux (socket et URL)
java.applet : API Applet
java.util : classes outils
Bytecode
POO : Java
COMPILATEUR
Prog.java JAVA Class1.class
Code source
Class2.class
Bytecode
JVM
Prog.class INTERPRETEUR Résultats
DE BYTECODE
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-2 Caractérisation du langage Java (6/8)
POO : Java
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-2 Caractérisation du langage Java (7/8)
Système d’exploitation
POO : Java
MVJ
Code Java
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-2 Caractérisation du langage Java (8/8)
Fichier «XXX.java »
// Commentaire
POO : Java
Fichier «PremierProgramme.java »
POO : Java
class PremierProgramme
{
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-4 Java par l’exemple
Fichier «PremierProgramme.java »
POO : Java
class PremierProgramme
{
}
POO : Java
Le mot class veut dire que nous allons définir une nouvelle
classe Java, suivi du nom de cette classe
classe..
}
Une méthode peut prendre des paramètres de types précis
et renvoie éventuellement une valeur de type tout aussi
précis..
précis
{
System.out.println("Ca Marche");
}
System.out.
System. out.println est une commande permettant
d’afficher la chaîne de caractère « Ca MARCHE » sur la
sortie par défaut de votre machine qui est l’écran.
l’écran.
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-5 Structure d’une application Java standard
Fichier «XXX.java »
// Commentaire
POO : Java
Fichier «PremierProgramme.java »
// Ce programme se contente d’afficher le message « Ca Marche »
POO : Java
class PremierProgramme
{
static void Affiche( )
{
System.out.println("Ca Marche");
}
public static void main(String args[] )
{
Affiche( );
}
}
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-7 Le Java developper Kit : JDK
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-8 Outils fournis par le JDK (1/4
1/4))
Le compilateur javac
javac::
Compile les fichiers sources java de nom XXX.java.
Traduit les fichiers sources en ByteCode :
POO : Java
L’interpréteur java
java::
Prend en paramètre le nom de la classe.
Cherche le ou les fichiers .class qui lui correspondent.
Appelle la méthode main de la classe.
Le documenteur javadoc
javadoc::
Génère automatiquement une documentation sous la
forme de fichiers html à partir des fichiers sources
Tarak CHAARI commentés.
‹N
‹N°
°›
1- C’est quoi Java
1-8 Outils fournis par le JDK (2/4
2/4))
Le jfc :
Exemples des nouveaux composants swing de l’interface
utilisateur.
Si vous voulez en avoir un catalogue complet, exécuter le programme
SwingSet2.
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-8 J2RE (Java 2 Runtime Environment)
Etapes :
Ecrire le code source du programme
PremierProgramme.java dans un fichier portant le
nom de la classe.
Pré requis
ECLIPSE : www.eclipse.org
POO : Java
Etapes :
Créer un projet.
File new Project
Java Java Project
Next ‘’Test ‘’
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-10 Ecrire une application Java avec un IDE (2/4
2/4))
Etapes (suite
suite)) :
Créer une classe.
File new Class
POO : Java
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-10 Ecrire une application Java avec un IDE (3/4
3/4))
Etapes (suite
suite)) :
Insérer l’instruction « System.out.println("Ca Marche"); »
dans le corps de la méthode main.
POO : Java
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-10 Ecrire une application Java avec un IDE (4/4
4/4))
Etapes (suite
suite)) :
Compiler le code source.
POO : Java
Exécuter le ByteCode
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-11 Point faible de Java
Gourmand en mémoire.
mémoire.
Tarak CHAARI
‹N
‹N°
°›
1- C’est quoi Java
1-12 Références
Sites Web :
http://www.javasun.com.
Info sur Java :
http://www.javaworld.com.
Applications, applets, packages, ...
http//www.gamelan.com.
Java pour linux :
http://www.blackdown.com.
Tarak CHAARI
‹N
‹N°
°›
Chapitre
POO : Java
2
Les bases du langage
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.1 Les commentaires (1/4
(1/4))
Commentaires en lignes
POO : Java
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.1 Les commentaires (3/4
(3/4))
Commentaires multilingues :
POO : Java
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.1 Les commentaires (4/4
(4/4))
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.3 Les types de données élémentaires
Taille en bits 8 16 32 64
Etendue -128 -32768
.. .. -231 .. 231-1 -263 .. 263-1
127 32767
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.4 Les types primitifs numériques ((2/2
2/2))
float double
Taille en bits 32 64
Exemple de 3.25f 3.25
valeur
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.5 Le type primitif booléen
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.8 Déclaration et initialisation des variables
Syntaxe :
Type identificateur [= constante ou expression];
int NbredeMois = 12 ; int NbredeMois = 4*3 ;
POO : Java
Tarak CHAARI String n'est pas un type primitif, mais une classe
‹N
‹N°
°›
2- Les bases du langage
2.9-- Les opérateurs
2.9
numérique,
de comparaison,
logique,
sur les chaînes de caractères,
de manipulations binaires.
le nombre d’opérandes :
unaire,
binaire,
ternaire.
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.10-- Opérateurs unaires
2.10
+= i += 2; i= i + 2
- soustraction i = j - k;
-= i -= j; i= i - j
* multiplication x=2*y;
*= x *=x; x= x * x
/ division i =j/k;
/= (tronque si les x /= 10; x= x /10
arguments sont entiers)
% modulo i = j %k;
%= i %=2 i= i %2
>> décalage vers la droite i>>k; i*2k
<< décalage vers la gauche i<<k; i/2k (si i>0)
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.12-- Opérateurs relationnels
2.12
forme d'expression :
a = (condition e) ? x : y
si la condition e est vraie alors a vaut x sinon elle vaut y.
Exemple : a = (v==2) ? 1 : 0;
Cette expression affecte à la variable a la valeur 1 si v vaut 2,
sinon affecte à la variable a la valeur 0.
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.15 structures de contrôle : if
Syntaxe :
if (expression booléene ) instruction ;
POO : Java
Syntaxe Exemple
if (expression booléenne ) public class if_elseApplication {
{
instruction 1 ;
POO : Java
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.15 structures de contrôle : if – else - if
Syntaxe Exemple
if (expression booléene 1) public class if_else_ifApplication {
{
instruction 1 ; public static void main(String[ ] args)
POO : Java
…… {
instruction i ; int i = 1, j =2 ;
} if (i == j )
else if (expression booléene 2 ) {
{ System.out.println (" i est égal à j " );
instruction j; }
…… else if ( i>j)
instruction m ; {
} System.out.println (" i est supérieur à j" );
else }
{ else
instruction m+1 ; {
…… System.out.println (" i est inférieur à j " );
}
} Résultat d’affichage
}
i est positive }
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.15 structures de contrôle : switch
Syntaxe Exemple
switch (variable) public class switchApplication {
{
POO : Java
Exemple :
public class forApplication {
POO : Java
Exemple :
System.out.println (somme );
}
Résultat d’affichage
}
6
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.15 structures de contrôle : do - while
Exemple :
public class do_WhileApplication {
POO : Java
do
{
somme = somme + compteur ;
compteur++;
}
while (compteur < max ) ;
System.out.println (somme );
}
Résultat d’affichage
}
6
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.15 structures de contrôle : break
Utilisation :
Pour sortir d’une structure de boucle avant que la
condition du test soit remplie.
POO : Java
Utilisation :
Pour ignorer le reste de la boucle et reprendre
l’exécution à l’itération suivante de la boucle.
POO : Java
Conversions explicites :
POO : Java
Conversions implicites :
celles faites automatiquement par un compilateur :
lors d'une affectation,
lors d'une promotion arithmétique,
lors d'un passage de paramètres (lors de l'invocation d'une
méthode),
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.16 Les conversions des types (2/8
(2/8))
Conversion explicite :
Objectif :
POO : Java
Comment ? :
Préfixer l’opérande par le type choisi.
Encadrer le type choisi par des parenthèses.
Exemple :
double d = 2.5 ;
long l = (long) d ;
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.16 Les conversions des types (3/8
(3/8))
Comment ? :
Exemple 1 :
Contrairement à ce qui se passe dans C, les conversions
pouvant provoquer une perte de valeur ne sont pas
autorisées de manière implicite dans C : cela doit être
explicitement demandé.
Exemple 2 :
Un type char peut être utilisé partout où une valeur de
type int est permise.
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.16 Les conversions des types (4/8
(4/8))
float k= 1.2 f ;
i = k; Erreur de compilation
}
}
Solution :
i = (int) k;
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.16 Les conversions des types (5/8
(5/8))
System.out.print( i ) ;
}
}
Résultat d’affichage : 65
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.16 Les conversions des types (6/8
(6/8))
System.out.print( i ) ;
}
}
Tarak CHAARI
Résultat d’affichage : 64
‹N
‹N°
°›
2- Les bases du langage
2.16 Les conversions des types (7/8
(7/8))
Attention :
Il n'y a pas de conversion possible (implicite ou
explicite) entre un type entier et le type boolean :
POO : Java
int i = 0;
If ( i ) // Erreur à la compilation
{
………..
}
If ( i != 0 ) // Ok
{
………..
}
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.17 Les tableaux (1/2
(1/2))
Déclaration
monodimensionnel
int[ ] tableau_Entier;
POO : Java
Création et initialisation
int[] primes = {1, 2, 3, 5, 7};
int[] tableau_Entier = new int[50];
rgb_cube = new int[256][256][256];
tableau_Entier[0]= 3;
Tarak CHAARI
‹N
‹N°
°›
2- Les bases du langage
2.17 Les tableaux (1/2
(1/2))
3
Le Concept Objet de Java
Tarak CHAARI
‹N
‹N°
°›
3- Le Concept Objet de Java
3.1 Les bienfaits de l'abstraction
Tarak CHAARI
‹N
‹N°
°›
3- Le Concept Objet de Java
3.1 Les bienfaits de l'abstraction (1/2
(1/2))
Un Objet :
plusieurs niveaux d ’abstraction :
de point de vue concepteur un micro-ordinateur est un
objet formé d’un ensemble d’éléments physiques appelés
matériels (hardware).
Exemple 1 :
Un poste de Télévision
moderne est une boite
POO : Java
R1 est un objet
Rectangle de hauteur
POO : Java
Un objet :
est un élément d’une classe;
a une durée de vie et une identité.
POO : Java
classe : cercle
rayon : donnée d’instance
pi : donnée de classe
Tarak CHAARI
‹N
‹N°
°›
3- Le Concept Objet de Java
3.6 Polymorphisme
Tarak CHAARI
‹N
‹N°
°›
3- Le Concept Objet de Java
3.7 Pourquoi utiliser l’approche Objet ? (1/2
(1/2))
Tarak CHAARI
‹N
‹N°
°›
3- Le Concept Objet de Java
3.7 Pourquoi utiliser l’approche Objet ? (2/2
(2/2))
Tarak CHAARI
‹N
‹N°
°›
3- Le Concept Objet de Java
3.8 Apports de l’approche Objet
Approche procédurale :
Opérations et données
sont séparées.
POO : Java
obj2
Approche Objet :
obj1 Pas de séparation des
données et des actions.
chaque objet peut
invoquer une méthode
d’un autre objet qui
coopère en répondant à
Tarak CHAARI cette demande.
obj3 ‹N
‹N°
°›
Chapitre
POO : Java
4
Classes et Objets en Java
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.1 Classe en Java (1/3
1/3))
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.1 Classe en Java (3/3
3/3))
Exemple de classe :
class Date {
private int j; // jour
private int m; // mois
private int a; // an
void affiche( )
{ System.out.println(j + "/" + m + "/" + a) ; }
}
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.2 Modificateurs de visibilité (1/3
(1/3))
« public » :
POO : Java
« private »:
accessible uniquement par les méthodes de la classe.
« protected »:
accessible par la classe et ses classes dérivées.
« static »:
donnée ou méthode de classe et non pas d’instance.
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.2 Modificateurs de visibilité (1/3
(1/3))
« final » :
Une classe définie comme final ne peut pas être dérivée (on ne
peut pas créer une nouvelle classe héritant de cette classe).
POO : Java
rien :
Par défaut public.
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.2 Modificateurs de visibilité (2/3
(2/3))
NB1 :
static cumulable avec d’autres modificateurs.
POO : Java
NB2 :
Un attribut ou une méthode de classe est appelée à
travers la classe et non pas par l’instance.
NB3 :
Un paquetage (package) est un regroupement
thématique de classes.
NB4 :
sans modificateur de visibilité, un attribut ou une
méthode est appelée amie.
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.2 Modificateurs de visibilité (3/3
(3/3))
public int y;
final int entier =2;
Machin ( ) { …. }; // constructeur
void modifx(int value) { x=value;}
static void truc( ) { … }; // méthode de classe
……..
Machin m= new Machin( ); // création d’une instance de Machin.
m.y = 5; // OK y est publique
m.x = 6; // ERREURE x est privée
m.entier =4; // ERREURE entier est une constante.
m.modifx(6); // OK x est modifiée par la méthode modifx.
m.truc(); // Warning truc est une méthode static.
Machin.truc( ); // OK appel d’une méthode de classe.
}
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.3 Constructeur d’une classe (1/2
(1/2))
Exemple de classe :
class Date {
private int j; // jour
private int m; // mois
private int a; // an
void initialise(int jour, int mois, int an)
{ j=jour; m=mois; a=an; }
Date( ) // constructeur sans paramètres
{ j=1 ; m=1 ; a=1900 ; }
Date(int jour, int mois, int an) // constructeur avec paramètres
{ j=jour ; m=mois ; a=an ; }
void affiche( )
{ System.out.println(j + "/" + m + "/" + a) ; }
}
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.4 Appels de constructeur
Exemples 1:
Le constructeur sans arguments initialise la date d à
1/9/1900.
POO : Java
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.5 L’attribut caché : this (2/3
2/3))
class Date {
private int j; // jour
private int m; // mois
private int a; // an
void initialise(int jour, int mois, int an)
{ j=jour; m=mois; a=an; }
Date( ) Date( )
{ j=1 ; m=1 ; a=1900 ; } { this(1 ,1 ,1900); }
private int a; // an
// les constructeurs de la classe
Date( ) { j=1 ; m=1 ; a=1900 ; }
Date(int j, int m, int a) { this.j = j ; this.m = m ; this.a = a ; }
// les méthodes de la classe
void affiche( ) { System.out.println(j + "/" + m + "/" + a) ; }
void initialise(int jour, int mois, int an) { j=jour; m=mois; a=an; }
Date d1;
Date d2;
Date d1;
d1 1 2 1998 d1 = new Date(1,2,1998);
Date d2;
d2 d2 = d1;
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.7 Création d’instances de classes (3/3
(3/3))
Date d1;
POO : Java
Date d2;
11 9 2001
d2 d2 = d1;
d1 = null ;
d2=new Date(11,9,2001);
Tarak CHAARI
‹N
‹N°
°›
4- Classes et Objet en Java
4.8 Destruction d'un objet (1/5
(1/5))
1/6/1997
private int m; // mois
private int a; Nettoyage
// an spécial
void initialise(int jour, int mois, int an) { j=jour; m=mois; a=an; }
Date( ) { j=1 ; m=1 ; a=1900 ; }
Date(int j, int m, int a) { this.j = j ; this.m = m ; this.a = a ; }
Utilisation de ‘==‘ :
Il n’y a égalité que si d1 et d2 désignent la même
zone mémoire représentant une date.
POO : Java
classe :
Exemple :
class Circle( )
{
public double x, y; // Coordonnée du centre
POO : Java
5
Programmation Orientée
Objet Avancée Java
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.1 Composition de classes (1/4
(1/4))
Principe :
La réutilisation par composition :
Quand une classe est testée et elle est opérationnelle on peut
POO : Java
l’utiliser aussi en tant que nouveau type dans une autre classe.
Les données d’une classe peuvent être des instances
d’autres classes.
class Personne
{ Classe Personne
private String nom;
private String prénom;
private Date naissance;
Tarak CHAARI
…..
}
‹N
‹N°
°›
5- POO Avancée Java
5.1 Composition de classes (2/4
(2/4))
Classe Date :
class Date {
POO : Java
Date( )
{ j=1 ; m=1 ; a=1900 ; }
Classe Personne :
class Personne {
POO : Java
Classe ApplicationPersonne :
ApplicationPersonne est une classe de lancement.
Elle sert d’enveloppe à la méthode main qui sert de «
POO : Java
programme principal ».
Résultat d’affichage
Identité Personne :
Jacques DUPONT
1/2/1947
class ApplicationPersonne {
public static void main(String args[ ])
{
Personne p = new Personne("Jacques", "DUPONT", 1,2,1947);
p.affiche();
}
}
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (1/14
(1/14))
Intérêt :
L'héritage supprime, en grande partie, les
redondances dans le code.
POO : Java
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (4/14
(4/14))
d'une instance.
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage ((5/14
5/14))
Exemple :
Une classe mère « Compteur », qui permet de créer
POO : Java
class Compteur {
private int valeur ;
Compteur() { valeur = 0 ; }
void inc( ) {valeur ++ ; }
void dec( ) {valeur --; }
int vaut() { return valeur ; }
}
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (6/14
(6/14))
Exemple :
Une classe dérivée « Contrôle_Compteur » de la
classe mère « compteur » qui permet de créer des
POO : Java
Exemple :
TestControle_Compteur, une classe de lancement.
POO : Java
class TestControle_Compteur {
{
public static void main(String args[])
{ Compteur_Controle c = new Compteur_Controle(6);
c.inc( ); // Première incrémentation
c.inc( ); // Deuxième Incrémentation
System.out.println("valeur : "+c.vaut( ) );
c.dec( ); // Première décrémentation
c.dec( ); // Deuxième décrémentation
System.out.println("valeur : "+c.vaut( ) );
}
}
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (8/14
(8/14))
Utilisation de « super() » :
Compteur_Controle(int maxval)
POO : Java
{
super( );
this.maxval = maxval;
}
int y;
void m( ) {...} } void m( ) {...}
}
Class C extends B
{ int a;
……..
a = super.y; // a reçoit la valeur de la variable y de la classe B
a = super.super.x; // erreur syntaxique
a = ((B) this).y; // a reçoit la valeur de la variable y de la classe B
a = ((A) this).x; // a reçoit la valeur de la variable x de la classe A
super.m( ); // Appel à la méthode m de la classe B
}
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (11/14
(11/14))
} ……
classCompteur_Controle
class Compteur_Controleextends
extends Compteur
Compteur
{{
……..
……..
voidinc()
void inc()
{{
if( valeur) << maxval
if(vaut( maxval )) super.inc(
super.inc( ););
}}
}}
Tarak CHAARI
nécessité d’utiliser la fonction d’accès publique vaut().
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (12/14
(12/14))
} ……
c1 = c2;
System.out.println((c1 instanceOf Compteur_Controle)); // true
System.out.println((c1 instanceOf Compteur)); // true
Tarak CHAARI
c2 = c1; // Erreur
‹N
‹N°
°›
5- POO Avancée Java
5.2 Héritage (14/14
(14/14))
Regroupement de classes
les paquetages permettent de regrouper un ensemble
de classes portant sur un même thème (classes
POO : Java
import machin.truc.classe1 ;
import machin.truc.* ;
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.3 Les paquetages (package) (4/4
(4/4))
StrinBuffer, etc.
Exemple :
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.6 Polymorphisme
Exemple :
Shape[ ] shapes = { new Circle(2),
new Rectangle(2,3),
POO : Java
……..
};
double sum_of_perimeters = 0;
sum_of_perimeters += shapes[i].perimeter( );
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (1/13
(1/13))
Classe Lion
Carnivore Animal
Classe Animal
Classe Carnivore
Lion
+
……
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (2/13
(2/13))
Enseignan
t
Enseignant-
chercheur
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (3/13
(3/13))
Principe de l’interface :
Une interface est introduite par le mot clé «interface»,
et se comporte comme une classe dont toutes les
POO : Java
Exemple d’interface :
Appareil_Electrique
POO : Java
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (6/13
(6/13))
Tarak CHAARI
Plusieurs réalisations possibles d’une même
spécification (polymorphisme). ‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (8/13
(8/13))
Héritage multiple :
Le problème de l’héritage
en diamant peut être résolu
POO : Java
interface Personne{- - -}
interface Chercheur extends Personne {- - -}
class Enseignant implements Personne {- - -}
class Enseignant-Chercheur extends Enseignant implements Chercheur {…}
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (9/13
(9/13))
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
5.7 Héritage multiple et les Interfaces (10/13
(10/13))
interface X {- - - -}
interface Y {- - - -}
interface Z extends X,Y {…}
Tarak CHAARI
‹N
‹N°
°›
5- POO Avancée Java
11/13))
5.7 Héritage multiple et les Interfaces ((11/13
6
Les classes de base
Tarak CHAARI
‹N
‹N°
°›
6- Les classes de bases
6.1 Classe Object ((1/2
1/2))
Une méthode Class (non pas d’instance) getClass() qui peut être
utilisée sur tout objet pour déterminer sa nature
nom de la classe,
nom de ses ancêtres,
structure.
Tarak CHAARI
‹N
‹N°
°›
6- Les classes de bases
6.1 Classe Object (2/2
(2/2))
Exemple d’utilisation
Personne p1 = new Personne("Jean Dupond") ;
Personne p2 = new Personne("Jean Dupond") ;
System.out.println( p1.toString( ) ) ;
Tarak CHAARI
‹N
‹N°
°›
6- Les classes de bases
6.2 Les classes Wrapper (1/2
(1/2))
double f;
if (f> Integer.MIN_VALUE && f < Integer.MAX_VALUE); int i = (int) f;
La classe String :
La classe String décrit des objets qui contiennent une
chaîne de caractères constante (cette chaîne ne peut
POO : Java
Classe java.lang.String :
Description des méthodes utilisées :
int length( )
POO : Java
Classe java.lang.StringBuffer :
Exemple 1:
StringBuffer s = new StringBuffer("Bonjour");
s.append(" tout le monde");
POO : Java
System.out.println("s : "+s);
System.out.println("length : "+s.length());
System.out.println("capacity : "+s.capacity());
Résultats :
s : Bonjour tout le monde
length : 21
capacity : 23
Exemple 2 :
s.insert(2,"hop");
System.out.println("s : "+s);
Résultat :
Tarak CHAARI
Bohopnjour tout le monde
‹N
‹N°
°›
6- Les classes de bases
6.4 Les chaînes de caractères modifiables (3/3
(3/3))
Classe java.util.StringTokenizer :
chaînes.
Lors de la construction du StringTokenizer, il faut
préciser la chaîne à découper et, le ou les caractères
qui doivent être utilisés pour découper cette chaîne :
int size() :
Tarak CHAARI retourne la taille du tableau
‹N
‹N°
°›
6- Les classes de bases
6.5 Classe Vector (2/5
(2/5))
Présentation :
Classe située dans package java.util
Vector permet de réaliser des listes d’éléments
POO : Java
Exemple d’utilisation 1:
import java.util.* ;
Vector v = new Vector() ;
v.addElement(″1″);
v.addElement(″2″);
v.addElement(″3″);
System.out.printl(v.toString()) ; //affichage du Vector
Résultat
[1,2,3]
Tarak CHAARI
‹N
‹N°
°›
6- Les classes de bases
6.5 Classe Vector (3/5
(3/5))
Exemple d’utilisation 2:
Résultat
[1,2,hop,3]
Résultat
[1,2,truc,3]
Tarak CHAARI
‹N
‹N°
°›
6- Les classes de bases
6.5 Classe Vector (4/5
(4/5))
import java.util.* ;
class Bidule{- - - - - }
Bidule b;
Vector v = new Vector( ) ;
v.addElement(new Bidule(..)); // ajout d’un bidule
v.addElement(new Bidule(..)); // ajout d’un bidule
v.addElement(new Bidule(..)); // ajout d’un bidule
Présentation :
Exemples d’utilisation
import java.util.* ;
Hashtable t = new Hashtable() ; // création d’une Hashtable
Integer a, b, c ; // création de 3 Integer
Integer n ;
a = new Integer(1) ; b = new Integer(2) ; c = new Integer(3) ;
t.put(″un″,a) ; t.put(″deux″,b) ; t.put(″trois″,c) ;
Tarak CHAARI
‹N
‹N°
°›
6- Les classes de bases
6.6 Classe Hashtable (2/2
(2/2))
Méthodes utiles :
n = (integer) t.get(″deux″) ; // recherche de l’info associée à une clé
if(t.contains(c))..... // test présence d’une info
POO : Java
&
Corrigés
Tarak CHAARI
‹N
‹N°
°›