Quelle est la différence entre une instance et un objet? Y a-t-il une différence ou pas?
Quelle est la différence entre une instance et un objet? Y a-t-il une différence ou pas?
Réponses:
Une instance est un objet en mémoire. Fondamentalement, vous créez des objets et les instanciez lorsque vous les utilisez.
Voici un bel article sur Classes Vs Objects Vs Instances, il parle Java mais cela s'applique à tous les OO.
http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
L'instance et l'objet proviennent de la programmation orientée objet .
Pour certains langages de programmation comme Java, C ++ et Smalltalk, il est important de décrire et de comprendre le code. Dans d'autres langages utilisés dans la programmation structurée, ce concept n'existe pas.
Ceci est une vue de la programmation structurelle. Il n'y a pas de réelle différence significative qui devrait vous occuper trop de votre temps. Il peut y avoir un langage sophistiqué sur lequel certaines personnes peuvent prendre beaucoup d'espace pour écrire, mais en fin de compte, en ce qui concerne un codeur, un développeur, un programmeur, un architecte, une instance d'une classe et un objet signifie la même chose et peut souvent être utilisé de manière interchangeable. Je n'ai jamais rencontré personne dans ma carrière qui serait difficile et passerait une demi-heure à essayer de souligner les différences, car il n'y en a vraiment pas. Le temps peut être mieux consacré à d'autres efforts de développement.
MISE À JOUR En ce qui concerne Swift, voici ce que préfère Apple qui a inventé Swift:
Une instance d'une classe est traditionnellement appelée objet. Cependant, les classes et structures Swift sont beaucoup plus proches en termes de fonctionnalités que dans d'autres langages, et une grande partie de ce chapitre décrit les fonctionnalités qui peuvent s'appliquer aux instances d'une classe ou d'un type de structure. Pour cette raison, le terme instance plus général est utilisé.
Excellente question.
Je vais vous 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, pousse sur les arbres).
En termes de programmation, vous pouvez avoir une classe appelée Apple, qui a des variables size: big, shape: round, habitat: pousse sur les arbres. Pour avoir 5 pommes dans votre panier, vous devez instancier 5 pommes. Apple apple1, Apple apple2, Apple apple3 etc...
.
Alternativement: 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 quand 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 particulier tandis que object fait référence à l'adresse mémoire de la classe.
Disons que vous construisez des chaises.
Le diagramme qui montre comment construire une chaise et l'assembler correspond à une classe de logiciel.
Disons que vous construisez cinq chaises selon le modèle de ce diagramme. De même, vous pouvez construire cinq objets logiciels selon le modèle d'une classe.
Chaque chaise a un numéro unique gravé dans le fond du siège pour identifier chaque chaise spécifique. La chaise 3 est un exemple d'un modèle de chaise. De même, l'emplacement de mémoire 3 peut contenir une instance d'un motif logiciel.
Ainsi, une instance (chaise 3) est une manifestation unique et spécifique d'un modèle de chaise.
Objet :
C'est un terme générique, c'est un ensemble de logiciels qui a un état (variables) et un comportement (méthodes)
Classe :
Une impression bleue (modèle) pour une instance d'objet - c'est un objet unique, par exemple vous créez un objet deux fois ce que cela signifie est 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 :
Student s1 = nouvel étudiant ("Martin"); Student s2 = nouvel étudiant ("Kumar");
Les s1, s2 ont l'objet de la classe Student
Instance :
s1 et s2 sont des instances d'objet étudiant, les deux sont uniques .
il peut également être appelé comme référence .
fondamentalement, s1 et s2 sont des variables auxquelles un objet est attribué
Les objets et les instances sont pour la plupart identiques; mais il y a une très petite différence. Si Car
est une classe, 3 Car
s sont 3 objets différents. Tous ces objets sont des instances. Donc ces 3 voitures sont des objets d'instances de la Car
classe.
Mais le mot «instance» peut également signifier «instance de structure». Mais l'objet n'est que pour les classes.
Tous les objets sont des instances. Toutes les instances ne doivent pas être des objets. Les instances peuvent être des «instances de structure» ou des «objets». J'espère que cela rendra la différence claire pour vous.
Un objet est une construction, quelque chose de statique qui a certaines caractéristiques et traits, tels que des propriétés et des méthodes, il 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 xw6400 de VOTRE FEMME) est une instance de l'objet poste de travail xw6400
Cette réponse peut être considérée comme banale, mais s'inquiéter des différences entre une instance et un objet est déjà banal.
Je pense que c'est mieux représenté en javascript:
let obj= {"poo":1}
// "obj" is an object
versets
Class Trash {
constructor(){this.poo = 1;}
}
let i = new Trash();
// "i" is an instance
Une instance est une représentation spécifique d'un objet. Un objet est une chose générique tandis qu'une instance est un objet unique qui a été créé en mémoire. Habituellement, une instance aura des valeurs affectées à ses propriétés qui la différencient des autres instances du type d'objet.
Si nous voyons la définition de l'objet et de l'objet Instance -
La mémoire allouée au membre de classe au moment de l'exécution est appelée objet ou objet est l'instance de classe.
Voyons la définition de l'instance -
Mémoire allouée pour tout au moment de l'exécution est appelée comme variable d'instance.
Maintenant, comprenez la signification de toute allocation de mémoire d' exécution se produisant en C également via Malloc, Calloc, Realloc tels que:
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
Donc, ici aussi, nous allouons une allocation de mémoire d'exécution, mais ici nous appelons comme instance donc t1 est une instance ici, nous ne pouvons pas dire t1 comme objet donc chaque objet est l'instance de la classe mais chaque instance n'est pas un objet.
Object - Une instance d'une classe qui a son propre état et l'accès à tous les comportements définis par sa classe.
Instance - Référence à une zone de mémoire pour cette classe particulière.
Je ne peux pas croire, sauf pour un gars que personne n'a utilisé le code pour expliquer cela, laissez-moi essayer aussi!
// Design Class
class HumanClass {
var name:String
init(name:String) {
self.name = name
}
}
var humanClassObject1 = HumanClass(name: "Rehan")
Maintenant le côté gauche c'est-à-dire: "humanClassObject1" est l'objet et le côté droit c'est-à-dire: HumanClass (nom: "Rehan") est l'instance de cet objet.
var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
Donc, fondamentalement, instance contient les valeurs spécifiques de cet objet et les objets contiennent l'emplacement de la mémoire (au moment de l'exécution).
Souvenez-vous de la fameuse déclaration "référence d'objet non définie sur une instance d'un objet", cela signifie que les objets non initialisés n'ont aucune instance. Dans certains langages de programmation comme swift, le compilateur ne vous permettra même pas de concevoir une classe qui n'a aucun moyen d'initialiser tous ses membres (variable par exemple: nom, âge, etc.), mais dans certains langages, vous êtes autorisé à le faire:
// Design Class
class HumanClass {
var name:String // See we don't have any way to initialise name property.
}
Et l'erreur ne s'affichera qu'au moment de l'exécution lorsque vous essayez de faire quelque chose comme ceci:
var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.
Cette erreur indique que les valeurs spécifiques (pour les variables \ propriété) sont "INSTANCE" comme j'ai essayé de l'expliquer ci-dessus! Et l'objet ie: "myClass" contient l'emplacement de la mémoire (au moment de l'exécution).
Lorsqu'une variable est déclarée d'un type personnalisé (classe), seule une référence est créée, qui est appelée un objet. A ce stade, aucune mémoire n'est allouée à cet objet . Il agit simplement comme un pointeur (vers l'emplacement où l'objet sera stocké à l'avenir). Ce processus est appelé «Déclaration».
Employee e; // e is an object
En revanche, lorsqu'une variable de type personnalisé est déclarée à l'aide de l' new
opérateur, qui alloue de la mémoire en tas à cet objet et renvoie la référence à la mémoire allouée. Cet objet qui est maintenant appelé comme instance . Ce processus est appelé «instanciation».
Employee e = new Employee(); // e is an instance
D'un autre côté, dans certains langages comme Java, un objet équivaut à une instance, comme le montre la ligne écrite dans la documentation d'Oracle sur Java :
Remarque: la phrase «instancier une classe» signifie la même chose que «créer un objet». Lorsque vous créez un objet, vous créez une «instance» d'une classe, donc «instanciez» une classe.
chaque objet dit être une instance de sa classe mais chaque instance de la classe a sa propre valeur pour chaque attribut intances partage le nom d'attribut et l'opération avec leurs intances de classe mais un objet contient une référence implicite à sa classe on
Classe: Une classe est un plan. Objet: C'est la copie de la classe. Instance: C'est une variable qui est utilisée pour contenir l'adresse mémoire de l'objet.
Un exemple analytique très basique
Maison de classe -> Plan de la maison. Mais vous ne pouvez pas vivre dans le schéma directeur. Vous avez besoin d'une maison physique qui est l'instance de la classe dans laquelle vivre. C'est-à-dire que l'adresse réelle de l'objet est l'instance. Les instances représentent des objets.
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 à la chose réelle avec laquelle un programme interagit pour consommer 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 faites référence à l'origine d'où il est né, c'est plus clair si vous dites «instance d'une classe» par rapport à «objet d'une classe» (bien que ce dernier puisse être utilisé).
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
Java est un langage de programmation orienté objet (POO). Cela signifie que tout en Java, à l'exception des types primitifs, est un objet.
Désormais, 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 des comportements comme: accélérer et se garer.
C'est Object .
L'instance , de l'autre côté, est une copie uniquement initialisée de cet objet qui ressemble àCar car = new Car()
.
Découvrez-le pour en savoir plus sur les classes et les objets Java
Réponse rapide et simple
Concernant la différence entre un object
et uninstance
, je ne pense pas qu'il y ait de consensus.
Il me semble que les gens le changent à peu près de manière interchangeable, dans des journaux, des articles de blog, des livres ou des conversations.
Quant à moi, tel que je le vois, 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 Object
classe dans Java
. Nous ne nous soucions pas beaucoup de son type, ou de tout autre élément qui lui est associé, qu'il soit géré par un conteneur ou non.
An instance
est un object
mais associé à 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
associé avec eux, pas instance
s, alors que instance
s ont des méthodes. objects
sont les ordures collectées, pas les instance
s.
Mais comme je l'ai dit, ce n'est que comment je le vois, et je ne pense pas qu'il y ait une organisation à laquelle nous pouvons nous référer pour une définition standard entre eux et chacun aura à peu près sa compréhension / définitions légèrement différentes (bien sûr dans des limites) .
Un objet est une chose générique, par exemple, prenez une fonction linéaire en maths
ax + b est un objet, tandis que 3x + 2 est une instance de cet objet
Objet <<< Instance
Général <<< Spécifique
Il n'y a rien de plus à ça
Un objet peut être une classe, disons que vous avez une classe appelée basketball.
mais vous voulez avoir plusieurs ballons de basket, donc dans votre code, vous créez plus d'un ballon de basket
disons basketball1 et basketball2. Ensuite, vous exécutez votre application. Vous avez maintenant 2 instances de l'objet basketball.
Object fait référence à une classe et instance fait référence à un objet. En d'autres termes, instance est une copie d'un objet avec des valeurs particulières.