[MOB1] Modelisation Objets (2)

L’approche orientee objet

Terminologie

Oriente objet ne veut plus rien dire aujourd’hui

Alan Key : inventeur de l’oriente objet (ainsi que du terme associe), alors que son idee aurait ete mieux resume par “Message-oriented programming”

Les objets du monde reel


Personne
    - Attribut statique : nom / prenom / age
    - Comportements dynamiques : mange / travaille / se deplace

Avion : 
    - Attribut statique : marque / couleur
    - Comportement dynamique : prend passagers / se deplace

Chqaue objet a un attribut, mais pas le meme. Tout salarie a un employeur mais toute personne n’est pas salariee, un avion et une personne se deplacent, mais differemment
-> La POO exprime ce genre de relations

Historique

SmallTalk (langage de programmation de 1971, public en 1980)

Simula (1962, surtout 1967)

Oriente objet aujourd’hui

Java, C++, C#, Python et Lisp avec des couches orientees objet

Origine

---
**Human**
---
name: string
size: float
birth_year: unsigned
---
---
class C++
{
    std::string name_;
    float size_;
    unsigned birth_year_;
};
class Human
{
    String name;
    float size;
    int birthYear;
}

Extension du modele de Hoare

---
**Human**
---
name: string
size: float
birth_year: unsigned
---
age() : unsigned
hello() : void
---
---
**Nom**
---
Champs / Attributs / Slots
---
Methodes / Fonctions membres
---

Limitation UML : Distinctions entre methodes et Attributs (suit l’approche fde Von Neumann)

class Human
{
    String name;
    float size;
    int birthYear;
    int age () { ... }
    void hello () { ... }
}

Classe

Introspection : Capacite d’un programme d’examiner son propre etat Intercession : Capacite de se modifier soi-meme