Quelle est la différence entre l'objet et de l'instance?
j'aimerais connaître la différence entre l'objet et l'instance de la classe. Je sens les deux sont les mêmes, mais pourquoi appelons-nous avec deux noms. Quelqu'un peut-il expliquer avec un exemple réel?
10 réponses
Ils sont la même chose dans la plupart des langages orientés objet. "Instance d'une classe" est juste la façon dont le terme "objet" est défini.
par souci d'exhaustivité: dans prototypes de langages de programmation , aucune distinction n'est faite entre les classes et les instances/objets .
prenons du recul si vous posez cette question, il y a des chances que vous ne connaissiez que l'orientation des objets basée sur la classe. Ça fonctionne comme ceci.
-
Class
vous dit ce que vous voulez avoir (schéma de données), et comment vous voulez opérer sur elle (les méthodes). - créer un
Object
le remplir avec ce dont il a besoin (données), et utiliser les opérations définies avec lui.
cependant, vous n'avez pas besoin d'un Class
pour avoir un objet si vous pouvez trouver une autre façon de répondre à la question que voulez-vous que mon objet fasse et comment . Dans un modèle alternatif appelé orientation de l'objet prototype les instances sont créées par cloner les prototypes existants et répliquer et étendre le comportement du clone. Les objets n'ont pas de schéma à suivre dans ce format. C'est juste un groupe de données qui agit sur les données.
(Edit: Cette question avait à l'origine la "java" tag. Ainsi, la langue dépourvue de cours était hors de propos.)
objet
Un modèle (exemplar) d'une classe. Le class Dog définit tous les chiens possibles par énumération des caractéristiques et les comportements qu'ils peuvent avoir; l'objet Lassie est un chien en particulier, avec des versions particulières de la caractéristique. Un chien a de la fourrure; Lassie il a une fourrure brune et blanche.
Instance
On peut avoir une instance d'une classe; l'instance est l'objet réel créé au moment de l'exécution. En programmeur jargon, L'objet Lassie est un instance de la classe Chien. L'ensemble de les valeurs des attributs d'un objet particulier est appelé son état. L'objet se compose de l'état et le comportement qui est défini dans le objet classe.
"objet", un "objet de classe" et "instance" a seulement distinctions historiques. Actuellement il y a même un article dans Wiki pour tout cela:)
voici des preuves supplémentaires, que les Termes "objet" et "instance" sont des quals (de" Object-Oriented Software Construction "par Bertran Meyer):
un objet appartenant à l'ensemble d'objets décrit par une spécification ADT est appelé une instance de L'ADT. Par exemple, une pile spécifique qui satisfait aux propriétés du type STACK abstract data sera une instance de STACK.
comme un ADT, une classe est un type: elle décrit un ensemble de structures de données possibles, appelé les instances de la classe. Les types de données abstraites ont aussi des instances; la différence est qu'un exemple d'un ADT est purement mathématique (un membre de certaines mathématique ensemble), alors qu'une instance d'une classe est une structure de données qui peuvent être représentées dans le la mémoire d'un ordinateur et manipulés par un système logiciel.
la définition de "classe"donne comme sous-produit une définition de "objet". Un objet est simplement une instance d'une certaine classe . Par exemple une instance de données STACK - a de classe structure représentant une pile particulière - est un objet; ainsi est une instance de point de classe, représentant un point particulier dans l'espace bidimensionnel.
Ils sont pratiquement les mêmes dans ce contexte. "Objet" peut être utilisé comme un peu plus générales / terme vague, "instance" est généralement utilisé plus spécifiquement comme "instance d'une classe".
Ils sont les mêmes. Dans le contexte, " instance "souligne le fait qu'il s'agit d'une instanciation de la définition de classe;" object " souligne le fait qu'il s'agit d'une entité unique.
Un objet est un terme plus général. C utilise le terme objet, même s'il n'a pas de classes du tout -- de son point de vue, n'importe quelle variable (par exemple) est un objet.
quelques langages orientés objet n'ont pas de classe non plus. Une classe est une façon de spécifier les propriétés des objets; tous les objets d'une classe donnée partagent ces propriétés. Dans certaines langues (par exemple, Javascript, Self), cependant, vous n'avez pas à spécifier ces propriétés dans une classe. Plutôt, commencez par un objet (l ' "exemplar") à partir duquel vous clonez un nouvel objet et modifiez-le comme bon vous semble. Quand / si vous créez un certain nombre d'objets sans les modifier, vous pouvez finir avec une "classe" en quelque sorte (objets avec les mêmes propriétés), mais c'est plus ou moins un accident.
Même chose: un "objet" est vraiment "une instance d'une classe".
je peux illustrer ce mieux avec python, alors voici:
En Python vous pouvez créer une classe. Appelons-le la classe Person
. Ensuite, vous créez une instance de la classe Person
. Permet de l'appeler Bob. So bob = Person()
. Le fait est que bob
et Person
sont des objets. Quand vous faites Person()
, vous appelez en fait le constructeur sur l'objet Person
class , ce qui vous donne une instance objet, à savoir bob
.
vous utilisez instance lorsque vous voulez souligner qu'un objet est créé à partir d'un type ou d'une classe donnée.
voir ce paragraphe sur Wikipedia :
dans un langage où chaque objet est créé à partir d'une classe, un objet est appelé une instance de cette classe. Si chaque objet a un type, deux objets de la même classe ont le même type de données. La création d'une instance d'une classe est parfois appelé instanciation de la classe.
d'Un exemple réel d'un objet serait "mon chien", qui est une instance d'un type (classe) appelé "chien", qui est une sous-classe de la classe "animal".