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?

5
demandé sur Pascal Thivent 2010-02-18 19:50:58

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.

9
répondu Bill the Lizard 2010-02-18 20:33:52

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.

  1. Class vous dit ce que vous voulez avoir (schéma de données), et comment vous voulez opérer sur elle (les méthodes).
  2. 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.

5
répondu Dario 2010-02-18 19:04:58

(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.

( Wikipédia, la programmation orientée Objet )

4
répondu sfussenegger 2010-02-19 07:34:31

"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.

4
répondu Sergey Teplyakov 2010-02-19 23:12:58

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".

2
répondu Péter Török 2010-02-18 16:53:48

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.

2
répondu Rachel 2010-02-18 16:55:27

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.

2
répondu Jerry Coffin 2010-02-18 18:32:05

Même chose: un "objet" est vraiment "une instance d'une classe".

1
répondu jldupont 2010-02-18 16:54:22

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 .

1
répondu Sudhir Jonathan 2010-02-18 16:57:46

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".

1
répondu Danilo Piazzalunga 2010-02-18 16:59:20