Du meinst also Objekt == Klasse? oder meinst du Klasse geladen und wird Objekt und Objekt instanziiert, um Instanz zu werden? Antwortest du nicht verwirrend?
p_champ
Stellen Sie sich Klasse wie eine Definition vor. Wenn Sie die Klasse instanziieren, haben Sie das Objekt, das dann verwendet werden kann. Dieses Objekt wird physisch im Speicher dargestellt.
Dustin Laine
@Dustin Laine der Unterschied ist noch nicht klar. Können Sie mir bitte helfen?
Pie
@DustinLaine Die Frage stellt den Unterschied zwischen 'Instanz' und 'Objekt'. In dieser Antwort wurde jedoch der Prozess der "Instanziierung" einer Klasse erklärt, um "Objekt" zu erhalten. Ihr Beitrag und Kommentar stimmen nicht überein. In dem Beitrag wird erwähnt, dass eine 'Instanz' ein Objekt im Speicher ist. In dem Kommentar wird jedoch erwähnt, dass Sie nach dem Instanziieren der Klasse das 'Objekt' erhalten, das im Speicher dargestellt wird. Das ist etwas mehrdeutig.
Für einige Programmiersprachen wie Java, C ++ und Smalltalk ist es wichtig, Code zu beschreiben und zu verstehen. In anderen Sprachen, die in der strukturierten Programmierung verwendet werden, existiert dieses Konzept nicht.
Dies ist eine Ansicht aus der Strukturprogrammierung. Es gibt keinen wirklich signifikanten Unterschied, der zu viel Zeit in Anspruch nehmen sollte. Es mag eine ausgefallene Sprache geben, über die manche Leute viel Platz zum Schreiben einnehmen, aber am Ende des Tages, was einen Programmierer, Entwickler, Programmierer, Architekten betrifft, eine Instanz einer Klasse und eine Objekt bedeuten dasselbe und können oft synonym verwendet werden. Ich habe in meiner Karriere noch nie jemanden getroffen, der wählerisch wäre und eine halbe Stunde damit verbringen würde, auf die Unterschiede hinzuweisen, weil es wirklich keine gibt. Zeit kann besser für andere Entwicklungsbemühungen aufgewendet werden.
UPDATE In Bezug auf Swift bevorzugt Apple, der Swift erfunden hat, Folgendes:
Eine Instanz einer Klasse wird traditionell als Objekt bezeichnet. Swift-Klassen und -Strukturen sind jedoch in ihrer Funktionalität viel näher als in anderen Sprachen, und ein Großteil dieses Kapitels beschreibt Funktionen, die für Instanzen einer Klasse oder eines Strukturtyps gelten können. Aus diesem Grund wird der allgemeinere Begriff Instanz verwendet.
Ich erkläre es so einfach wie möglich: Angenommen, Sie haben 5 Äpfel in Ihrem Korb. Jeder dieser Äpfel ist ein Objekt vom Typ Apple, das einige Eigenschaften aufweist (dh groß, rund, wächst auf Bäumen).
In Bezug auf die Programmierung können Sie eine Klasse namens Apple haben, deren Variablen Größe: groß, Form: rund, Lebensraum: wächst auf Bäumen. Um 5 Äpfel in Ihrem Warenkorb zu haben, müssen Sie 5 Äpfel instanziieren . Apple apple1, Apple apple2, Apple apple3 etc....
Alternativ: Objekte sind die Definitionen von etwas, Instanzen sind die physischen Dinge.
Das tut es nicht. :) "Objekte sind die Definitionen von etwas" Was Sie hier Objekte nennen, sind Klassen.
T-Gergely
11
Instanz: Instanz bedeutet nur das Erstellen einer Referenz (Kopie).
Objekt: bedeutet, dass der Speicherort dem Objekt zugeordnet ist (eine Laufzeitentität der Klasse ist), 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.
Zu sagen, dass eine Instanz ein Verweis auf ein Objekt ist, hat die Dinge für mich wirklich geklärt.
John C
1
@ JohnC Es sollte nicht, weil es nicht korrekt ist. Ein Objekt ist eine Instanz einer Klasse. Das ist alles dazu.
Marquis von Lorne
8
Nehmen wir an, Sie bauen Stühle.
Das Diagramm, das zeigt, wie ein Stuhl gebaut und zusammengesetzt wird, entspricht einer Softwareklasse.
Angenommen, Sie bauen fünf Stühle nach dem Muster in diesem Diagramm. Ebenso können Sie fünf Softwareobjekte gemäß dem Muster in einer Klasse erstellen.
Jeder Stuhl hat eine eindeutige Nummer, die in die Unterseite des Sitzes eingebrannt ist, um jeden bestimmten Stuhl zu identifizieren. Stuhl 3 ist eine Instanz eines Stuhlmusters. Ebenso kann Speicherplatz 3 eine Instanz eines Softwaremusters enthalten.
Eine Instanz (Stuhl 3) ist also eine einzelne, spezifische Manifestation eines Stuhlmusters.
Ein Objekt ist eine Instanz einer Klasse. Eine Instanz ist keine Instanz eines Objekts. Die Antwort ist bedeutungslos.
Marquis von Lorne
1
Wow, nach neun Jahren hat endlich jemand auf den Fehler in meiner Erklärung hingewiesen. Vielen Dank! Besser jetzt?
Brian Showalter
7
Objekt :
Es ist ein allgemeiner Begriff, im Grunde ist es ein Softwarepaket, das Status (Variablen) und Verhalten (Methoden) hat.
Klasse :
Eine Blaupause (Vorlage) für eine Objektinstanz - es ist eine einzigartige Objektsache, zum Beispiel, dass Sie ein Objekt zweimal erstellen. Das bedeutet, dass Sie zwei Instanzen erstellt haben
Lassen Sie mich ein Beispiel geben
Class student()
{
private string firstName;
public student(string fname)
{
firstName=fname;
}
Public string GetFirstName()
{
return firstName;
}
}
Objekte und Instanzen sind meistens gleich; aber es gibt einen sehr kleinen Unterschied. Wenn Cares sich um eine Klasse handelt, sind 3 Cars 3 verschiedene Objekte. Alle diese Objekte sind Instanzen. Diese 3 Autos sind also Objekte aus Instanzen der CarKlasse.
Das Wort "Instanz" kann aber auch "Strukturinstanz" bedeuten. Objekt ist aber nur für Klassen.
Alle Objekte sind Instanzen. Nicht alle Instanzen müssen Objekte sein. Instanzen können "Strukturinstanzen" oder "Objekte" sein. Ich hoffe, das macht Ihnen den Unterschied klar.
Ein Objekt ist ein Konstrukt, etwas Statisches, das bestimmte Merkmale und Eigenschaften wie Eigenschaften und Methoden aufweist. Es kann alles sein (eine Zeichenfolge, eine Benutzersteuerung usw.).
Eine Instanz ist eine eindeutige Kopie dieses Objekts, mit der Sie Dinge ausführen können.
Stellen Sie sich ein Produkt wie einen Computer vor.
Die xw6400-Workstation ist ein Objekt
IHRE xw6400-Workstation (oder die xw6400-Workstation IHRER FRAU) ist eine Instanz des xw6400-Workstation-Objekts
Ihr erster und zweiter Absatz beschreiben Klassen, keine Objekte.
Marquis von Lorne
2
Diese Antwort kann als banal angesehen werden, aber die Sorge um die Unterschiede zwischen einer Instanz und einem Objekt ist bereits eine banale Stadt.
Ich denke, es ist am besten in Javascript dargestellt:
let obj= {"poo":1}
// "obj" is an object
Verse
Class Trash {
constructor(){this.poo = 1;}
}
let i = new Trash();
// "i" is an instance
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.
Wenn wir die Definition von Objekt und Instanzobjekt sehen -
Der zur Laufzeit für das Klassenmitglied zugewiesene Speicher wird als Objekt bezeichnet, oder Objekt ist die Instanz der Klasse.
Lassen Sie uns die Definition der Instanz sehen -
Der zur Laufzeit für Any zugewiesene Speicher wird als Instanzvariable aufgerufen.
Verstehen Sie nun die Bedeutung jeder Laufzeitspeicherzuweisung, die in C auch über Malloc, Calloc, Realloc erfolgt, wie z.
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
Auch hier weisen wir die Laufzeitspeicherzuweisung zu, aber hier rufen wir als Instanz auf, sodass t1 eine Instanz ist. Hier können wir t1 nicht als Objekt bezeichnen. Jedes Objekt ist die Instanz der Klasse, aber jede Instanz ist kein Objekt.
Ich kann es nicht glauben, außer einem Mann, der den Code nicht benutzt hat, um das zu erklären, lass es mich auch versuchen!
// Design Class
class HumanClass {
var name:String
init(name:String) {
self.name = name
}
}
var humanClassObject1 = HumanClass(name: "Rehan")
Jetzt ist die linke Seite, dh: "humanClassObject1", das Objekt und die rechte Seite, dh: HumanClass (Name: "Rehan") ist die Instanz dieses Objekts.
var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
Die Instanz enthält also im Grunde genommen die spezifischen Werte für dieses Objekt und die Objekte enthalten den Speicherort (zur Laufzeit).
Denken Sie an die berühmte Aussage "Objektreferenz nicht auf eine Instanz eines Objekts festgelegt". Dies bedeutet, dass nicht initialisierte Objekte keine Instanz haben. In einigen Programmiersprachen wie swift erlaubt Ihnen der Compiler nicht einmal, eine Klasse zu entwerfen, die nicht alle Mitglieder initialisieren kann (Variable, z. B. Name, Alter usw.), aber in einigen Sprachen dürfen Sie dies tun:
// Design Class
class HumanClass {
var name:String // See we don't have any way to initialise name property.
}
Und der Fehler wird nur zur Laufzeit angezeigt, wenn Sie versuchen, Folgendes zu tun:
var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.
Dieser Fehler zeigt an, dass die spezifischen Werte (für Variablen \ Eigenschaft) "INSTANZ" sind, wie ich oben versucht habe, dies zu erklären! Und das Objekt dh: "myClass" enthält den Speicherort (zur Laufzeit).
Wenn eine Variable von einem benutzerdefinierten Typ (Klasse) deklariert wird, wird nur eine Referenz erstellt, die als Objekt bezeichnet wird. Zu diesem Zeitpunkt ist diesem Objekt kein Speicher zugeordnet . Es fungiert nur als Zeiger (auf den Ort, an dem das Objekt in Zukunft gespeichert wird). Dieser Vorgang wird als "Erklärung" bezeichnet.
Employee e; // e is an object
Wenn andererseits eine Variable vom Typ "Benutzerdefiniert" mit dem newOperator deklariert wird, der diesem Objekt Speicher im Heap zuweist und den Verweis auf den zugewiesenen Speicher zurückgibt. Dieses Objekt, das jetzt als Instanz bezeichnet wird . Dieser Vorgang wird als "Instanziierung" bezeichnet.
Hinweis: Der Ausdruck "Instanziieren einer Klasse" bedeutet dasselbe wie "Erstellen eines Objekts". Wenn Sie ein Objekt erstellen, erstellen Sie eine "Instanz" einer Klasse und "instanziieren" daher eine Klasse.
Jedes Objekt, das als Instanz seiner Klasse bezeichnet wird, aber jede Instanz der Klasse hat einen eigenen Wert für jedes Attribut. intances teilt den Attributnamen und die Operation mit ihren Intanzen der Klasse, aber ein Objekt enthält einen impliziten Verweis auf seine on-Klasse
Klasse: Eine Klasse ist eine Blaupause. Objekt: Es ist die Kopie der Klasse. Instanz: Dies ist eine Variable, die verwendet wird, um die Speicheradresse des Objekts zu speichern.
Ein sehr einfaches analytisches Beispiel
Klassenhaus -> Blaupause des Hauses. Aber Sie können nicht in der Blaupause leben. Sie benötigen ein physisches Haus, das die Instanz der Klasse ist, in der Sie leben möchten. Die tatsächliche Adresse des Objekts ist also die Instanz. Instanzen repräsentieren Objekte.
Instanz bezieht sich auf das Objekt, nicht auf eine Variable.
Marquis von Lorne
0
Sobald Sie eine Klasse instanziieren (mit new), wird dieses instanziierte Objekt zu einem Objekt. Ein Objekt kann sich an Kapselung, Polymorphismus, Abstraktionsprinzipien der objektorientierten Programmierung und der Realität halten, mit der ein Programm interagiert, um die in der Klasse definierten Instanzmitglieder zu verbrauchen. Das Objekt enthält Instanzmitglieder (nicht statische Mitglieder).
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" sagen, als "Objekt einer Klasse" (obwohl letzteres verwendet werden kann).
Java ist eine objektorientierte Programmiersprache (OOP). Dies bedeutet, dass alles in Java außer den primitiven Typen ein Objekt ist.
Jetzt ähneln Java-Objekte realen Objekten. Zum Beispiel können wir ein Autoobjekt in Java erstellen, das Eigenschaften wie die aktuelle Geschwindigkeit und Farbe hat. und Verhalten wie: beschleunigen und parken.
Das ist Objekt .
Die Instanz auf der anderen Seite ist eine eindeutig initialisierte Kopie dieses Objekts, die aussieht Car car = new Car().
In Bezug auf den Unterschied zwischen einem objectund einem instanceglaube ich nicht, dass es einen Konsens gibt.
Es sieht für mich so aus, als würden die Leute es ziemlich austauschbar ändern, in Zeitungen, Blog-Posts, Büchern oder Gesprächen.
So wie ich es sehe, ist ein Objekt eine generische und lebendige Entität im Speicher, die durch die Sprache angegeben wird, in der es verwendet wird. Genau wie die ObjectKlasse in Java. Wir kümmern uns nicht viel um seinen Typ oder irgendetwas anderes, das damit verbunden ist, ob er von einem Container verwaltet wird oder nicht.
An instanceist ein objectaber einem Typ zugeordnet, wie in this method accepts Foo instancesoder you can not put Animal instances in an instance of
a List of Vehicles.
objects haben zum Beispiel locksmit ihnen verbunden, nicht instances, während instances Methoden haben. objectswerden Müll gesammelt, nicht instances.
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 zwischen ihnen beziehen können, und jeder wird so ziemlich sein leicht unterschiedliches Verständnis / seine Definitionen haben (natürlich in Grenzen). .
Das würde bedeuten, dass ein Objekt eine Instanz eines Klassenkonstruktors ist?
Straßenparade
Stellen Sie sich das Objekt wie eine Blaupause vor. Sagen wir, wir haben eine Blaupause für den Basketball, das ist die Klasse. Wenn der Basketball erstellt und erstellt wurde, ist er jetzt vorhanden. Das bedeutet, dass wir eine Instanz des Objekts Basketball haben. wenn wir aus dem Objekt einen weiteren Basketball bauen (Blaupause). Wir haben jetzt 2 Instanzen des Basketballs. Es gibt immer nur ein Objekt, aber wir können viele Instanzen dieses Objekts erstellen.
Darxval
@ Darxval dann, was ist eine Klasse
Chyanit Singh
-3
Objekt bezieht sich auf Klasse und Instanz bezieht sich auf ein Objekt. Mit anderen Worten, Instanz ist eine Kopie eines Objekts mit bestimmten Werten.
Antworten:
Eine Instanz ist ein Objekt im Speicher. Grundsätzlich erstellen Sie Objekte und instanziieren sie, wenn Sie sie verwenden.
Hier ist eine nette Zusammenfassung über Klassen gegen Objekte gegen Instanzen, er spricht Java, aber es gilt für alle OO.
http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
quelle
Die Instanz und das Objekt stammen aus der objektorientierten Programmierung .
Für einige Programmiersprachen wie Java, C ++ und Smalltalk ist es wichtig, Code zu beschreiben und zu verstehen. In anderen Sprachen, die in der strukturierten Programmierung verwendet werden, existiert dieses Konzept nicht.
Dies ist eine Ansicht aus der Strukturprogrammierung. Es gibt keinen wirklich signifikanten Unterschied, der zu viel Zeit in Anspruch nehmen sollte. Es mag eine ausgefallene Sprache geben, über die manche Leute viel Platz zum Schreiben einnehmen, aber am Ende des Tages, was einen Programmierer, Entwickler, Programmierer, Architekten betrifft, eine Instanz einer Klasse und eine Objekt bedeuten dasselbe und können oft synonym verwendet werden. Ich habe in meiner Karriere noch nie jemanden getroffen, der wählerisch wäre und eine halbe Stunde damit verbringen würde, auf die Unterschiede hinzuweisen, weil es wirklich keine gibt. Zeit kann besser für andere Entwicklungsbemühungen aufgewendet werden.
UPDATE In Bezug auf Swift bevorzugt Apple, der Swift erfunden hat, Folgendes:
quelle
Ausgezeichnete Frage.
Ich erkläre es so einfach wie möglich: Angenommen, Sie haben 5 Äpfel in Ihrem Korb. Jeder dieser Äpfel ist ein Objekt vom Typ Apple, das einige Eigenschaften aufweist (dh groß, rund, wächst auf Bäumen).
In Bezug auf die Programmierung können Sie eine Klasse namens Apple haben, deren Variablen Größe: groß, Form: rund, Lebensraum: wächst auf Bäumen. Um 5 Äpfel in Ihrem Warenkorb zu haben, müssen Sie 5 Äpfel instanziieren .
Apple apple1, Apple apple2, Apple apple3 etc...
.Alternativ: Objekte sind die Definitionen von etwas, Instanzen sind die physischen Dinge.
Macht das Sinn?
quelle
Instanz: Instanz bedeutet nur das Erstellen einer Referenz (Kopie).
Objekt: bedeutet, dass der Speicherort dem Objekt zugeordnet ist (eine Laufzeitentität der Klasse ist), 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.
quelle
Nehmen wir an, Sie bauen Stühle.
Das Diagramm, das zeigt, wie ein Stuhl gebaut und zusammengesetzt wird, entspricht einer Softwareklasse.
Angenommen, Sie bauen fünf Stühle nach dem Muster in diesem Diagramm. Ebenso können Sie fünf Softwareobjekte gemäß dem Muster in einer Klasse erstellen.
Jeder Stuhl hat eine eindeutige Nummer, die in die Unterseite des Sitzes eingebrannt ist, um jeden bestimmten Stuhl zu identifizieren. Stuhl 3 ist eine Instanz eines Stuhlmusters. Ebenso kann Speicherplatz 3 eine Instanz eines Softwaremusters enthalten.
Eine Instanz (Stuhl 3) ist also eine einzelne, spezifische Manifestation eines Stuhlmusters.
quelle
Objekt :
Es ist ein allgemeiner Begriff, im Grunde ist es ein Softwarepaket, das Status (Variablen) und Verhalten (Methoden) hat.
Klasse :
Eine Blaupause (Vorlage) für eine Objektinstanz - es ist eine einzigartige Objektsache, zum Beispiel, dass Sie ein Objekt zweimal erstellen. Das bedeutet, dass Sie zwei Instanzen erstellt haben
Lassen Sie mich ein Beispiel geben
Objektbeispiel :
Student s1 = neuer Student ("Martin"); Student s2 = neuer Student ("Kumar");
Die s1, s2 haben Objekte der Klasse Student
Instanz :
s1 und s2 sind Instanzen von Objektschülern, die beiden sind eindeutig .
es kann auch als Referenz bezeichnet werden .
Grundsätzlich sind s1 und s2 Variablen, denen ein Objekt zugewiesen ist
quelle
Objekte und Instanzen sind meistens gleich; aber es gibt einen sehr kleinen Unterschied. Wenn
Car
es sich um eine Klasse handelt, sind 3Car
s 3 verschiedene Objekte. Alle diese Objekte sind Instanzen. Diese 3 Autos sind also Objekte aus Instanzen derCar
Klasse.Das Wort "Instanz" kann aber auch "Strukturinstanz" bedeuten. Objekt ist aber nur für Klassen.
Alle Objekte sind Instanzen. Nicht alle Instanzen müssen Objekte sein. Instanzen können "Strukturinstanzen" oder "Objekte" sein. Ich hoffe, das macht Ihnen den Unterschied klar.
quelle
Ein Objekt ist ein Konstrukt, etwas Statisches, das bestimmte Merkmale und Eigenschaften wie Eigenschaften und Methoden aufweist. Es kann alles sein (eine Zeichenfolge, eine Benutzersteuerung usw.).
Eine Instanz ist eine eindeutige Kopie dieses Objekts, mit der Sie Dinge ausführen können.
Stellen Sie sich ein Produkt wie einen Computer vor.
Die xw6400-Workstation ist ein Objekt
IHRE xw6400-Workstation (oder die xw6400-Workstation IHRER FRAU) ist eine Instanz des xw6400-Workstation-Objekts
quelle
Diese Antwort kann als banal angesehen werden, aber die Sorge um die Unterschiede zwischen einer Instanz und einem Objekt ist bereits eine banale Stadt.
Ich denke, es ist am besten in Javascript dargestellt:
Verse
quelle
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.
quelle
Wenn wir die Definition von Objekt und Instanzobjekt sehen -
Der zur Laufzeit für das Klassenmitglied zugewiesene Speicher wird als Objekt bezeichnet, oder Objekt ist die Instanz der Klasse.
Lassen Sie uns die Definition der Instanz sehen -
Der zur Laufzeit für Any zugewiesene Speicher wird als Instanzvariable aufgerufen.
Verstehen Sie nun die Bedeutung jeder Laufzeitspeicherzuweisung, die in C auch über Malloc, Calloc, Realloc erfolgt, wie z.
Auch hier weisen wir die Laufzeitspeicherzuweisung zu, aber hier rufen wir als Instanz auf, sodass t1 eine Instanz ist. Hier können wir t1 nicht als Objekt bezeichnen. Jedes Objekt ist die Instanz der Klasse, aber jede Instanz ist kein Objekt.
quelle
Objekt - Eine Instanz einer Klasse, die über einen eigenen Status und Zugriff auf das gesamte von ihrer Klasse definierte Verhalten verfügt.
Instanz - Verweis auf einen Speicherbereich für diese bestimmte Klasse.
quelle
Ich kann es nicht glauben, außer einem Mann, der den Code nicht benutzt hat, um das zu erklären, lass es mich auch versuchen!
Jetzt ist die linke Seite, dh: "humanClassObject1", das Objekt und die rechte Seite, dh: HumanClass (Name: "Rehan") ist die Instanz dieses Objekts.
Die Instanz enthält also im Grunde genommen die spezifischen Werte für dieses Objekt und die Objekte enthalten den Speicherort (zur Laufzeit).
Denken Sie an die berühmte Aussage "Objektreferenz nicht auf eine Instanz eines Objekts festgelegt". Dies bedeutet, dass nicht initialisierte Objekte keine Instanz haben. In einigen Programmiersprachen wie swift erlaubt Ihnen der Compiler nicht einmal, eine Klasse zu entwerfen, die nicht alle Mitglieder initialisieren kann (Variable, z. B. Name, Alter usw.), aber in einigen Sprachen dürfen Sie dies tun:
Und der Fehler wird nur zur Laufzeit angezeigt, wenn Sie versuchen, Folgendes zu tun:
Dieser Fehler zeigt an, dass die spezifischen Werte (für Variablen \ Eigenschaft) "INSTANZ" sind, wie ich oben versucht habe, dies zu erklären! Und das Objekt dh: "myClass" enthält den Speicherort (zur Laufzeit).
quelle
Wenn eine Variable von einem benutzerdefinierten Typ (Klasse) deklariert wird, wird nur eine Referenz erstellt, die als Objekt bezeichnet wird. Zu diesem Zeitpunkt ist diesem Objekt kein Speicher zugeordnet . Es fungiert nur als Zeiger (auf den Ort, an dem das Objekt in Zukunft gespeichert wird). Dieser Vorgang wird als "Erklärung" bezeichnet.
Wenn andererseits eine Variable vom Typ "Benutzerdefiniert" mit dem
new
Operator deklariert wird, der diesem Objekt Speicher im Heap zuweist und den Verweis auf den zugewiesenen Speicher zurückgibt. Dieses Objekt, das jetzt als Instanz bezeichnet wird . Dieser Vorgang wird als "Instanziierung" bezeichnet.Andererseits entspricht ein Objekt in einigen Sprachen wie Java einer Instanz, wie aus der Zeile in der Oracle-Dokumentation zu Java hervorgeht :
quelle
Jedes Objekt, das als Instanz seiner Klasse bezeichnet wird, aber jede Instanz der Klasse hat einen eigenen Wert für jedes Attribut. intances teilt den Attributnamen und die Operation mit ihren Intanzen der Klasse, aber ein Objekt enthält einen impliziten Verweis auf seine on-Klasse
quelle
Klasse: Eine Klasse ist eine Blaupause. Objekt: Es ist die Kopie der Klasse. Instanz: Dies ist eine Variable, die verwendet wird, um die Speicheradresse des Objekts zu speichern.
Ein sehr einfaches analytisches Beispiel
Klassenhaus -> Blaupause des Hauses. Aber Sie können nicht in der Blaupause leben. Sie benötigen ein physisches Haus, das die Instanz der Klasse ist, in der Sie leben möchten. Die tatsächliche Adresse des Objekts ist also die Instanz. Instanzen repräsentieren Objekte.
quelle
Sobald Sie eine Klasse instanziieren (mit new), wird dieses instanziierte Objekt zu einem Objekt. Ein Objekt kann sich an Kapselung, Polymorphismus, Abstraktionsprinzipien der objektorientierten Programmierung und der Realität halten, mit der ein Programm interagiert, um die in der Klasse definierten Instanzmitglieder zu verbrauchen. Das Objekt enthält Instanzmitglieder (nicht statische Mitglieder).
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" sagen, als "Objekt einer Klasse" (obwohl letzteres verwendet werden kann).
Sie können auch den Abschnitt "Innere Klassen" dieses Java-Dokuments zu verschachtelten Klassen lesen - https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
quelle
Java ist eine objektorientierte Programmiersprache (OOP). Dies bedeutet, dass alles in Java außer den primitiven Typen ein Objekt ist.
Jetzt ähneln Java-Objekte realen Objekten. Zum Beispiel können wir ein Autoobjekt in Java erstellen, das Eigenschaften wie die aktuelle Geschwindigkeit und Farbe hat. und Verhalten wie: beschleunigen und parken.
Das ist Objekt .
Die Instanz auf der anderen Seite ist eine eindeutig initialisierte Kopie dieses Objekts, die aussieht
Car car = new Car()
.Probieren Sie es aus, um mehr über Java-Klassen und -Objekte zu erfahren
quelle
Schnelle und einfache Antwort
quelle
In Bezug auf den Unterschied zwischen einem
object
und eineminstance
glaube ich nicht, dass es einen Konsens gibt.Es sieht für mich so aus, als würden die Leute es ziemlich austauschbar ändern, in Zeitungen, Blog-Posts, Büchern oder Gesprächen.
So wie ich es sehe, ist ein Objekt eine generische und lebendige Entität im Speicher, die durch die Sprache angegeben wird, in der es verwendet wird. Genau wie die
Object
Klasse inJava
. Wir kümmern uns nicht viel um seinen Typ oder irgendetwas anderes, das damit verbunden ist, ob er von einem Container verwaltet wird oder nicht.An
instance
ist einobject
aber einem Typ zugeordnet, wie inthis method accepts Foo instances
oderyou can not put Animal instances in an instance of a List of Vehicles
.object
s haben zum Beispiellocks
mit ihnen verbunden, nichtinstance
s, währendinstance
s Methoden haben.objects
werden Müll gesammelt, nichtinstance
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 zwischen ihnen beziehen können, und jeder wird so ziemlich sein leicht unterschiedliches Verständnis / seine Definitionen haben (natürlich in Grenzen). .
quelle
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
Da ist nichts mehr dran
quelle
Ein Objekt kann eine Klasse sein, beispielsweise eine Klasse namens Basketball.
Sie möchten jedoch mehrere Basketbälle haben, sodass Sie in Ihrem Code mehr als einen Basketball erstellen
Sagen Sie Basketball1 und Basketball2. Dann führen Sie Ihre Anwendung aus. Sie haben jetzt 2 Instanzen des Objektbasketballs.
quelle
Objekt bezieht sich auf Klasse und Instanz bezieht sich auf ein Objekt. Mit anderen Worten, Instanz ist eine Kopie eines Objekts mit bestimmten Werten.
quelle