Programmation orientée objet
Principes de la programmation objet
Principes de la programmation objet
- L’approche objet permet de créer des structures de données et d’y associer des fonctionnalités.
- La principale caractéristique du paradigme objet est d’associer étroitement les données et le code pour les traiter (principe de l’encapsulation).
- Cette encapsulation se matérialise par la définition d’une classe d’objets.
- La classe objet établit les types de données et y associe des fonctionnalités communes.
- Les objets individuels sont créés à partir de la classe, par un mécanisme appelé instanciation : l’objet devient l’instance de la classe dont il provient.
- Dans la terminologie objet, les données sont appelées attributs, tandis que les fonctions associées sont appelées méthodes.
- Une classe se définit à partir du mot-clé suivi du nom de celle-ci (qui commence par une majuscule).
- Dans le cas où le nom est composé, on utilise la convention dite « camel case ».
- Les objets encapsulent des propriétés et des méthodes.
- La méthode appelée est le constructeur de nos futurs objets. Elle sera automatiquement appelée au moment de la création des objets de la classe.
- Les méthodes prennent un premier paramètre désignant l’objet individuel auquel elles s’appliquent. Par convention ce paramètre est appelé en Python.
- La syntaxe générale pour l’appel d’une méthode s’effectue selon le format suivant : .
- Si la méthode requiert des paramètres, les arguments correspondants doivent être présents entre les parenthèses.
- Les chaînes de documentation ( ) contribuent, quand elles sont présentes, à informer sur la classe et ses méthodes.
- L’intérêt de la programmation objet est la possibilité de disposer de méthodes communes à des objets distincts dont les valeurs d’attributs peuvent être différentes.
États internes des objets
États internes des objets
- Le paradigme de programmation fonctionnelle repose sur l’absence d’état des fonctions. Le résultat d’une fonction ne dépend que des arguments fournis en entrée.
- Le paradigme de programmation objet permet une conservation d’états internes : les objets contiennent non seulement des fonctions, appelées méthodes, mais aussi des variables, appelées attributs.
- On distingue :
- les variables d’instance ;
- et les variables de classe.
- Les variables d’instance peuvent être définies au moment de l’instanciation de l’objet, mais il est possible de les définir à tout moment.
- Les variables des objets, ou attributs d’instance, sont accessibles et modifiables avec la notation pointée.
- Python permet également de déclarer librement des attributs non explicitement définis dans la classe.
- Les variables d’instance sont stockées dans l’objet sous forme d’un dictionnaire.
- Les variables peuvent également être définies au niveau de la classe (variables de classe).
- Dans ce cas, elles sont communes à tous ses membres, et toute modification d’une variable de classe concernera l’ensemble des objets qui y sont rattachés (absence de ).
- Certains langages obligent à utiliser des méthodes (accesseur ou mutateur) pour lire ou modifier les attributs des objets.
- L’interface propose une forme d’accès aux données qui n’est pas nécessairement représentative de leur structure interne.
- Cette structure interne peut donc être modifiée tout en conservant à l’identique l’interface.
Fonctionnalités
Fonctionnalités
- On distingue deux types de méthodes en Python :
- les méthodes normales (qui correspondent aux fonctions de la programmation fonctionnelle) ;
- et les méthodes spéciales (qui se distinguent par leur nommage entouré d’underscores =).
- Ces dernières permettent d’étendre les fonctionnalités des objets en leur conférant des caractéristiques particulières (cf. ).
- L’implémentation de la méthode spéciale va nous permettre de connaître la longueur d’un objet.
- Les méthodes spéciales nous permettent également d’implémenter des comparaisons entre objets, sous réserve de définir les méthodes correspondantes.
- Cela implique l’implémentation des méthodes spéciales (pour lesser than, soit « plus petit que ») et (pour lesser or equal, soit « plus petit que ou égal à »).