Question

Quelqu'un peut-il fournir une explication simple de méthodes contre. les fonctions dans un contexte POO ?

Était-ce utile?

La solution

Une fonction est un morceau de code appelé par son nom. Il est possible de transmettre des données à utiliser (c’est-à-dire les paramètres) et éventuellement de renvoyer des données (la valeur de retour). Toutes les données transmises à une fonction sont explicitement transmises.

Une méthode est un morceau de code appelé par un nom associé à un objet. Dans la plupart des cas, cette fonction est identique à une fonction à l’exception de deux différences essentielles:

  1. Une méthode est implicitement transmise à l'objet sur lequel elle a été appelée.
  2. Une méthode peut agir sur les données contenues dans la classe (en se rappelant qu'un objet est une instance d'une classe - la classe est la définition, l'objet est une instance de cette donnée).

(Ceci est une explication simplifiée, ignorant les problèmes de scope , etc.)

Autres conseils

Une méthode est sur un objet.
Une fonction est indépendante d'un objet.

Pour Java, il n'y a que des méthodes.
Pour C, il n’existe que des fonctions.

Pour C ++, cela dépend de si vous êtes ou non dans une classe.

'méthode' est le mot orienté objet pour 'fonction' . C'est à peu près tout ce qu'il y a à faire (c'est-à-dire aucune différence réelle).

Malheureusement, je pense que beaucoup de réponses ici perpétuent ou avancent l'idée qu'il existe une différence complexe et significative.

Vraiment, il n’ya pas grand-chose à faire, mais des mots différents pour la même chose.

[ajout tardif]

En fait, Brian Neal a indiqué dans un commentaire à cette question , le C ++ standard n'utilise jamais le terme 'méthode' lorsqu'il se réfère à des fonctions membres. Certaines personnes peuvent considérer cela comme une indication que C ++ n'est pas vraiment un langage orienté objet. Cependant, je préfère considérer cela comme un indice qu'un groupe assez intelligent de personnes ne pensait pas qu'il y avait une raison particulièrement forte d'utiliser un terme différent.

En général: les méthodes sont des fonctions qui appartiennent à une classe, les fonctions peuvent figurer sur n’importe quelle autre portée du code afin que vous puissiez indiquer que toutes les méthodes sont des fonctions, mais que toutes les fonctions ne sont pas des méthodes:

Prenons l'exemple python suivant:

class Door:
  def open(self):
    print 'hello stranger'

def knock_door:
  a_door = Door()
  Door.open(a_door)

knock_door()

L'exemple donné vous montre une classe appelée & "Porte &"; qui a une méthode ou une action appelée & "open &" ;, on l’appelle méthode car elle a été déclarée à l’intérieur d’une classe. Il y a une autre portion de code avec & Quot; def & Quot; juste en dessous de ce qui définit une fonction, c’est une fonction car elle n’est pas déclarée dans une classe, cette fonction appelle la méthode que nous avons définie dans notre classe comme vous pouvez le voir et la fonction est finalement appelée par elle-même.

Comme vous pouvez le constater, vous pouvez appeler une fonction n’importe où, mais si vous souhaitez appeler une méthode, vous devez soit passer un nouvel objet du même type que la classe, la méthode est déclarée (Class.method (objet)) ou vous-même. invoquer la méthode à l'intérieur de l'objet (object.Method ()), au moins en python.

Pensez aux méthodes comme ne pouvant être accomplies que par une seule entité. Ainsi, si vous avez une classe Dog, il serait logique d’avoir une fonction aboiement uniquement dans cette classe et ce serait une méthode. Si vous avez également une classe Person, elle pourrait: logique d’écrire une fonction & "; alimenter &"; car cela n’appartient à aucune classe, tant les humains que les chiens peuvent être nourris et vous pouvez appeler cela une fonction, car elle n’appartient à aucune classe en particulier.

Définition très générale de la principale différence entre une fonction et une méthode :

  

Les fonctions sont définies en dehors des classes, tandis que les méthodes sont définies à l'intérieur des classes et en font partie.

Un moyen simple de se souvenir:

  • F onction & # 8594; F ree (Free signifie ne pas appartenir à un objet ou à une classe)
  • M ethod & # 8594; M ember (membre d'un objet ou d'une classe)

Si vous avez envie de lire, voici "Mon introduction aux méthodes OO"

L'idée derrière le paradigme orienté objet est de « menacer » le logiciel qui est composé de ..enfin "objets".Les objets du monde réel ont des propriétés, par exemple si vous avez un employé, l'employé a un nom, un identifiant d'employé, un poste, il appartient à un service, etc.etc.

L'objet sait également comment gérer ses attributs et effectuer certaines opérations sur eux.Disons que si nous voulons savoir ce que fait un employé en ce moment, nous lui demanderions.

employe whatAreYouDoing.

Ce "whatAreYouDoing" est un "message" envoyé à l'objet.L'objet sait répondre à ces questions, on dit qu'il possède une "méthode" pour résoudre la question.

Ainsi, la manière dont les objets doivent exposer leur comportement est appelée méthodes.Les méthodes sont donc l'objet artefact qui doit "faire" quelque chose.

D'autres méthodes possibles sont

employee whatIsYourName
employee whatIsYourDepartmentsName

etc.

Les fonctions, quant à elles, sont des moyens par lesquels un langage de programmation doit calculer certaines données, par exemple vous pourriez avoir la fonction addValues( 8 , 8 ) qui renvoie 16

// pseudo-code
function addValues( int x, int y )  return x + y 
// call it 
result = addValues( 8,8 )
print result // output is 16...

Étant donné que les premiers langages de programmation populaires (tels que fortran, c, pascal) ne couvraient pas le paradigme OO, ils n'appelaient que des « fonctions » à ces artefacts.

par exemple la fonction précédente en C serait :

int addValues( int x, int y ) 
{
   return x + y;
}

Il n'est pas "naturel" de dire qu'un objet a une "fonction" pour effectuer une action, car les fonctions sont davantage liées à des éléments mathématiques alors qu'un employé a peu de mathématiques dessus, mais vous pouvez avoir des méthodes qui font exactement la même chose que les fonctions, par exemple en Java, ce serait la fonction addValues ​​équivalente.

public static int addValues( int x, int y ) {
    return x + y;
}

Cela vous semble familier ?C'est parce que Java a ses racines en C++ et C++ en C.

En fin de compte, ce n'est qu'un concept, dans la mise en œuvre, ils peuvent se ressembler, mais dans la documentation OO, ils sont appelés méthode.

Voici un exemple de l'ancien objet Employee en Java.

public class Employee {

    Department department;
    String name;

    public String whatsYourName(){
        return this.name;
    }
    public String whatsYourDeparmentsName(){
         return this.department.name();
    }
    public String whatAreYouDoing(){
        return "nothing";
    } 
    // Ignore the following, only set here for completness
    public Employee( String name ) {
        this.name = name;
    }

}

// Usage sample.
Employee employee = new Employee( "John" ); // Creates an employee called John

// If I want to display what is this employee doing I could use its methods.
// to know it.
String name = employee.whatIsYourName():
String doingWhat = employee.whatAreYouDoint();

// Print the info to the console.

 System.out.printf("Employee %s is doing: %s", name, doingWhat );

Output:
Employee John is doing nothing.

La différence réside donc dans le « domaine » où il est appliqué.

AppleScript a l'idée de la matphore du "langage naturel", qu'OO avait eu à un moment donné.Par exemple Smalltalk.J'espère qu'il vous sera raisonnablement plus facile de comprendre les méthodes des objets après avoir lu ceci.

NOTE:Le code n'est pas à compiler, juste à titre d'exemple.N'hésitez pas à modifier le message et à ajouter un exemple Python.

Dans le monde OO, les deux sont couramment utilisés pour signifier la même chose.

Du point de vue purement mathématique et mathématique, une fonction renvoie toujours le même résultat lorsqu'elle est appelée avec les mêmes arguments (f (x, y) = (x + y)). En revanche, une méthode est généralement associée à une instance d’une classe. Encore une fois cependant, la plupart des langages OO modernes n'utilisent plus le terme & Quot; fonction & Quot; pour la plupart. De nombreuses méthodes statiques peuvent ressembler beaucoup à des fonctions, car elles n'ont généralement pas d'état (pas toujours vrai).

Supposons qu'une fonction est un bloc de code (généralement avec sa propre portée et parfois avec sa propre fermeture) pouvant recevoir des arguments et pouvant également renvoyer un résultat.

Une méthode est une fonction qui appartient à un objet (dans certains systèmes orientés objet, il est plus correct de dire qu'elle appartient à une classe). Etre & Quot; possédé & Quot; par un objet / une classe signifie que vous faites référence à la méthode à travers l'objet / la classe; Par exemple, en Java si vous souhaitez invoquer une méthode " open () " appartenant à un objet " porte " vous devez écrire & "door.open () &" ;.

Habituellement, les méthodes obtiennent également des attributs supplémentaires décrivant leur comportement au sein de l'objet / de la classe, par exemple: visibilité (liée au concept d'encapsulation orienté objet) qui définit à partir de quels objets (ou classes) la méthode peut être appelée.

Dans de nombreux langages orientés objet, toutes les " fonctions " appartenir à un objet (ou une classe) et ainsi dans ces langages il n'y a pas de fonctions qui ne sont pas des méthodes.

Les méthodes sont des fonctions de classes. Dans le jargon normal, les gens échangent méthode et fonction partout. En gros, vous pouvez les considérer comme la même chose (vous ne savez pas si les fonctions globales sont appelées méthodes).

http://en.wikipedia.org/wiki/Method_(computer_science)

Une fonction est un concept mathématique. Par exemple:

f(x,y) = sin(x) + cos(y)

dit que la fonction f () retournera le péché du premier paramètre ajouté au cosinus du deuxième paramètre. C'est juste des maths. En l'occurrence, sin () et cos () sont également des fonctions. Une fonction a une autre propriété: tous les appels à une fonction avec les mêmes paramètres doivent renvoyer le même résultat.

Une méthode, en revanche, est une fonction liée à un objet dans un langage orienté objet. Il possède un paramètre implicite: l'objet sur lequel on agit (et son état).

Ainsi, si vous avez un objet Z avec une méthode g (x), vous pourriez voir ce qui suit:

Z.g(x) = sin(x) + cos(Z.y)

Dans ce cas, le paramètre x est transmis, comme dans l'exemple de fonction précédent. Cependant, le paramètre de cos () est une valeur qui réside à l'intérieur de l'objet Z. Z et les données qui s'y trouvent (Z.y) sont des paramètres implicites de la méthode g () de Z.

Une fonction ou une méthode est un morceau de code appelé, appelé, qui effectue certaines opérations et renvoie éventuellement une valeur.

Dans le langage C , le terme fonction est utilisé. Java & C # les gens diraient qu’il s’agit d’une méthode (et une fonction dans ce cas est définie dans une classe / un objet).

Un programmeur C ++ pourrait l'appeler une fonction ou parfois une méthode (selon qu'ils écrivent du code de style procédural c ++ ou qu'ils utilisent un mode C ++ orienté objet. Un programmeur C / C ++ uniquement appelez-la une fonction parce que le terme 'méthode' est moins utilisé dans la littérature C / C ++).

Vous utilisez une fonction simplement en appelant son nom, par exemple,

result = mySum(num1, num2);


Vous appelez une méthode en référençant d’abord son objet, par exemple,

result = MyCalc.mySum(num1,num2);

Historiquement, il pouvait y avoir une différence subtile avec une & "méthode &"; être quelque chose qui ne retourne pas une valeur, et une & "; fonction &"; Chaque langage a son propre lexique de termes avec une signification particulière.

Dans & "C &" , le mot & "fonction &"; signifie une routine de programme .

Sous Java , le terme & "fonction &"; n'a pas de signification particulière. Considérant que & "Méthode &"; désigne l’une des routines constituant l’implémentation d’une classe.

Dans C # , cela se traduirait par:

public void DoSomething() {} // method
public int DoSomethingAndReturnMeANumber(){} // function

Mais vraiment, je répète qu’il n’ya vraiment aucune différence entre les 2 concepts. Si vous utilisez le terme & Quot; fonction & Quot; dans les discussions informelles sur Java, les gens présumeront que vous vouliez dire & "méthode &"; et continue. Ne l'utilisez pas dans les documents ou les présentations appropriés sur Java, sinon vous aurez l'air ridicule.

Les méthodes sur une classe agissent sur l'instance de la classe, appelée l'objet.

class Example
{
   public int data = 0; // Each instance of Example holds its internal data. This is a "field", or "member variable".

   public void UpdateData() // .. and manipulates it (This is a method by the way)
   {
      data = data + 1;
   }

   public void PrintData() // This is also a method
   {
      Console.WriteLine(data);
   }
}

class Program
{
   public static void Main()
   {
       Example exampleObject1 = new Example();
       Example exampleObject2 = new Example();

       exampleObject1.UpdateData();
       exampleObject1.UpdateData();

       exampleObject2.UpdateData();

       exampleObject1.PrintData(); // Prints "2"
       exampleObject2.PrintData(); // Prints "1"
   }
}

Dans les langages OO tels que Object Pascal ou C ++, une " méthode " est une fonction associée à un objet. Ainsi, par exemple, un & Quot; Chien & Quot; l'objet peut avoir un " aboiement " fonction et cela serait considéré comme une & "méthode &"; En revanche, le & Quot; StrLen & Quot; la fonction est autonome (elle fournit la longueur d'une chaîne fournie en argument). C'est donc juste une & "Fonction. &"; Le langage Javascript est également techniquement orienté objet, mais rencontre de nombreuses limitations par rapport à un langage complet comme C ++, C # ou Pascal. Néanmoins, la distinction devrait encore rester.

Quelques faits supplémentaires: C # est entièrement orienté objet, vous ne pouvez donc pas créer de fonctions & "; autonomes. &"; En C #, chaque fonction est liée à un objet et est donc techniquement une & "Méthode. &"; Le kicker est que peu de gens en C # se réfèrent à eux par & "Méthodes &"; - ils utilisent simplement le terme " fonctions " car il n’ya pas vraiment de distinction à faire.

Enfin - pour que les gourous de Pascal ne me sautent pas dessus - Pascal fait également la différence entre & "; fonctions &"; (qui retournent une valeur) et " procédures " qui ne le font pas. C # ne fait pas cette distinction de manière explicite, bien que vous puissiez, bien sûr, choisir de renvoyer une valeur ou non.

Puisque vous avez mentionné Python, les éléments suivants pourraient illustrer utilement la relation entre méthodes et objets dans les langages orientés objet les plus modernes. En bref, ce qu’ils appellent une & "Méthode &"; est juste une fonction qui reçoit un argument supplémentaire (comme d'autres réponses l'ont souligné), mais Python le rend plus explicite que la plupart des langages.

# perfectly normal function
def hello(greetee):
  print "Hello", greetee

# generalise a bit (still a function though)
def greet(greeting, greetee):
  print greeting, greetee

# hide the greeting behind a layer of abstraction (still a function!)
def greet_with_greeter(greeter, greetee):
  print greeter.greeting, greetee

# very simple class we can pass to greet_with_greeter
class Greeter(object):
  def __init__(self, greeting):
    self.greeting = greeting

  # while we're at it, here's a method that uses self.greeting...
  def greet(self, greetee):
    print self.greeting, greetee

# save an object of class Greeter for later
hello_greeter = Greeter("Hello")

# now all of the following print the same message
hello("World")
greet("Hello", "World")
greet_with_greeter(hello_greeter, "World")
hello_greeter.greet("World")

Comparons maintenant la fonction greet_with_greeter et la méthode greet: la seule différence est le nom du premier paramètre (dans la fonction que je l'appelais & "; greeter &" ;, dans la méthode I appelé & "; soi &";). Je peux donc utiliser la méthode greet2 exactement de la même manière que la fonction object.method(args) (en utilisant la syntaxe & Quot; dot &, Quot; pour l'obtenir, puisque je l'ai définie dans une classe) :

Greeter.greet(hello_greeter, "World")

J'ai donc efficacement transformé une méthode en une fonction. Puis-je transformer une fonction en une méthode? Eh bien, comme Python vous permet de jouer avec les classes une fois qu’elles sont définies, essayons:

Greeter.greet2 = greet_with_greeter
hello_greeter.greet2("World")

Oui, la fonction method(object, args) est maintenant appelée méthode <=>. Cela montre la seule différence réelle entre une méthode et une fonction: lorsque vous appelez une méthode & "On &"; un objet en appelant <=>, le langage le transforme comme par magie en <=>.

(Les puristes d'OO pourraient soutenir qu'une méthode est différente de la fonction. Si vous entrez dans les langages avancés Python ou Ruby, ou Smalltalk!, vous commencerez à comprendre ce qu'ils veulent. Certains langages donnent aussi aux méthodes un accès spécial mais la différence conceptuelle principale reste le paramètre supplémentaire caché.)

La fonction est un ensemble de logique pouvant être utilisée pour manipuler des données.

While, Method est une fonction utilisée pour manipuler les données de l'objet auquel il appartient. Donc techniquement, si vous avez une fonction qui n'est pas complètement liée à votre classe mais qui a été déclarée dans la classe, ce n'est pas une méthode; C'est ce qu'on appelle un mauvais design.

pour moi: la fonction d'une méthode et d'une fonction est la même si je conviens que:

  • une fonction peut renvoyer une valeur
  • peut attendre des paramètres

Tout comme n'importe quel morceau de code, vous pouvez avoir des objets que vous avez insérés et vous pouvez avoir un objet qui en résulte. Pendant ce temps, ils pourraient changer l’état d’un objet mais cela ne changerait pas leur fonctionnement de base pour moi.

Il peut exister une définition différente dans les fonctions d’appel d’objets ou d’autres codes. Mais n’est-ce pas une différence verbale et c’est pourquoi les gens les échangent? Les exemples de calcul que je ferais attention avec. parce que j'engage des employés pour faire mes calculs:

new Employer().calculateSum( 8, 8 );

En procédant ainsi, je peux compter sur un employeur pour effectuer les calculs. S'il veut plus d'argent, je le libère et laisse la tâche du récupérateur de carbage d'éliminer les employés inutilisés faire le reste et obtenir un nouvel employé.

Même en arguant qu'une méthode est une fonction d'objets et qu'une fonction est non connectée, le calcul ne m'aidera pas. Le descripteur de fonction lui-même et, idéalement, la documentation de la fonction me diront ce dont il a besoin et ce qu’elle peut renvoyer. Le reste, comme manipuler l'état d'un objet n'est pas vraiment transparent pour moi. Je m'attends à ce que les fonctions et les méthodes fournissent et manipulent ce qu'elles prétendent sans avoir besoin de savoir en détail comment elles le font. Même une simple fonction de calcul peut changer l’état de la console ou l’ajouter à un fichier journal.

D'après ce que j'ai compris, une méthode est une opération pouvant être effectuée sur une classe. C'est un terme général utilisé en programmation.

Dans de nombreux langages, les méthodes sont représentées par des fonctions et des sous-programmes. La principale distinction que la plupart des langues utilisent pour ces fonctions est que les fonctions peuvent renvoyer une valeur à l'appelant et qu'un sous-programme ne peut pas. Cependant, de nombreuses langues modernes n’ont que des fonctions, mais celles-ci ne peuvent éventuellement renvoyer aucune valeur.

Par exemple, supposons que vous souhaitiez décrire un chat et que vous souhaitiez que celui-ci soit capable de bâiller. Vous créeriez une classe Cat, avec une méthode Yawn, qui serait probablement une fonction sans valeur de retour.

Pour une approximation de premier ordre, une méthode (en style C ++, OO) est un autre mot pour une fonction membre, c'est-à-dire une fonction faisant partie d'une classe.

Dans des langages tels que C / C ++, vous pouvez avoir des fonctions qui ne sont pas membres d'une classe; vous n'appelez pas une fonction non associée à une classe une méthode.

Les gens de IMHO voulaient juste inventer un nouveau mot pour faciliter la communication entre les programmeurs quand ils voulaient se référer à des fonctions à l'intérieur d'objets.

Si vous dites des méthodes, vous voulez dire des fonctions dans la classe. Si vous dites fonctions, vous entendez simplement des fonctions extérieures à la classe.

La vérité est que les deux mots sont utilisés pour décrire des fonctions. Même si vous l'avez utilisé à tort, rien ne se passe mal. Les deux mots décrivent bien ce que vous voulez réaliser dans votre code.

Function est un code qui doit jouer un rôle ( une fonction ) pour faire quelque chose. La méthode est une méthode pour résoudre le problème.

Il fait la même chose. C'est la même chose. Si vous voulez être très précis et vous conformer à la convention, vous pouvez appeler des méthodes en tant que fonctions à l'intérieur d'objets.

La fonction est le concept qui appartient principalement à la programmation orientée procédure , dans laquelle une fonction est une entité capable de traiter des données et de vous renvoyer une valeur

. La

méthode est le concept de programmation orientée objet dans laquelle une méthode est membre d'une classe et effectue principalement le traitement de ses membres.

Ne compliquons pas trop ce qui devrait être une réponse très simple. Méthodes et fonctions sont la même chose. Vous appelez une fonction une fonction lorsqu'elle se trouve en dehors d'une classe et vous appelez une fonction une méthode lorsqu'elle est écrite à l'intérieur d'une classe.

Je ne suis pas un expert, mais voici ce que je sais:

  1. Fonction est un terme du langage C, il fait référence à un morceau de code et le nom de la fonction sera l'identifiant pour utiliser cette fonction.

  2. La méthode est le terme OO. Elle comporte généralement un pointeur this dans le paramètre function. Vous ne pouvez pas appeler ce morceau de code comme le C, vous devez utiliser un objet pour l’appeler.

  3. Les méthodes d'invocation sont également différentes. Ici, invoquez le sens pour trouver l'adresse de ce morceau de code. C / C ++, le temps de liaison utilisera le symbole de fonction pour localiser.

  4. Objecive-C est différent. Invoke signifie une fonction C qui utilise la structure de données pour trouver l’adresse. Cela signifie que tout est connu au moment de l'exécution.

Je sais que beaucoup d’autres ont déjà répondu, mais j’ai trouvé ce qui suit est une réponse simple, mais efficace, à une ligne. Bien que cela ne semble pas beaucoup mieux que les autres réponses ici, mais si vous le lisez attentivement, il a tout ce que vous devez savoir sur la méthode vs fonction.

Une méthode est une fonction qui a un récepteur défini. En termes de POO, une méthode est une fonction sur une instance d'un objet.

Différence entre les méthodes et les fonctions

De la lecture ce doc sur Microsoft

  

Les membres contenant du code exécutable sont collectivement appelés membres de fonction d'une classe. La section précédente décrit les méthodes, qui constituent le type principal de membres de fonction. Cette section décrit les autres types de membres de fonction pris en charge par C #: constructeurs, propriétés, indexeurs, événements, opérateurs et finaliseurs.

Les méthodes sont donc le sous-ensemble des fonctions. Chaque méthode est une fonction, mais toutes les fonctions ne sont pas une méthode. Par exemple, un constructor ne peut pas être défini comme une méthode , mais il s'agit d'une fonction.

Voici quelques explications sur la méthode et la fonction à l'aide d'exemples JavaScript:

test(20, 50); est une fonction définie et utilisée pour exécuter certaines étapes ou renvoyer quelque chose en retour pouvant être stocké / utilisé quelque part.

  

Vous pouvez réutiliser le code: définissez le code une fois et utilisez-le plusieurs fois.

     

Vous pouvez utiliser le même code plusieurs fois avec des arguments différents pour produire des résultats différents.

var x = myFunction(4, 3);   // Function is called, return value will end up in x

function myFunction(a, b) {
    return a * b;          // Function returns the product of a and b
}

var test = something.test(); ici test () peut être une méthode pour un objet ou un prototype défini par un utilisateur pour les objets intégrés, voici une explication supplémentaire:

  

Les méthodes JavaScript sont les actions pouvant être effectuées sur des objets.

     

Une méthode JavaScript est une propriété contenant une définition de fonction.

Propriété / méthode intégrée pour les chaînes en javascript:

var message = "Hello world!";
var x = message.toUpperCase();
//Output: HELLO WORLD!

Exemple personnalisé:

function person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

something.changeName("SomeName"); //This will change 'something' objject's name to 'SomeName'

Vous pouvez également définir des propriétés pour String, Array, etc.

String.prototype.distance = function (char) {
    var index = this.indexOf(char);

    if (index === -1) {
        console.log(char + " does not appear in " + this);
    } else {
        console.log(char + " is " + (this.length - index) + " characters from the end of the string!");
    }
};

var something = "ThisIsSomeString"

// now use distance like this, run and check console log

something.distance("m");

Quelques références: méthode d'objet Javascript , Fonctions , Plus d'informations sur le prototype

Fonction - Une fonction dans un élément de code indépendant qui inclut une logique et doit être appelée indépendamment et est définie en dehors de la classe.

Méthode - Une méthode est un élément de code indépendant appelé en référence à un objet et défini dans la classe.

En C ++, parfois, méthode est utilisée pour refléter la notion de fonction membre d'une classe. Cependant, récemment, j'ai trouvé une déclaration dans le livre & N ° 171; Langage de programmation C ++, quatrième édition & N ° 187 ;, à la page 586 & "Cours dérivés &";

  

Une fonction virtuelle est parfois appelée une méthode.

Ceci est un peu déroutant, mais il a dit parfois que cela a donc du sens, le créateur de C ++ a tendance à voir les méthodes car les fonctions peuvent être invoquées sur des objets et peuvent se comporter de manière polymorphe.

Une classe est la collecte de certaines données et fonctions éventuellement avec un constructeur.

Lors de la création d'une instance (copie, réplication) de cette classe particulière, le constructeur initialise la classe et renvoie un objet.

Maintenant la classe devient objet (sans constructeur) & amp; Les fonctions sont connues sous le nom de méthode dans le contexte de l'objet.

Donc en gros

Classe < == nouveau == > objet

Fonction < == nouveau == > Méthode

En Java, il est généralement indiqué que le nom du constructeur est identique au nom de la classe, mais en réalité, ce constructeur ressemble au bloc d'instance et au bloc statique, mais avec un utilisateur qui définit le type de retour (c'est-à-dire le type de classe)

Alors que la classe peut avoir un bloc statique, un bloc d'instance, un constructeur, une fonction L'objet n'a généralement que des données & Amp; méthode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top