Méthode (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Méthode.

En programmation orientée objet, une méthode est une fonction d'une classe. Les méthodes peuvent être des méthodes d'instance, n'agissant que sur un seul objet à la fois, ou des méthodes de classe ou méthodes statiques, permettant d'agir sur tous les objets d'une même classe à la fois.

On utilise parfois en objet le terme spécifique d'invocation de méthode pour désigner l'appel d'une telle fonction.

Portée des méthodes[modifier | modifier le code]

Dans de nombreux langages, l'encapsulation permet de gérer et donc restreindre les droits d'accès à une méthode (ou à une donnée) membre: on parle de 'portée' de la méthode. On utilise assez souvent (comme en C++ ou en Java par exemple) les mots-clés public, private ou protected pour gérer ces droits d'accès:

  • les méthodes dites privées ne sont accessibles qu'en interne à l'objet, lui seul peut les mettre en œuvre; ces méthodes recouvrent généralement le fonctionnement interne de la classe que l'on veut masquer de l'extérieur
  • les méthodes 'protected' sont accessibles de tous les objets de la classe, mais d'aucune autre classe
  • Les méthodes dites 'publiques' sont les méthodes accessibles de l'extérieur de la classe, c'est-à-dire de tout objet; ce sont ces dernières qui constituent l'interface de la classe
  • Certains langages introduisent également les méthodes dites 'amies', qui listent alors explicitement les classes 'amies' qui peuvent les invoquer, permettant ainsi notamment d'accorder des droits spécifiques entre classes mères et filles

En principe, l'utilisation des méthodes publiques (et donc de son interface) d'un objet est le seul moyen pour accéder (indirectement) à l'état de l'objet. Mais certains langages permettent d'accéder directement à l'état d'un objet ou à une partie de cet état par la modification des contraintes d'accès aux données de l'objet.

Classification des méthodes[modifier | modifier le code]

Il existe différents types de méthodes :

  • le(s) constructeur(s) appelé(s) à la création de l'objet, soit :
    • le constructeur par défaut appelé par défaut lors de la création d'un objet, (offert par défaut lors de la compilation s'il y a pas de constructeur déclaré),
    • le constructeur par recopie (ou constructeur de copie) appelé lors de la création de l'objet, du passage d'un objet par référence,
    • le(s) constructeur(s) paramétrique appelé(s) si la signature correspond à celle du constructeur ;
  • le destructeur appelé à la suppression de l'objet, explicitement ou bien implicitement dans le cadre d'un langage à ramasse-miettes ;
  • les méthodes abstraites qui sont des méthodes sans code:
leur existence dans une classe suffit à déclarer qu'une classe est abstraite, et contraint à introduire des classes filles pour les implémenter et les exploiter;
  • les accesseurs (Get) et les manipulateurs (Set) :
    • les accesseurs permettent de récupérer la valeur de données membres privées sans y accéder directement de l'extérieur; ils sécurisent donc l'attribut en restreignant sa modification
    • les manipulateurs (ou mutateurs) permettent de changer l'état de données membres tout en vérifiant si la valeur que l'on veut donner à la donnée membre respecte les normes de celle-ci ou diverses règles de cohérence. Leur détournement pour modifier en cascade d'autres états du programme pouvant être source de bogues ou de perte de maintenabilité.