Was ist der Unterschied zwischen einer Instanz und einem Objekt? Gibt es einen Unterschied oder nicht?
Eine Instanz ist ein Objekt im Speicher. Grundsätzlich erstellen Sie ein Objekt und instanziieren es, wenn Sie es verwenden.
Hier ist eine nette Beschreibung zu Classes Vs Objects Vs Instances, er spricht Java, aber es gilt für alle OO.
http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
Es gibt keinen wirklichen Unterschied, der zu viel Zeit in Anspruch nehmen sollte. Es mag eine ausgefallene Sprache geben, von der manche Leute viel Platz in Anspruch nehmen, um darüber zu schreiben, aber am Ende des Tages ist, was einen Coder, Entwickler, Programmierer, Architekt angeht, eine Instanz einer Klasse und eine Objekt bedeutet dasselbe und kann oft austauschbar verwendet werden. Ich habe noch nie jemanden in meiner Karriere getroffen, der wählerisch wäre und eine halbe Stunde damit verbringe, die Unterschiede aufzuzeigen, denn es gibt wirklich keinen. Die Zeit kann besser für andere Entwicklungsbemühungen aufgewendet werden.
UPDATEIn Bezug auf Swift bevorzugt Apple, der Swift erfunden hat:
Eine Instanz einer Klasse wird traditionell als Objekt bezeichnet. Jedoch, Swift-Klassen und -Strukturen sind in der Funktionalität viel näher als in andere Sprachen und ein Großteil dieses Kapitels beschreibt die Funktionalität von kann auf Instanzen einer Klasse oder eines Strukturtyps angewendet werden. Weil hiervon wird der allgemeinere Begriff verwendet.
Ausgezeichnete Frage.
Ich erkläre es auf einfachste Weise: Angenommen, Sie haben 5 Äpfel in Ihrem Korb. Jeder dieser Äpfel ist ein Objekt vom Typ Apple, das einige Eigenschaften aufweist (d. H. Groß, rund, wächst auf Bäumen).
In der Programmiersprache können Sie eine Klasse namens Apple haben, die Variablengröße hat: groß, Form: rund, Lebensraum: wächst auf Bäumen. Um 5 Äpfel in Ihrem Korb zu haben, müssen Sie5 Äpfel instanziieren. Apple apple1, Apple apple2, Apple apple3 etc...
.
Alternativ: Objekte sind die Definitionen von etwas, Instanzen sind die physischen Dinge.
Macht das Sinn?
Instanz: Instanz bedeutet, dass Sie lediglich eine Referenz (Kopie) erstellen.
object: bedeutet, wenn dem Objekt ein Speicherplatz zugeordnet ist (ist eine Laufzeitentität der Klasse), indem der neue Operator verwendet wird.
In einfachen Worten bezieht sich Instanz auf die Kopie des Objekts zu einem bestimmten Zeitpunkt, während sich Objekt auf die Speicheradresse der Klasse bezieht.
Nehmen wir an, Sie bauen einige Stühle.
Das Diagramm, das zeigt, wie ein Stuhl aufgebaut und zusammengesetzt wird, entspricht einer Softwareklasse.
Nehmen wir an, Sie bauen fünf Stühle nach dem Muster in diesem Diagramm. Ebenso können Sie fünf Softwareobjekte nach dem Muster in einer Klasse erstellen.
Jeder Stuhl hat eine eindeutige Nummer, die in den unteren Teil des Sitzes eingebrannt ist, um jeden Stuhl zu identifizieren. Stuhl 3 ist eine Instanz eines Stuhlobjekts. Ebenso kann der Speicherplatz 3 eine Instanz eines Softwareobjekts enthalten.
Eine Instanz (Stuhl 3) ist also eine einzelne eindeutige, spezifische Darstellung eines Objekts (Stuhls).
Objekte und Instanzen sind meist gleich. aber mit sehr kleinem Unterschied ..__ Wenn "Auto" eine Klasse ist; 3 Autos sind 3 verschiedene Objekte. Alle diese Objekte sind Instanzen. Diese 3 Autos sind also Objekte aus der Klasse "Auto".
Das Wort "Instanz" kann jedoch auch "Strukturinstanzen" sein. Objekt ist jedoch nur für Klassen.
Alle Objekte sind Instanzen . Alle Instanzen dürfen keine Objekte sein. Instanzen können "Strukturinstanzen" oder "Objekte" sein.
Objekt :
Es ist ein allgemeiner Begriff. Im Grunde handelt es sich um ein Software-Bundle mit Status (Variablen) und Verhalten (Methoden).
Klasse :
Eine Blaupause (Vorlage) für ein Objekt Instanz: Dies ist eine eindeutige Sache. Zum Beispiel erstellen Sie ein Objekt zweimal, was bedeutet, dass Sie zwei Instanzen erstellt haben
Lass mich ein Beispiel geben
Class student()
{
private string firstName;
public student(string fname)
{
firstName=fname;
}
Public string GetFirstName()
{
return firstName;
}
}
Objektbeispiel :
Student s1 = neuer Student ("Martin"); Student s2 = neuer Student ("Kumar");
Die s1, s2 haben ein Objekt der Klasse Student
Instanz :
s1 und s2 sind Instanzen des Objektschülers die beiden sind unique.
es kann auch als reference aufgerufen werden.
grundsätzlich sind s1 und s2 Variablen, denen ein Objekt zugewiesen ist
Ein Objekt ist ein Konstrukt, etwas Statisches, das bestimmte Eigenschaften und Merkmale aufweist, wie z. B. Eigenschaften und Methoden. Es kann alles sein (eine Zeichenfolge, ein Benutzersteuerelement usw.).
Eine Instanz ist eine eindeutige Kopie dieses Objekts, die Sie verwenden und verwenden können.
Stellen Sie sich ein Produkt wie einen Computer vor.
Die xw6400-Workstation ist ein Objekt
Ihre xw6400-Workstation (oder die xw6400-Workstation von IHR WIFE) ist eine Instanz des xw6400-Workstation-Objekts
Eine Instanz ist eine bestimmte Darstellung eines Objekts. Ein Objekt ist eine generische Sache, während eine Instanz ein einzelnes Objekt ist, das im Speicher erstellt wurde. Normalerweise werden einer Instanz Werte zugewiesen, die sie von anderen Instanzen des Objekttyps unterscheiden.
Object - Eine Instanz einer Klasse mit eigenem Status und Zugriff auf das gesamte von ihrer Klasse definierte Verhalten.
Instanz - Verweis auf einen Speicherbereich für diese bestimmte Klasse.
jedes Objekt soll eine Instanz seiner Klasse sein, aber jede Instanz der Klasse hat ihren eigenen Wert für jedes Attribut intances teilt den Attributnamen und die Attributoperation mit ihren Intentionen der Klasse, aber ein Objekt enthält einen impliziten Verweis auf seine Klasse on
Wenn wir die Definition von Objekt und Instanzobjekt sehen -
Speicher, der dem Member der Klasse zur Laufzeit zugewiesen wird, wird Objekt oder Objekt ist die Instanz von Class.
Lassen Sie uns die Definition der Instanz sehen -
Speicher zugewiesen für alle zur Laufzeit wird als Instanzvariable aufgerufen.
Verstehen Sie nun die Bedeutung von any Laufzeitspeicherzuordnung in C auch durch Malloc, Calloc, Realloc wie:
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
Daher weisen wir auch hier eine Laufzeitspeicherzuordnung zu, aber hier nennen wir sie als Instanz, so dass T1 Instanz ist. Hier können wir T1 nicht als Objekt angeben.
Java ist eine objektorientierte Programmiersprache (OOP). Dies bedeutet, dass alles in Java, mit Ausnahme der primitiven Typen, ein Objekt ist.
Java-Objekte ähneln jetzt Objekten der realen Welt. Beispielsweise können wir in Java ein Autoobjekt erstellen, das Eigenschaften wie die aktuelle Geschwindigkeit und Farbe aufweist. und verhalten wie: beschleunigen und parken.
Das ist Objekt .
Instanz ist andererseits eine eindeutig initialisierte Kopie dieses Objekts, die wie Car car = new Car()
aussieht.
Erfahren Sie mehr über Java-Klassen und -Objekte
Ein Objekt kann eine Klasse sein, beispielsweise eine Klasse namens Basketball.
sie möchten jedoch mehrere Basketbälle haben, so dass Sie in Ihrem Code mehr als einen Basketball erstellen
sage basketball1 und basketball2 . Dann führen Sie Ihre Anwendung aus . Sie haben jetzt 2 Instanzen des Objekts Basketball.
Klasse: Eine Klasse ist ein blauer Druck . Objekt: Es ist die Kopie der Klasse . Instanz: Seine Variable, in der die Speicheradresse des Objekts gespeichert wird.
Ein sehr grundlegendes analytisches Beispiel
Klassenhaus -> Blaupause des Hauses. Aber man kann nicht in der Blaupause leben. Sie benötigen ein physisches Haus, in dem sich die Klasse befindet, in der die Klasse lebt. Das heißt, die tatsächliche Adresse des Objekts ist eine Instanz. Instanzen repräsentieren Objekte.
Ein Objekt ist eine generische Sache, zum Beispiel eine lineare Funktion in der Mathematik
ax + b ist ein Objekt, während 3x + 2 eine Instanz dieses Objekts ist
Objekt <<< Instanz
Allgemein <<< Spezifisch
Mehr gibt es nicht
Sobald Sie eine Klasse instanziieren (mit new), wird das instanziierte Objekt zu einem Objekt. Ein Objekt ist etwas, das der Einkapselung, dem Polymorphismus, den Abstraktionsprinzipien der objektorientierten Programmierung und der Realität, mit der ein Programm interagiert, entsprechen kann, um die in der Klasse definierten Instanzmitglieder zu verbrauchen. Objekt enthält Instanzmember (nicht statische Member).
Die Instanz einer Klasse ist also ein Objekt. Das Wort "Instanz" wird verwendet, wenn Sie sich auf den Ursprung beziehen, von dem es stammt, es ist klarer, wenn Sie "Instanz einer Klasse" im Vergleich zu "Objekt einer Klasse" sagen (obwohl letzteres verwendet werden kann).
Kann auch den Abschnitt "Innere Klassen" dieses Java-Dokuments zu verschachtelten Klassen lesen - https://docs.Oracle.com/javase/tutorial/Java/javaOO/nested.html
In Bezug auf den Unterschied zwischen einer object
und einer instance
glaube ich nicht, dass es einen Konsens gibt.
Es sieht für mich so aus, als ob die Leute es in Veröffentlichungen, Blogbeiträgen, Büchern oder Gesprächen ziemlich austauschbar ändern.
Meiner Meinung nach ist ein Objekt eine generische und lebendige Entität im Speicher, die durch die Sprache definiert wird, in der sie verwendet wird. Genau wie die Klasse Object
in Java
. Es ist uns egal, um welchen Typ es sich handelt oder was sonst noch damit zusammenhängt, ob er von einem Container verwaltet wird oder nicht.
Eine instance
ist eine object
, die jedoch einem Typ zugeordnet ist, wie in this method accepts Foo instances
oder you can not put Animal instances in an instance of
a List of Vehicles
.
object
s hat zum Beispiel locks
zugeordnet, nicht instance
s, wohingegen instance
s Methoden hat. objects
sind Müll, nicht instance
s.
Aber wie gesagt, so sehe ich das nur, und ich glaube nicht, dass es eine Organisation gibt, auf die wir uns für eine Standarddefinition beziehen können, und jeder wird so ziemlich sein etwas anderes Verständnis/Definitionen haben (natürlich innerhalb der Grenzen). .
Schnelle und einfache Antwort