« Programmation Python/Programmation orientée objet pour les non-programmeurs » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
OlivierWeb (discussion | contributions)
→‎Le concept objet : orthographe, grammaire
Ligne 54 : Ligne 54 :
</pre>
</pre>
}}
}}
===Polymorphisme===
==='''Polymorphisme'''===

Version du 28 avril 2007 à 15:37

La programmation orienté objet

Le concept objet

Dans les environnements de développement informatique, il a fallu attendre assez longtemps pour voir émerger le concept de l'objet. Son apparition a permis la création de systèmes beaucoup plus complexes mais aussi très empreint de mimétisme. En effet, dans notre monde réel, nous somme tous entourés d'objet qui ont très souvent deux critères d'appréciation.

Le critère descriptif

Ce premier est universel, il contient toutes les caractéristiques qui décrivent l'objet. Nous prendrons comme exemple un dé, si nous avions à le décrire, nous dirions qu'il possède 6 faces avec des chiffres allant de 1 à 6 sur chacune d'elles, il est (souvent) de couleur rouge et de petite taille. Il serait possible de le décrire plus précisément, mais en réalité, indiquer qu'il est fait de bois, que les nombres sont représenter par une quantité de point qui leur est égal, qu'il dispose de coin arrondi... n'aurait pas été plus éloquent.

Le critère d'interaction

Le deuxième critère est celui d'interaction, il indique l'utilité de l'objet, les possibilités qu'il vous offre. Pour le dé nous pourrions indiquer que celui-ci peut rouler, mais ce n'est pas son rôle. De même, dans certaines circonstance, celui-ci peu vous servir de cale, mais ici encore, nous nous éloignons du sujet. Objectivement, le dé a pour rôle de donner un nombre compris entre son minimum et son maximum (inclus) au hasard. D'ailleurs, on peut ajouter que cela arrive après l'avoir lancé.

l'héritage et l'implémentation

Ici, nous avons décrit un objet, et il nous suffit de faire de même en informatique. Mais nous pourrions approfondir la description en indiquant aussi que le dé est en fait dérivé d'un objet de base : le cube. Ainsi nous pourrions dire que le dé :

  • est un cube.
  • est de couleur rouge.
  • peut être lancé pour renvoyer un nombre compris entre 1 et 6 (le nombre de face qui le compose).

puis expliquer que le cube :

  • est un volume géométrique à trois dimensions.
  • est constitué de 6 carrés.

puis bien sûr qu'un carré :

  • est une figure géométrique a deux dimensions.


Et nous pourrions continuer précisant le terme dimensions mais dans notre cas ce n'est pas utile. Nous pouvons ainsi établir le schémas suivant : le dé hérite des caractéristiques du cube (c'est un cube). Mais on ne peut pas dire que le cube hérite des caractéristiques du carré. En effet, on indique bien qu'il est constitué de mais pas qu'il est et c'est la toute la différence, vous êtes constitué de deux bras musclés mais vous n'êtes pas deux bras musclés (sauf si vous êtes déménageur... c'est une blague bien entendu, les déménageurs sont suffisamment allègre pour ne pas lancer un avis de recherche sur ma tête )! Nous dirons donc que :

  • l'objet cube implémente l'objet surface carré
  • l'objet dès hérite de l'objet cube

Classes et objets

class MaClasse:
	# définir ici les méthodes
Exemple 1 : Exemple de classe


Constructeur, destructeur

class Complexe:
	def __init__(self, r, i):
		self.reel = r
		self.img = i
Exemple 2 : Classe avec constructeur


Encapsulation des données

Héritage

class Triangle(FormeGeometrique):
	def __init__(self):
		# Création d'un triangle
Exemple 4 : Classe héritant d'une autre

Polymorphisme