En codage, quelles sont les différences entre les méthodes et les fonctions
Publié: 2018-09-21Terminologie du codage
En programmation, il y a beaucoup de termes différents qui sont utilisés pour décrire exactement la même chose et il y a aussi des termes qui semblent faire référence à la même chose mais qui ne le font pas. Pour le rendre encore plus confus. Certains termes sont utilisés différemment selon le type de langue dont vous parlez ou même lorsque vous passez d'une langue à une autre langue du même type. Ainsi, certains termes comme «méthode», «fonction», «interface» ou «classe abstraite» peuvent être très déroutants pour certaines personnes car ils peuvent signifier une chose dans un contexte mais une chose complètement différente dans un autre.
Présentation des méthodes POO
Une méthode est essentiellement une procédure étape par étape qui est mise en œuvre sur un objet désigné. Les méthodes ne sont utilisées que dans les langages de programmation orientés objet comme C++. Essentiellement, une méthode peut soit modifier les caractéristiques de l'objet qui est passé par la méthode, soit la méthode peut effectuer une certaine procédure basée sur les caractéristiques préexistantes de l'objet qui la traverse. Parfois, une méthode peut même exécuter du code qui n'affecte pas l'objet qui lui est transmis ou qui est modifié par les caractéristiques déjà existantes de l'objet. Mais c'est beaucoup moins courant et ce n'est pas une manière promue de gérer les méthodes.
Lire – Quel framework JavaScript choisir
Fonctions en codage procédural
Une fonction, en revanche, est un terme beaucoup plus générique qui fait référence à une procédure qui prend un certain nombre d'entrées et renvoie un certain nombre de valeurs. De manière confuse, une fonction et une méthode semblent faire la même chose ou se référer au même type de procédure lors de la programmation, mais ce n'est pas le cas. Les fonctions ne sont pas associées à des objets et sont utilisées dans pratiquement tous les langages de haut niveau qui ne sont pas orientés objet. Les méthodes, en revanche, ne sont associées qu'à des objets et le terme n'est utilisé que lorsqu'il s'agit d'objets ou lorsqu'une procédure se trouve dans une classe. Ainsi, les fonctions renvoient des valeurs basées sur les entrées données, tandis que les méthodes modifient les caractéristiques d'un objet ou renvoient des valeurs basées sur les caractéristiques préexistantes de l'objet.
Interfaces de codage et classes abstraites
Similaire à la confusion entre une fonction et une méthode. Il y a beaucoup de confusion entre les interfaces et les classes abstraites. Cependant, contrairement aux fonctions et aux méthodes, les interfaces et les classes abstraites ont beaucoup en commun et leurs caractéristiques sont faciles à confondre. Le moyen le plus simple de différencier les deux est de comprendre que les interfaces ne sont présentes que dans les langages de programmation orientés objet. Alors que les classes abstraites sont présentes dans presque tous les langages de haut niveau.
Interfaces en profondeur
Une interface est essentiellement une base que vous créez et qui tient compte de toutes les similitudes entre les classes. Alors, disons que vous voulez créer différents objets mais que ce sont tous des animaux. Donc, les humains, les singes et les chimpanzés. De toute évidence, ces trois animaux ont beaucoup en commun, et il serait judicieux de définir toutes ces similitudes, afin de vous assurer qu'elles sont toutes implémentées dans chaque classe. Par exemple, chacun a une tête, quatre membres, une bouche, un nez, une langue, etc.
Donc, dans l'interface, vous définissez ces caractéristiques et parce que vous les avez définies dans l'interface. Lorsque chaque classe implémente l'interface, elle doit définir et initialiser ces caractéristiques via les méthodes définies dans l'interface. Sinon, le code ne fonctionnera pas. La principale raison pour laquelle vous utiliseriez une interface au lieu d'une classe abstraite est que chaque animal a les mêmes caractéristiques. Mais chaque animal les met en œuvre différemment. Par exemple, tous les chimpanzés. Les humains et les singes ont un nez, mais leur largeur, leur longueur et leur utilisation peuvent toutes être légèrement différentes. Par conséquent, ces différences sont définies dans les classes individuelles. Mais le fait qu'ils aient un nez est défini dans l'interface.

Lire - Raisons pour lesquelles Laravel est le meilleur framework PHP en 2018
Comment utiliser les classes abstraites
Une classe abstraite est exactement comme une interface. Cependant, contrairement à une interface, les méthodes et les fonctions peuvent en fait être définies et initialisées, mais ce n'est pas obligatoire. De plus, au lieu que les classes implémentent des classes abstraites, elles font de la classe abstraite la superclasse. C'est en fait un inconvénient majeur pour les classes abstraites par rapport aux interfaces, car une classe peut implémenter autant d'interfaces qu'elle le souhaite, mais elle ne peut avoir qu'une seule superclasse, ce qui signifie qu'une classe ne peut utiliser qu'une seule classe abstraite mais plusieurs interfaces.
Les cours abstraits sont super. Cependant, s'il existe des caractéristiques identiques qui ont des manières identiques d'être mises en œuvre. Mais s'il y en a aussi qui ont des implémentations différentes selon les objets. Par exemple, si vous aviez deux classes, hommes et femmes, et que vous vouliez définir des similitudes entre les deux, il peut être préférable d'utiliser une classe abstraite. Pourquoi? Parce que certaines caractéristiques entre les sexes sont identiques et sont mises en œuvre exactement de la même manière. Par exemple, les bouches ont à peu près la même taille et servent le même but ; les yeux ont à peu près la même taille et fonctionnent de la même manière entre les sexes, etc.
Ainsi, pour ces caractéristiques, les fonctions ou méthodes les définissant peuvent être initialisées dans la classe abstraite. Cependant, certaines caractéristiques, comme les hanches ou les sourcils sont présentes chez les deux sexes. Mais ces caractéristiques sont très différentes entre les deux. Par conséquent, la classe abstraite n'initialisera pas les méthodes ou les fonctions définissant ces caractéristiques. Et laissera cela aux sous-classes.
Résumé
Espérons que ces explications n'étaient pas trop confuses ou verbeuses. Si vous débutez dans la programmation, ne vous inquiétez pas si vous êtes encore confus. Il existe de nombreuses ressources accessibles que vous pouvez utiliser pour comprendre les principes fondamentaux de la programmation et les différences subtiles entre certains termes.
Il est très important de le mentionner si vous souhaitez devenir programmeur professionnel. L'apprentissage des concepts procéduraux et de la programmation orientée objet (POO) est indispensable. En effet. De nombreux ingénieurs logiciels utilisent Unified Model Language pour mapper les exigences d'un projet ou d'une application sur des objets et des diagrammes avant de procéder au codage POO. Il existe de nombreuses ressources en ligne pour apprendre le génie logiciel. Pour les adolescents et les élèves du secondaire, High School Technology Services offre une variété de formations pratiques. Pour les adultes et les professionnels, l'institut Coding Bootcamps propose de nombreux cours de programmation de base à avancés axés à la fois sur le codage procédural et POO.
à propos de l'auteur
Matt Zand est programmeur, homme d'affaires, consultant en informatique et écrivain. Il est le fondateur et propriétaire du groupe WEG2G. Il est également le fondateur de DC Web Makers. Ses passe-temps sont la randonnée, le vélo, les activités de plein air, les voyages et l'alpinisme.