Quelle est la différence entre une instance et un objet? Y a-t-il une différence ou pas?
Une instance est un objet en mémoire. En gros, vous créez un objet et vous l'instanciez lorsque vous les utilisez.
Voici un bel article sur Classes Vs Objets Vs Instances, il parle Java mais il s’applique à tous les OO.
http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
Il n'y a pas de réelle différence significative qui devrait consommer trop de votre temps. Certaines personnes pourraient prendre un langage compliqué sur lequel écrire, mais au bout du compte, en ce qui concerne un codeur, un développeur, un programmeur, un architecte, une instance de classe et un objet signifie la même chose et peut souvent être utilisé de manière interchangeable. Dans ma carrière, je n'ai jamais rencontré quelqu'un qui soit difficile et qui passe une demi-heure à essayer de faire ressortir les différences, car il n'y en a vraiment aucune. Le temps peut être mieux dépensé sur d'autres efforts de développement.
UPDATEEn ce qui concerne Swift, voici ce que Apple qui a inventé Swift préfère:
Une instance d'une classe est traditionnellement appelée objet. Toutefois, Les classes et structures Swift sont beaucoup plus fonctionnelles que dans autres langues, et une grande partie de ce chapitre décrit une fonctionnalité qui peut s'appliquer à des instances d'une classe ou d'un type de structure. Parce que le terme plus général est utilisé.
Excellente question.
Je vais l'expliquer de la manière la plus simple possible: Disons que vous avez 5 pommes dans votre panier. Chacune de ces pommes est un objet de type Apple, qui présente certaines caractéristiques (c’est-à-dire grosse, ronde, poussant sur des arbres).
En termes de programmation, vous pouvez avoir une classe appelée Apple, qui a des tailles variables: grande, forme: ronde, habitat: se développe sur les arbres. Pour avoir 5 pommes dans votre panier, vous devezinstancier5 pommes. Apple apple1, Apple apple2, Apple apple3 etc...
.
Autre solution: les objets sont les définitions de quelque chose, les instances sont les choses physiques.
Est-ce que ça a du sens?
Instance: instance signifie simplement créer une référence (copie).
objet: signifie que l'emplacement mémoire est associé à l'objet (est une entité d'exécution de la classe) en utilisant l'opérateur new.
En termes simples, Instance fait référence à la copie de l'objet à un moment donné, tandis que objet fait référence à l'adresse mémoire de la classe.
Disons que vous construisez des chaises.
Le diagramme qui montre comment construire et installer une chaise correspond à une classe de logiciels.
Supposons que vous construisiez cinq chaises selon le modèle présenté dans ce diagramme. De même, vous pouvez construire cinq objets logiciels en fonction du modèle d'une classe.
Chaque fauteuil porte un numéro unique gravé au bas du siège pour identifier chaque fauteuil en particulier. La chaise 3 est un exemple d'objet chaise. De même, l'emplacement de mémoire 3 peut contenir une instance d'un objet logiciel.
Ainsi, une instance (chair 3) est une représentation unique et spécifique d'un objet (une chaise).
Les objets et les instances sont généralement identiques. mais ayant très peu de différence ... Si. "voiture" est une classe; 3 voitures sont 3 objets différents. Tous ces objets sont des instances. Donc, ces 3 voitures sont des objets d'instances de la classe "voiture".
Mais le mot "instance" peut aussi être "instance de structure". Mais objet est seulement pour les classes.
Tous les objets sont des instances . Toutes les instances ne peuvent pas être des objets. Les instances peuvent être des "instances de structure" ou des "objets".
Objet :
C’est un terme générique, c’est fondamentalement un paquet logiciel qui a un état (variables) et un comportement (méthodes)
Classe :
Une impression bleue (modèle) pour un objet Instance: c’est un objet unique. Par exemple, vous créez un objet deux fois, ce qui signifie que vous avez créé deux instances.
Laissez-moi vous donner un exemple
Class student()
{
private string firstName;
public student(string fname)
{
firstName=fname;
}
Public string GetFirstName()
{
return firstName;
}
}
Exemple d'objet :
Étudiant s1 = nouvel étudiant ("Martin"); Étudiant s2 = nouvel étudiant ("Kumar");
Les s1, s2 ont un objet de classe Student
Exemple :
s1 et s2 sont des instances d'objet étudiant les deux sont unique.
il peut également être appelé comme référence .
essentiellement les s1 et s2 sont des variables qui sont affectés à un objet
Un objet est une construction, quelque chose de statique qui possède certaines caractéristiques et caractéristiques, telles que des propriétés et des méthodes, peut être n'importe quoi (une chaîne, un contrôle utilisateur, etc.)
Une instance est une copie unique de cet objet que vous pouvez utiliser et utiliser.
Imaginez un produit comme un ordinateur.
LA station de travail xw6400 est un objet
VOTRE poste de travail xw6400 (ou le poste de travail de VOTRE WIFE xw6400) est une instance de l'objet poste de travail xw6400
Une instance est une représentation spécifique d'un objet. Un objet est une chose générique alors qu'une instance est un objet unique créé en mémoire. Habituellement, une instance aura des valeurs affectées à ses propriétés, ce qui la différencie des autres instances du type d'objet.
Object - Instance d'une classe ayant son propre état et accès à tous les comportements définis par sa classe.
Instance - Référence à une zone de mémoire pour cette classe particulière.
chaque objet est réputé être une instance de sa classe mais chaque instance de la classe a sa propre valeur pour chaque attribut intances partage le nom de l'attribut et l'opération avec leurs intances de classe, mais un objet contient une référence implicite à sa classe on
Si nous voyons la définition d'objet et objet d'instance -
La mémoire allouée pour le membre de classe au moment de l'exécution est appelée objet ou l'objet est l'instance de Classe.
Voyons la définition d'instance -
Memory alloué Pour Any au moment de l'exécution, est appelée variable d'instance.
Maintenant, comprenez la signification de any L'allocation de mémoire au moment de l'exécution se passe en C également via Malloc, Calloc, Realloc, telles que:
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
Donc, ici aussi, nous allouons une allocation de mémoire au moment de l'exécution, mais ici nous appelons en tant qu'instance si t1 est une instance ici nous ne pouvons pas dire t1 en tant qu'objet. Chaque objet est l'instance de Class mais chaque instance n'est pas un Objet.
Java est un langage de programmation orienté objet (OOP). Cela signifie que tout en Java, à l'exception des types primitifs, est un objet.
Maintenant, les objets Java sont similaires aux objets du monde réel. Par exemple, nous pouvons créer un objet voiture en Java, qui aura des propriétés telles que la vitesse et la couleur actuelles; et un comportement comme: accélérer et garer.
C'est Object .
Instance , de l'autre côté, est une copie de cet objet initialisée de manière unique qui ressemble à Car car = new Car()
.
Consultez-le pour en savoir plus sur Les classes et objets Java
Un objet peut être une classe, disons que vous avez une classe appelée basketball.
mais vous voulez avoir plusieurs balles de basket afin que dans votre code, vous créez plus de 1 basket
basketball1 et basketball2 . Ensuite, vous exécutez votre application . Vous avez maintenant 2 instances de l'objet basketball.
Classe: Une classe est une impression bleue . Objet: C'est la copie de la classe . Instance: C'est une variable qui est utilisée pour conserver l'adresse mémoire de l'objet.
Un exemple d'analyse très basique
Maison de classe -> Plan de la maison. Mais vous ne pouvez pas vivre dans l'empreinte bleue. Vous avez besoin d’une maison physique qui est l’instance de la classe dans laquelle vivre. En d’autres termes, l’adresse réelle de l’objet est une instance. Les instances représentent des objets.
Un objet est une chose générique, par exemple, prenons une fonction linéaire en maths
ax + b est un objet, alors que 3x + 2 est une instance de cet objet
Objet <<< instance
Général <<< Spécifique
Il n'y a rien de plus à cela
Une fois que vous instanciez une classe (en utilisant new), cette chose instanciée devient un objet. Un objet est quelque chose qui peut adhérer à l’encapsulation, au polymorphisme, aux principes d’abstraction de la programmation orientée objet et à l’interaction réelle d’un programme avec laquelle il consomme les membres d’instance définis dans la classe. L'objet contient des membres d'instance (membres non statiques).
Ainsi, l'instance d'une classe est un objet. Le mot ‘instance’ est utilisé lorsque vous vous référez à l’origine de son origine. C’est plus clair si vous dites ‘instance d’une classe’ par rapport à ‘objet d’une classe’ (bien que cette dernière puisse être utilisée pour).
Peut également lire la section "Inner classes" de ce document Java sur les classes imbriquées - https://docs.Oracle.com/javase/tutorial/Java/javaOO/nested.html
En ce qui concerne la différence entre une object
et une instance
, je ne pense pas qu'il y ait de consensus.
Il me semble que les gens le changent à peu près indifféremment, que ce soit dans des journaux, des billets de blog, des livres ou des conversations.
Selon moi, un objet est une entité générique et vivante dans la mémoire, spécifiée par le langage dans lequel il est utilisé. Tout comme la classe Object
dans Java
. Nous ne nous soucions pas beaucoup de son type, ou de tout ce qui lui est associé, qu’il soit géré par un conteneur ou non.
Une instance
est une object
mais associée à un type, comme dans this method accepts Foo instances
ou you can not put Animal instances in an instance of
a List of Vehicles
.
object
s par exemple ont locks
qui leur est associé, pas instance
s, alors que instance
s ont des méthodes. objects
sont des ordures collectées, pas instance
s.
Mais comme je l’ai dit, c’est seulement ainsi que je vois les choses, et je ne pense pas qu’il existe une organisation à laquelle on puisse se référer pour une définition standard entre elles et tout le monde aura à peu près sa compréhension/définition légèrement différente (bien sûr dans certaines limites) .
Réponse simple et rapide