Академический Документы
Профессиональный Документы
Культура Документы
Langage et Concepts de
Programmation Orientée-Objet
Laurent Vercouter
Laurent.Vercouter@emse.fr
Déroulement du cours
8h15 9h45 10h 11h30 13h30 15h 15h15 16h45
18 mai COURS TD
19 mai TP TP
6 juin TP
8 juin TP TD
13 juin TP
15 juin TD TP
21 juin TD TP
22 juin TP TP
29 juin EXAMEN TP
– 2 TP à envoyer à la fin des séances (15/6 et 29/6)
– Évaluation sur un de ces 2 TPs et l'examen écrit
note = 0,5*examen + 0,5*TP
Modèle en cascade pour le
développement logiciel
Analyse
SADT, SA-RT, MERISE,
OMT, UML, …
Conception
Maintenance
Langages procéduraux et
fonctionnels
Un programme est composé de plusieurs
procédures (ou fonctions) :
qui effectuent un traitement sur des Données
données (procédure)
qui retournent une valeur après leur
invocation (fonction) Traitement 1
T
Les données d'un objet sont appelés ses T
T T
Exemples de langages orientés-objet :
SmallTalk, C++, Java, …
UML & Java
Unified Modeling Language (UML) :
Analyse notation standard pour l'analyse et la
conception
construite par l'Object Management
Conception Group
Première version standard en 1997
Implémentation Java :
pas un standard mais un langage très
largement utilisé
Tests développé par SUN microsystems en
1995
Maintenance dernière version stable : JDK 1.5.0
Objet
Approche procédurale :
"Que doit faire mon programme ?"
Approche orientée-objet :
"De quoi doit être composé mon programme ?"
Cette composition est conséquence d'un choix de modélisation
fait pendant la conception
Germinal
E. Zola
Le Monde Alice Dupont Anne Durand
Directrice Lectrice
Germinal
E. Zola
Le Monde Alice Dupont Anne Durand
Directrice Lectrice
double getSolde() {
return solde;
}
Méthodes
void credite(double val) {
solde = solde + val;
}
}
Encapsulation
L'encapsulation est la pratique consistant à regrouper des
attributs au sein d'une même classe.
void setTitre(String t) {
titre = t;
}
String getTitre() {
return titre; Méthodes
}
Date emprunte(Lecteur lec) {
if (emprunteur = = null) {
emprunteur = lec;
return new Date();
} else return null;
}
}
Portée d'une variable
public class Portee {
int a;
Livre(String t) {
titre = t;
emprunteur = null; Constructeur
}
void setTitre(String t) {
titre = t;}
String getTitre() {
return titre;}
Propagation Interception
public String initialesAuteur(Livre l) public String initialesAuteur(Livre l) {
throws IndexOutOfBoundsException { String titre, initiales;
String titre, initiales; try {
titre = l.getTitre(); titre = l.getTitre();
initiales = titre.substring(0,2); initiales = titre.substring(0,2);
return initiales; return initiales;
} } catch (IndexOutOfBoundsException ex) {
return new String("???");
}
}
Exemple :
if ( emprunteur.getStatut() = = "employe") {
unLivre.setDateRetour(30);
} else {
unLivre.setDateRetour(15);
}
Compléments de syntaxe
Instruction itérative
Exemple :
Exemple :