Académique Documents
Professionnel Documents
Culture Documents
IPO
Chapitre 02
LApproche Oriente Objet
Classe, Objet, Attribut, Mthode, Constructeur
Modificateur, Composition et Hritage
Plan du Cours
Lapproche objet
Classe
Objet
Attribut
Mthode
Constructeur
Modificateur
Composition
Hritage
Autres notions en O.O
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 1
Lapproche objet (1)
3
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 2
La classe (1) : dfinition
5
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Hom m e Nom
A g e : In t e g e r
Ta ille : D o u b le
Attributs
P o id s : D o u b le
N o m : S t rin g
p a rle ()
m a n g e () Mthodes
b o it ()
d o rt ()
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 3
Linstanciation (1)
7
Instance :
Reprsentant physique d'une classe
Obtenu par moulage du dictionnaire des Attributs et
dtenant les valeurs de ces variables.
Son comportement est dfini par les mthodes de sa
classe
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Linstanciation (2)
8
Exemple :
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 4
Les constructeurs (1)
9
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 5
Les constructeurs (3)
11
Page 6
Les constructeurs (5)
13
Personne.java
Redfinition dun
public class Personne Constructeur sans paramtres
{
public String nom;
public String prenom;
public int age;
public Personne()
{ On dfinit plusieurs constructeurs
nom=null; prenom=null; qui se diffrencient uniquement
age = 0; par leurs paramtres (on parle
} de leur signature)
public Personne(String unNom,
String unPrenom, int unAge)
{
nom=unNom;
prenom=unPrenom; age = unAge;
} }
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
class Personne
Personne {
Personne jean, pierre;
nom : String String nom;
age : Integer jean = new Personne ();
int age;
salaire : Double pierre = new Personne ();
float salaire;
}
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 7
Accs aux attributs dun objet (1)
15
Personne.java Personne
nom : String
prenom : String
public class Personne age : Integer
{
public String nom; getNom()
setNom()
public String prenom;
public int age;
public void setNom(String unNom)
{
nom = unNom;
}
public String getNom()
{
return (nom);
}
}
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Application.java
Remarque :
Contrairement aux variables, les attributs d'une classe, s'ils ne sont pas initialiss, se
voient affecter automatiquement une valeur par dfaut.
Cette valeur vaut : 0 pour les variables numriques, false pour les boolens, et null
pour les rfrences (Objet et tableau).
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 8
Accs aux mthodes dun objet (1)
17
Personne.java Personne
nom : String
prenom : String
public class Personne age : Integer
{
public String nom; getNom()
setNom()
public String prenom;
public int age;
public void setNom(String unNom)
{
nom = unNom;
}
public String getNom()
{
return (nom);
}
}
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Application.java
public class Application
{
public static void main(String args[])
{
Personne jean = new Personne()
jean.setNom("Jean") ;
}
}
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 9
Notion de mthodes et de paramtres (1)
19
Mthodes (rappel)
20
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 10
Mode de passage des paramtres
21
Consquences :
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 11
Porte des variables (2)
23
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 12
Destruction dobjets (2)
25
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Lencapsulation (1)
26
Page 13
Lencapsulation (2)
27
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 14
Contrle daccs (2)
29
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 15
Variables de classe (1)
31
Accs :
Depuis une mthode de la classe comme pour tout
autre attribut,
Via une instance de la classe,
l'aide du nom de la classe.
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Variable de classe
public class UneClasse
{
public static int compteur = 0;
public UneClasse () Utilisation de la variable de classe
{
compteur++; compteur dans le constructeur de
} la classe
}
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 16
Mthodes de classe (1)
33
Math.sin(x);
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 17
35
Synthse et Exemples
De la 1re Partie
Classe : Modle pour des objets, qui prcise les attributs (tats de
l'objet) et mthodes (comportements)
Syntaxe :
[<modificateurs d'accs>] class <nomClasse> {
<attributs>
<constructeurs>
<mthodes> }
Syntaxe :
public class Chien {
public String couleur;
public void aboie () {
System.out.println("Houah! Houah!"); }
}
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 18
Dclaration de classe 2/2
37
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Objet 1/2
38
Syntaxe :
[<nomClasse>] <variable> = new <nomClasse>
(<paramtres>);
Syntaxe :
Chien mdor = new Chien() ;
Page 19
Objet 2/2
39
Syntaxe :
milou.couleur = "blanc" ;
mdor.couleur = milou.couleur ;
mdor.aboie();
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Objet 1/2
40
Variable d'instance
Dfinit l'attribut d'une seule instance d'une classe : donc un
attribut attach chaque objet de la classe
Syntaxe :
[<modificateurs>] <type> <nomVariable> [= <valeur>];
Exemple : couleur de la classe Chien
Variable de classe
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 20
Objet 2/2
41
Syntaxe
static [<modificateurs>] <type> <nomVariable>
[= <valeur>] ;
o modificateur peut tre public, private, protected
Exemple
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Mthode 1/3
42
Mthode d'instance
Dfinit un comportement de l'objet, un traitement qui ne peut
tre dclench qu'en envoyant un message un objet de la classe
Syntaxe :
[<modificateur>] <type> <nomMthode> ([<paramtres
formels>]) { <corps de la mthode> }
Exemple : aboie de la classe Chien
Mthode de classe
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 21
Mthode 2/3
43
Syntaxe :
[<modificateur>] static <type> <nomMthode>
([<paramtres formels>]) { <corps de la mthode>}
Exemple :
public class Chien {
public String couleur;
public static int nombreDePattes () { return 4; }
}
Pour lutiliser :
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Mthode 3/3
44
Syntaxe :
public class Chien {
public void aboie () {
System.out.println("Houah! Houah!"); }
public void aboie (int nbre) {
for (int i = 0 ; i < nbre ; i++ )
System.out.println("Houah!"); }
public void aboie (String aboiement) {
System.out.println(aboiement + " " + aboiement);}
};
Page 22
Constructeur
45
Syntaxe :
[<modificateur>] <nomClasse> ([<paramtres
formels>]) { <corps de la mthode constructeur> }
Exemple :
public class Chien {
public String couleur;
public Chien () { couleur = "inconnue"; }
public Chien (String c) { couleur = c; } }
Chien mdor = new Chien() ;
Chien milou; milou = new Chien("blanc");
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Modificateurs
Dfinissent la porte d'une variable, d'une mthode ou d'une classe.
Il existe 4 modificateurs d'accessibilit.
Mot-cl Porte Remarques
Il ne peut y avoir qu'une seule classe
Les variables, mthodes ou classes publique par .java et celle-ci doit
public
publiques sont accessibles par tout objet. obligatoirement porter le nom du
fichier .java
Les variables, mthodes ou classes dfinies Attention : les variables sans
sans modificateur sont accessibles par modificateur ne sont pas accessibles
"rien"
toute classe appartenant au mme aux classes fille dfinies dans un autre
package. package.
Les variables, mthodes ou classes dfinies
comme protges ne sont accessibles que
protected
par les classes filles et classes du mme
package..
Les variables, mthodes ou classes dfinies Il est fortement conseill de dclarer
comme prives ne sont accessibles que comme privs tous les attributs d'une
private
par la classe dans laquelle elles sont classe, et de crer des mthodes de
dfinies. type get/set pour y accder.
Page 23
Exemple1 (1/2)
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Exemple1 (2/2)
Les lignes du programme :
dclaration de 2 variables de
type Rectangle1
instanciation (cration) d'un
objet Rectangle1 : appel du
constructeur
r1 et r2 sont des rfrences
aux objets
envoie d'un message perimetre
l'objet rfrenc par r1, ce qui
provoque l'excution de la
mthode
EXECUTION
r1 : largeur = 10.0 hauteur = 20.0
perimetre de r1 : 60.0
surface de r2 : 100.0
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 24
Exemple2 (1/2)
Les lignes de la classe :
dclaration d'une classe Chien1:
attributs nom et nombrePuce
1 constructeur 2
paramtres
5 autres mthodes
getNombrePuce
getNom
setNombrePuce
seGratte
aPlusPuceQue
this dsigne l'objet en cours : ici,
this pouvait tre omis
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Exemple2 (2/2)
Les lignes du programme :
dclaration de 2 variables de
type Chien1
puis cration de 2
objets/instances de la classe
Chien1
medor et milou sont des
rfrences sur chacun de ces 2
objets
EXECUTION
un nouvel ami ! Milou
un nouvel ami ! Medor
34 puces sur milou
19 puces sur milou
13 puces sur milou
milou a plus de puces que medor = false
Module IPO Chapitre 02: Approche objet - Classe - Encapsulation - Hritage Dr. Bouramoul
Page 25
51
Page 26