Académique Documents
Professionnel Documents
Culture Documents
ENSEM 2014
Objectifs
Dcouvrir les concepts
classes, objet, instances
Encapsulation, heritage, polymorphisme
Plan
I.
I-Introduction la
programmation Orient
Objet
Classe vs objet
Dans la programmation oriente objet, les objets qui appartiennent au
mme modle, constituent ce quon appelle une classe.
La Classe
Instanciation
Les Objets
Classe vs objet
Classe = description dun modle
Objet = un exemplaire du modle
Une seule classe, plusieurs objets (instances)
La Classe
Instanciation
Les Objets
Objet
Un objet est une entit cohrente rassemblant des donnes et du code travaillant sur
ses donnes.
Un objet est caractris par :
Son tat : Comment lobjet ragit-il lorsque vous appliquez ces mthodes ? (son aspect
actuel)
Mavoiture.Vitesse== 90
Son comportement : que pouvez-vous faire avec cet objet, ou quelles mthodes pouvezvous lui appliquer ?
Demarrer
Accelerer
.
Son identit : Comment lobjet se distingue-t-il des autres qui peuvent avoir le mme
comportement et le mme tat ?
Ltat dun objet peut changer dans le temps, mais pas spontanment. Une
modification dans ltat dun objet doit tre la consquence dun comportement.
Mavoiture.Acceler(X) Mavoiture.Vitesse== 90+x
Classe
Elle est le composant de base. Une classe dcrit la structure interne
d'un objet : les donnes qu'il regroupe, les actions qu'il est capable
d'assurer sur ses donnes.
Une classe reprsente le modle de lobjet effectif.
Hritage
Hritage permet de reprendre des membres d'une classe (appele
superclasse ou classe mre) dans une autre classe (classe fille)
Une classe drive hrite des proprits dune classe de base
Economie du code
Amlioration de la fiabilit
Amlioration de la lisibilit
Forme
Couleur
Dessiner()
Effacer()
Dplacer()
Colorier()
Cercle
Rayon
Rectangle
Hauteur
largeur
Hritage
Relation d hritage
Chat
15
Agrgation
Agrgation : Dfinit une relation hirarchique entre les entits, se
compose de et modlise la notion de possession
Voiture
porte
roue
moteur
Polymorphisme
Le polymorphisme permet la redfinition dun comportement : le
polymorphisme peut avoir pour le mme service , aussi appel
opration ou mthode un comportement diffrent selon les
situations.
Rcapitulation
Ci-dessous les points principales cits pour ce chapitre:
a.
Langage objet
b.
Objets et classes
c.
Hritage
d.
Agrgation
e.
Polymorphisme
f.
Encapsulation
Pourquoi JAVA ?
Raliser le rve : crire une fois et excuter sur nimporte
quelle machine
Write once, run eveywhere
Pourquoi JAVA ?
tant donn que chaque type dordinateur a son propre langage machine
spcifique, donc pour un langage haut niveau il faut autant dinterprteurs
et compilateurs quil y a de types dordinateur
Intel
Mac
Sun
etc.
Excution
Avant excution
Fichier
de code
Java
MaClasse.java
Compilation
javac
Byte code
MaClasse.class
Langage universel
Machine virtuelle
Java (JVM)
java
systmes
MaClasse.java
Java Compiler
Diversit
de
dexploitation
Le
bytecode
ne
peut-tre
interprt que par le processeur
de la JVM
MaClasse.class
= bytecode
JVM
Mac
JVM
Windows
JVM
Unix
c.
d.
e.
explicite de la mmoire
elle participe activement la bonne intgrit de la machine virtuelle : une
instruction ne peut jamais utiliser un objet qui n'existe plus en mmoire
Outil de dveloppement
Environnement de dveloppement fourni par Sun
JDK signifie Java Development Kit (Kit de dveloppement Java).
Il contient :
les classes de base de l'API java (plusieurs centaines),
la documentation au format HTML
le compilateur : javac
la JVM (machine virtuelle) : java
le visualiseur d'applets : appletviewer
Outil de dveloppement
environnement de dveloppement:
Eclipse (http://www.eclipse.org)
Borland JBuilder (http://www.borland.com/jbuilder)
IBM WebSphere Studio (http://www.ibm.com/software/awdtools)
Sun ONE Studio (http://wwws.sun.com/software/sundev)
Rcapitulation
Ci-dessous les points principales cits pour ce chapitre:
a.
b.
Pourquoi java
c.
d.
Outils de dveloppement
Modificateur
Modificateur
Dfinition
abstract
final
private
public
}
}
public: visible partout, peut tre utilise par dautres classes
}
}
Cette classe doit se trouver dans le fichier Test.java
class Point {
Public double x;
Public double y;
Point(double ax,double ay) {
x = ax;
y = ay;
}
public String toString() {
return "("+x+","+y+")";
}
}
System.out.println(p.toString());
Point q = new Point(0,0);
System.out.println(q.toString());
}
Syntaxe
NomClasse objet;
Objet=new NomClasse();
Constructers/Destructeurs
variables
Mthode
Constructeur
CLASSE
public double x;
public double y;
public String toString() {
return "("+x"+","+y+")";
}
Point(double ax,double ay) {
x = ax;
y = ay;
}
}
Constructeurs (1/5)
Rappel
Question
Rponse
CLASSE
public double x;
public double y;
Point(double ax,double ay) {
x = ax;
y = ay;
}
}
INSTANCES
Constructeurs (2/5)
CLASSE
// ...
Point(double ax,double ay) {
INSTANCES
x = ax;
y = ay;
}
Point() {
x = 0;
y = 0;
}
}
Constructeurs (3/5)
CLASSE
INSTANCES
public double x;
public double y;
refus la compilation
CLASSE
public double x;
public double y;
Point(double ax,double ay) {
x = ax;
y = ay;
}
}
INSTANCES
refus la compilation
Constructeurs (4/5)
// ...
// ...
Point(double x,double y) {
Point(double x,double y) {
x = x;
ambiguit!
y = y;
this.x = x;
this.y = y;
Point() {
Point() {
x = 0;
redondance
this(0,0);
y = 0;
Constructeurs (5/5)
Constructeurs par copie
CLASSE
INSTANCES
public double x;
public double y;
Point(double ax,double ay) {
x = ax;
y = ay;
}
Point(Point p) {
this(p.x,p.y);
}
}
Destructeurs
Lors de linstanciation
la place ncessaire en mmoire est reserve
un compteur de rfrence est mis en place
Instances (1/3)
INSTANCES
INSTANCES
Point q = p;
q.x = 3;
q.x = 3;
q.y = 4;
q.y = 4;
System.out.println(p.toString());
System.out.println(p.toString());
affiche (1,2)
Instances (2/3)
Le problme de laccs
public class Point {
public double x,y;
CLASSE
INSTANCES
System.out.println(p.r);
y = ay;
r = Math.sqrtf(x*x+y*y);
th = y%x);
}
}
Instances (3/3)
Information sur une classe
toute classe a une mthode getClass()
getClass()
// affiche true
System.out.println(p.getClass() == s.getClass());
// affiche false
System.out.println(p.getClass().getName());
System.out.println(s.getClass().getName());
// affiche Point
// affiche String
private
protected
CLASSE
p.x = 0;`
refus la compilation
this.x = x;
r = Math.sqrtf(x*x+y*y);
th = Math.atan(y/x);
}
public void setY(double y) {
this.y = y;
r = Math.sqrtf(x*x+y*y);
th = y%x;
}
}
// ...
// ...
this.x = x;
this.x = x; update();
r = Math.sqrtf(x*x+y*y);
th = Math.atan(y/x);
this.y = y; update();
}
private void update() {
r = Math.sqrtf(x*x+y*y);
r = Math.sqrtf(x*x+y*y);
th = Math.atan(y/x);
th = Math.atan(y/x);
}
}
redondance
Rcapitulation
Ci-dessus les points principales cits pour ce chapitre:
a.
Structure de classe
b. Modificateurs
c. Cration dinstance
d. Constructeurs
e. Contrle daccs
Exercices
Dfinir lhritage et donner un exemple?
Quels sont les atouts du langage java?
Quel est le rle du garbage colector?
Modliser ces relations
-Un polygone est constitu de points. Un point possde une abscisse et une ordonne.
-Une voiture, avion et moto sont des vhicules
-Un Chat, un chien et un oiseau sont des animaux