En programmation orientée objet (POO), une méthode est une procédure associée à un objet , et généralement aussi un message . Un objet est constitué de données d'état et d'un comportement ; ces éléments forment une interface qui spécifie comment l'objet peut être utilisé. Une méthode est un comportement d'un objet paramétré par l'utilisateur.
Les données sont représentées par des propriétés de l'objet, et les comportements par des méthodes. Par exemple, un Windowobjet peut avoir des méthodes telles que ouvrir et openfermer close, tandis que son état (ouvert ou fermé à un instant donné) est une propriété.
En programmation orientée objet , les méthodes sont définies au sein d'une classe , et les objets sont des instances de cette classe. L'une des fonctionnalités les plus importantes d'une méthode est la redéfinition : un même nom (par exemple, `method` area) peut être utilisé pour plusieurs types de classes différents. Cela permet aux objets émetteurs d'invoquer des comportements et de déléguer leur implémentation à l'objet récepteur. En Java , une méthode définit le comportement d'un objet de classe. Par exemple, un objet peut envoyer un message à un autre objet, et la formule appropriée est invoquée, que l'objet récepteur soit un objet de classe , un objet de classe, areaun objet de classe , etc.RectangleCircleTriangle
Les méthodes fournissent également l'interface que les autres classes utilisent pour accéder aux propriétés d'un objet et les modifier ; c'est ce qu'on appelle l'encapsulation . L'encapsulation et la redéfinition sont les deux principales caractéristiques qui distinguent les méthodes des appels de procédure.
Surcharge et remplacement
La redéfinition et la surcharge de méthodes sont deux des principales différences entre une méthode et une procédure ou un appel de fonction classique. La redéfinition consiste pour une sous-classe à redéfinir l'implémentation d'une méthode de sa superclasse. Par exemple, findAreaune méthode définie sur une classe de forme Triangle , etc., définirait la formule appropriée pour calculer son aire. L'idée est de considérer les objets comme des « boîtes noires » afin que les modifications apportées à leur fonctionnement interne aient un impact minimal sur les autres objets qui les utilisent. Ce principe, appelé encapsulation, vise à faciliter la maintenance et la réutilisation du code.
La surcharge de méthodes, quant à elle, consiste à différencier le code utilisé pour traiter un message en fonction des paramètres de la méthode. Si l'on considère l'objet destinataire comme le premier paramètre de toute méthode, la redéfinition n'est qu'un cas particulier de surcharge où la sélection se base uniquement sur le premier argument.
Méthodes d'accès, de modification et de gestion
Les méthodes d'accès permettent de lire les valeurs d'un objet. Les méthodes de modification permettent de modifier les données d'un objet. Les méthodes de gestion permettent d'initialiser et de détruire les objets d'une classe, par exemple les constructeurs et les destructeurs.
Ces méthodes fournissent une couche d'abstraction qui facilite l'encapsulation et la modularité . Par exemple, si une classe de compte bancaire propose une méthode d'accès pour récupérer le soldegetBalance() actuel (plutôt que d'accéder directement aux champs de données du solde), les versions ultérieures de ce même code pourront implémenter un mécanisme plus complexe de récupération du solde (par exemple, une requête à une base de données ), sans qu'il soit nécessaire de modifier le code dépendant. Les concepts d'encapsulation et de modularité ne sont pas propres à la programmation orientée objet. En effet, à bien des égards, l'approche orientée objet n'est autre que le prolongement logique de paradigmes antérieurs tels que les types de données abstraits et la programmation structurée .