2. Les données d'abord
Important résultat de l'expérience :
Le plus souvent, il vaut mieux organiser un système autour des données
qu'autour des fonctions
Et ce d'autant plus que les données sont complexes
Mais si les données sont simples et les traitements complexes, OK pour
organiser le système autour des fonctions
Ex. bibliothèque de fonctions mathémaques.
3. Les données d'abord
Important résultat de l'expérience :
Le plus souvent, il vaut mieux organiser un système autour des données
qu'autour des fonctions
→ Lien avec le modèle conceptuel
objets, attributs, opérations pour les manipuler
Programmation Orientée Objet (OO)
4. Notions de programmation objet
Nécessite un cours complet
principes
méthodologie
langages : Java
Juste quelques notions ici
idées les plus importantes
exemples en Java
5. Programmation objet :
classe et instance
Classe
= type d'objet (données + opérations pour les manipuler)
ex. : classe « point » dans le plan (c.-à-d. en dim 2)
données = deux coordonnées cartésiennes (x,y)
opérations = déplacer, calculer la norme (distance à (0,0)), ...
en général : 1 fichier ~ 1 classe
Instance
= exemplaire de la classe
ex. : un point en (3,5), un en (-2,7), un autre en (3,5) ...
6. Programmation objet :
champ et méthode
Champ
= attribut de l'objet
ex. : coordonnée x et coordonnée y
(on dit aussi « variable d'instance »)
Méthode
= opération pour manipuler les données (~ fonction)
ex. : déplacer(dx,dy) et norme()
11. Programmation objet :
constructeur
Constructeur
sorte de méthode
initialise les champs de l'objet lors de sa création
créations/initialisations plus lisibles
permet des initialisations toujours cohérentes
14. Programmation objet :
extension de classe et héritage
Extension de classe
version spécialisée d'une classe existante
héritage des champs et méthodes de cette classe
champs et méthodes additionnels
vocabulaire :
sous-classe : la classe étendue
super classe : la classe que l'on étend
17. Programmation objet :
masquage de l'information
Masquage de l'information
s'applique à : classes, champs et méthodes
visibilité
public : visible par toutes les classes
private : visible seulement dans la classe
protected : visible seulement par les classes étendues
(package : visible seulement des classes du même package)
Type abstrait
on peut changer le contenu privé de la classe sans changer ses utilisations
publiques
20. Programmation objet :
interface
Interface
~ squelette d'une classe, sans implémentation
méthodes d'interface : sans corps (abstraites)
pas de champs d'interface
plusieurs classes peuvent implémenter une même interface
une interface peut étendre plusieurs autres interfaces
☛ Type abstrait (...→)
on peut changer la classe sans changer les utilisations de l'interface
25. Autres notions
Notion de package (paquetage)
espace de nommage
Héritage multiple
extension de plusieurs classes
Classes abstraites
~ classes incomplètes
Variables de classes
~ globales
…
26. A retenir
Organisation du système autour de :
fonctions si pas d'objets ou objets simples (ex. scalaires)
données si des objets complexes
Lien avec le modèle conceptuel
Concepts de la programmation objet
classe, instance, champ, méthode, constructeur, interface, héritage, extension
Masquage de l'information et types abstraits
Notes de l'éditeur
Fonction: ensemble d’ordres accomplissant une tache particuliere, elle peut prendre des arguments et en general renvoie un resultat( sinon en absence de resultat retourné on parle de procédure)
Methode procedure ou fonction declaree dans un bloc de declaration d’un objet…
POO,
Une classe: c’est une description abstraite des données et du comportement d’objets, ces objets etant similaires. Les representants de la classe sont appelelés objets.
Classe; definition de champs; definition de Méthode; création d’instance et appel de Méthode
Nome d’un vecteur: c’est une extension de la valeur absolue des nombres au vecteur. Elle permet de définir toutes les representations d’un vecteur dans un espace affine…
Espace affine, c’est un espace issu de la geometrie euclidienne dont les notions d’angle et de distance ne sont pas pris en compte.
Classe; definition de champs; definition de Méthode; creation d’instance et appel de méthode
Définition de classe; definition de Méthode; creation d’instance et appel de Méthode
Définition de classe; definition de Méthode; creation d’instance et appel de méthode