2011-06-19 2 views
3

Mon livre a posé la question: "Quelle est la différence entre les objets et les fonctions?"Est-ce que les objets reçoivent et retournent des valeurs?

La clé de réponse indique que les fonctions sont des ensembles d'instructions référencées par nom qui reçoivent et renvoient des valeurs. Il dit que les objets peuvent avoir plusieurs fonctions, appelées méthodes; et plusieurs variables, appelées propriétés; tous combinés dans une seule unité. Malheureusement, le livre ne dit pas si les objets reçoivent ou renvoient des valeurs ... Alors, n'est-ce pas? J'essaie de trouver un exemple.

+0

Remis en question pour une bonne question débutant et une réponse. Bien que vous ayez déjà accepté une réponse à cette question, j'ai l'impression que les réponses n'ont pas fourni une pleine portée pour comprendre les objets - si vous avez des questions, demandez, et la communauté va essayer de vous aider. –

Répondre

4

Oui, un objet peut être configuré pour être appelé. Mais toutes les langues ne supportent pas un tel concept, et ce n'est pas la norme.

J'ai jeté un coup d'oeil à quelques-unes des autres questions que vous avez posées récemment. Notez que vous ne pouvez pas faire:

Foo(); 

Cela ne fait pas de sens puisque Foo est une classe dans cet exemple. Gardez à l'esprit que le terme "objet" fait référence à une instance spécifique (par exemple new Foo()) d'une "classe".

+0

Quels sont les langages qui ne supportent pas cela? –

1

Les méthodes d'un objet sont des fonctions et, pour la plupart, fonctionnent comme des fonctions normales. Les différences sont que les méthodes ont des visibilités différentes et ont accès aux propriétés de leurs objets sans avoir à les faire passer.

+0

Je suis désolé, mais je ne comprends pas ce que vous entendez par visibilité (peut-être que vous voulez dire portée) ... En outre, la question ne concerne pas vraiment les méthodes ayant des valeurs de retour, mais plus sur les objets eux-mêmes. Merci pour votre réponse, cependant. –

+1

@Fohsap: La visibilité se réfère à la capacité d'un membre à accéder, tandis que la portée fait référence à la capacité d'un bloc de code à accéder à un membre, bien que la plupart des gens disent simplement "portée". * Par exemple: la variable n'est pas dans ** scope ** (la variable n'est pas ** visible ** de la portée actuelle) * – netcoder

+0

Ok, donc il semble y avoir plusieurs façons de différencier les objets et les fonctions. Merci, datasage et netcoder. –

Questions connexes