Je connais les bases de ces méthodes, procédures, fonctions et classes, mais j’ai toujours du mal à faire la différence entre ceux qui sont en opposition à la programmation orientée object;
Une classe , dans la POO actuelle et conventionnelle, est un dataset (variables membres) liées aux fonctions / procédures qui travaillent sur ces données (fonctions membres ou méthodes). La classe n’a aucun lien avec les trois autres termes, mis à part le fait qu’elle “contient” (plus exactement “est associée à”) ce dernier.
Les trois autres termes … bien, ça dépend.
Une fonction est un ensemble d’instructions informatiques. Ainsi est une procédure . Cependant, dans certains langages rétentifs très anaux, une fonction renvoie une valeur et une procédure ne le fait pas. Dans de tels langages, les procédures sont généralement utilisées pour leurs effets secondaires (comme les E / S), tandis que les fonctions sont utilisées pour les calculs et ont tendance à éviter les effets secondaires. (C’est l’utilisation que j’ai tendance à privilégier. Oui, je suis cette rétentive anale.)
Cependant, la plupart des langues ne sont pas aussi rétives que l’animal et, par conséquent, les termes “fonction” et “procédure” seront utilisés indifféremment, préférant les uns aux autres en fonction de leurs antécédents. (Les programmeurs Modula- * auront tendance à utiliser “procédure” tandis que C / C ++ / Java / tout ce qui tendra à utiliser “fonction”, par exemple.)
Une méthode n’est qu’un jargon pour une fonction (ou procédure) liée à une classe. En effet, toutes les langues POO n’utilisent pas le terme “méthode”. Dans une implémentation typique (mais pas universelle!), Les méthodes ont un premier paramètre implicite (appelé choses comme this
ou self
ou similaire) pour accéder à la classe contenue. Ce n’est pas, comme je l’ai dit, universel. Certaines langues rendent ce premier paramètre explicite (et permettent donc de nommer ce que vous voulez), alors que dans d’autres encore, il n’y a pas de premier paramètre magique.
Édité pour append cet exemple:
Le code de type C ++ non testé et non compilé suivant doit vous montrer le type de choses impliquées.
class MyClass { int memberVariable; void setMemberVariableProcedure(int v) { memberVariable = v; } int getMemberVariableFunction() { return memberVariable; } }; void plainOldProcedure(int stuff) { cout << stuff; } int plainOldFunction(int stuff) { return 2 * stuff; }
Dans ce code, getMemberVariableProcedure
et getMemberVariableFunction
sont les deux méthodes.
Les procédures, fonctions et méthodes sont généralement similaires, elles contiennent certaines instructions de traitement.
Les seules différences que je peux penser entre ces trois et les lieux où ils sont utilisés.
Je veux dire par “méthode” sont généralement utilisés pour définir des fonctions dans une classe, où plusieurs types de droits d’access utilisateur tels que public, protected, private peuvent être définis.
Les “procédures” sont également fonctionnelles, mais elles représentent généralement une série de fonctions devant être remplies à la fin d’une fonction ou parallèlement à une autre.
Les classes sont un ensemble d’atsortingbuts et de méthodes associés. Les atsortingbuts définissent l’object de la classe où les méthodes sont l’action effectuée par ou sur la classe.
J’espère que c’était utile