Académique Documents
Professionnel Documents
Culture Documents
1
Objectifs du cours
Sébastien TRUPTIL 2 !
Organisation du cours
I. Introduction à la POO!
II.Lien entre le POO et le MOO!
III.Caractéristiques des POO!
IV.Présentation de Java!
V.Projet Java
Sébastien TRUPTIL 3 !
Organisation du cours
I. Introduction à la POO!
II.Lien entre le POO et le MOO!
III.Caractéristiques des POO!
IV.Présentation de Java!
V.Projet Java
Sébastien TRUPTIL 3 !
POO vs Prog. procédurale
Sébastien TRUPTIL 4 !
différents types de POO
‣ fonctionnelle (CLOS),!
‣ impérative (C++, Java, ...),!
‣ les deux (Python, OCaml…).
Sébastien TRUPTIL 5 !
Historique de la POO
Sébastien TRUPTIL 6 !
Historique de la POO
Sébastien TRUPTIL 6 !
Historique de la POO
‣ Standardisation de C++!
‣ Apparition du langage Java!
Depuis :!
I. Introduction à la POO!
II.Lien entre le POO et le MOO!
III.Caractéristiques des POO!
IV.Présentation de Java!
V.Projet Java
Sébastien TRUPTIL 8 !
Lien entre MOO et POO
Sébastien TRUPTIL 9 !
Lien entre MOO et POO
Sébastien TRUPTIL 9 !
Lien entre MOO et POO
Sébastien TRUPTIL 9 !
Lien entre MOO et POO
Sébastien TRUPTIL 10 !
Lien entre MOO et POO
Sébastien TRUPTIL 10 !
Lien entre MOO et POO
Un Objet a :!
✓Ses propres caractéristiques (Attributs)!
✓Ses fonctionnalités (Méthodes)
Sébastien TRUPTIL 10 !
Lien entre MOO et POO
Un Objet a :!
✓Ses propres caractéristiques (Attributs)!
✓Ses fonctionnalités (Méthodes)
Attributs Méthodes
Objets
Sébastien TRUPTIL 10 !
l’Objet
Sébastien TRUPTIL 11 !
l’Objet
Cercle
Nom
Rayon
Couleur
tracer()
Sébastien TRUPTIL 11 !
l’Objet
Instance A
Cercle
Nom
Rayon
Couleur
tracer()
Sébastien TRUPTIL 11 !
l’Objet
Instance A
Cercle
Nom
Rayon
Couleur
tracer()
Instance B
Sébastien TRUPTIL 11 !
l’Objet
Instance A
Instance
Cercle
C
Nom
Rayon
Couleur
tracer()
Instance B Instance F
Instance
E
Sébastien TRUPTIL 11 !
l’Objet
Instance A
Instance
C
Instance B Instance F
Instance
E
Sébastien TRUPTIL 12 !
Organisation du cours
I. Introduction à la POO!
II.Lien entre le POO et le MOO!
III.Caractéristiques des POO!
IV.Présentation de Java!
V.Projet Java
Sébastien TRUPTIL 13 !
Caractéristiques des POO : Encapsulation
Sébastien TRUPTIL 14 !
Caractéristiques des POO : Encapsulation
Sébastien TRUPTIL 14 !
Caractéristiques des POO : Encapsulation
Sébastien TRUPTIL 15 !
Caractéristiques des POO : Encapsulation
Forme
Rectangle
Cercle
Nom
Rayon
Couleur
Carré
tracer()
Sébastien TRUPTIL 16 !
Caractéristiques des POO : Héritage
Rectangle
Deux types d’héritage !
‣ L’héritage multiple :
Sébastien TRUPTIL 17 !
Caractéristiques des POO : Héritage
Rectangle
Deux types d’héritage !
Sébastien TRUPTIL 17 !
Caractéristiques des POO : Héritage
Rectangle
Deux types d’héritage !
pos s ib le p o u r la
im:
‣ L’héritage multiple
plupart
Chat dus
d e P
désert O O
Sébastien TRUPTIL 17 !
Caractéristiques des POO : Héritage
• L’héritage simple :
Rectangle
longueur
largeur
getDiagonale()
Carré
getPerimetre()
Sébastien TRUPTIL 18 !
Caractéristiques des POO : Héritage
• L’héritage simple :
Rectangle Instance de
carré A
longueur
largeur
getDiagonale()
Carré
getPerimetre()
Sébastien TRUPTIL 18 !
Caractéristiques des POO : Héritage
• L’héritage simple :
Rectangle Instance de
carré A
longueur
largeur
Sébastien TRUPTIL 18 !
Caractéristiques des POO : Héritage
• L’héritage simple :
Rectangle
longueur
largeur
getDiagonale()
Carré
getPerimetre()
getDiagonale()
Sébastien TRUPTIL 19 !
Caractéristiques des POO : Héritage
• L’héritage simple :
Rectangle Instance de
carré A
longueur
largeur
getDiagonale()
Carré
getPerimetre()
getDiagonale()
Sébastien TRUPTIL 19 !
Caractéristiques des POO : Héritage
• L’héritage simple :
Rectangle Instance de
carré A
longueur
largeur
Polymorphisme ad-hoc : corresponds à définir plusieurs méthodes dans une même classe
qui possèdent le même nom mais des paramètres différents.!
‣ getPerimetre();!
‣ getPerimetre(int Longueur, int Largeur); !
!
Polymorphisme d’inclusion : est lié à la redéfinition des méthodes. Lors de l’héritage une
classe fille peut avoir besoin de modifier le comportement de méthodes de la classe mère.
Les méthodes sont alors « sur écrite ».!
I. Introduction à la POO!
II.Lien entre le POO et le MOO!
III.Caractéristiques des POO!
IV.Présentation de Java!
V.Projet Java
Sébastien TRUPTIL 21 !
Java : quelques chiffres
‣ Plus de 1,4 milliards de cartes à puce utilisant Java sont produites chaque année
Sébastien TRUPTIL 22 !
Java : en quelques mots
Sébastien TRUPTIL 23 !
Java : Petite et Grande histoire
‣ Compact!
‣ Orienté réseau!
Ce langage s’appelait Oak
Sébastien TRUPTIL 24 !
Java : Petite et Grande histoire
Sébastien TRUPTIL 25 !
Java : environnement
Fichier.java
Utilisation de!
Fichier.class
la JVM
Compilation
Exécution
Exécution
Sébastien TRUPTIL 26 !
Java : environnement
q u e v
ceFichier.javao u s
de v e z f a ir e
Utilisation de!
Fichier.class
la JVM
Compilation
Exécution
Exécution
Sébastien TRUPTIL 26 !
Correspondance UML et JAVA
UML Java
une classe une classe
Cercle
Nom
Rayon
Couleur
tracer()
Sébastien TRUPTIL 27 !
Correspondance UML et JAVA
UML Java
un diagramme! une méthode!
de séquence d’une classe
Sébastien TRUPTIL 28 !
Les structures de base du langage Java
29
Création d’une classe Java
Nom de la Classe
Attributs de la Classe
Méthodes de la Classe
Sébastien TRUPTIL 30 !
Création d’une classe Java
Nom de la Classe
Attributs de la Classe
Constructeurs de la
Classe
Méthodes de la Classe
Sébastien TRUPTIL 31 !
Création d’une classe Java
Nom de la Classe
Attributs de la Classe
Méthodes de la Classe
Sébastien TRUPTIL 31 !
Création d’une classe Java
Nom de la Classe
Attributs de la Classe
Résultat de
Méthodes de la Classe
l’encapsulation
Sébastien TRUPTIL 31 !
Les structures de base du Java
Les commentaires :!
‣ Nom en majuscule!
‣ Exemple : CONSTANTE!
Méthode :!
Sébastien TRUPTIL 33 !
Les structures de base : Les opérateurs
== Égal à
-- Décrémentation de 1 (x--óx=x-1)
!= Différent de
Addition / signe positif /
+
concaténation
&& ET logique
- Soustraction / signe négatif
|| OU logique
Opposé logique
!
(!true=false)
instanceof Test de type de l’objet
(type) Changement de type pour l’objet
< Inférieur à
* multiplication
<= Inférieur ou égal à
/ division > Supérieur à
% modulo >= Supérieur ou égal à
Sébastien TRUPTIL 34 !
Les structures de base : les méthodes
}!
!
‣ System.out.println("Hello World”);!
=> écrit sur la console : Hello World.
Sébastien TRUPTIL 35 !
Les structures de base : l’ héritage
extends
Sébastien TRUPTIL 36 !
Les structures de contrôles
!
‣ D’un ou plusieurs Blocs d’instruction!
- Toujours entre accolades { }
Sébastien TRUPTIL 37 !
Les structures de contrôles
!
‣ D’un ou plusieurs Blocs d’instruction!
- Toujours entre accolades { }
Sébastien TRUPTIL 37 !
Les structures de contrôles : Si
if (Condition) {
Bloc d’instruction si la condition est vraie;
} else {
Bloc d’instruction si la condition est fausse;
}
SI (diagonale de A = 5 ) if(A.getDiagonale() == 5)
Alors {
!
d = diagonale de A d = A.getDiagonale();
! !
Sinon } else {
! !
d = diagonale de A + 2 d = A.getDiagonale() -2;
! }
Fin Si
Sébastien TRUPTIL 38 !
Les structures de contrôles : les boucles
Sébastien TRUPTIL 39 !
Les structures de contrôles : les boucles
‣ Pour … Faire !
- On l’utilise quand : ON CONNAÎT LE NOMBRE D’ITERATION
Sébastien TRUPTIL 39 !
Les structures de contrôles : les boucles
‣ Pour … Faire !
- On l’utilise quand : ON CONNAÎT LE NOMBRE D’ITERATION
!
‣ Tant que … Faire!
- On l’utilise quand : ON NE CONNAÎT PAS LE NOMBRE D’ITERATION!
- La condition d’arrêt est testée avant l’exécution du bloc d’instruction
Sébastien TRUPTIL 39 !
Les structures de contrôles : les boucles
‣ Pour … Faire !
- On l’utilise quand : ON CONNAÎT LE NOMBRE D’ITERATION
!
‣ Tant que … Faire!
- On l’utilise quand : ON NE CONNAÎT PAS LE NOMBRE D’ITERATION!
- La condition d’arrêt est testée avant l’exécution du bloc d’instruction
!
‣ Faire … Jusqu’à !
- On l’utilise quand : ON NE CONNAÎT PAS LE NOMBRE D’ITERATION!
- La condition d’arrêt est testée après l’exécution du bloc d’instruction
Sébastien TRUPTIL 39 !
Les structures de contrôles : Pour
Sébastien TRUPTIL 40 !
Les structures de contrôles : Tant que
while (Condition) {
Bloc d’instruction si la condition est
vraie;
}
Sébastien TRUPTIL 41 !
Les structures de contrôles : Tant que
do {
Bloc d’instruction si la condition est
vraie;
} while (Condition)
Répéter do {
! !
i=i+1 i++;
! !
Jusqu’à (i est différent de 10) } While(i !=10)
Sébastien TRUPTIL 42 !
Organisation du cours
I. Introduction à la POO!
II.Lien entre le POO et le MOO!
III.Caractéristiques des POO!
IV.Présentation de Java!
V.Projet Java
Sébastien TRUPTIL 43 !
Projet Java
Sébastien TRUPTIL 44 !