Hallo
Was ist der genaue Unterschied zwischen einer Instanzvariablen, Objektvariablen und Membervariablen?
Genauer Unterschied zwischen Instanzvariablen, Objektvariablen und Membervariablen?
-
- Beiträge: 3
- Registriert: Sa Jun 16, 2012 11:10 pm
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Genauer Unterschied zwischen Instanzvariablen, Objektvariablen und Membervariablen?
Das kommt vermutlich ein wenig auf die Definition in der jeweiligen Sprache an, was eine Instanz, ein Objekt und ein Member ist.
Als erstes unterscheidet man zwischen Datentyp, Objekt und Wert. Ein float ist ein Datentyp, die Variable pi ist ein Objekt und hat hoffentlich den Wert 3,14... Packt man [unterschiedliche] Datentypen zusammen hat man einen neuen Datentyp, der je nach Sprache record, struct, class oder sonstwas heißt. Von dieser Typbeschreibung/Objektdeklaration kann man Instanzen erzeugen. Das sind die Objekte. Objekt und Instanz ist also synonym. Die Datentypen, die man in einem neuen Datentyp zusammengefasst hat, nennt man Attribute oder Member.
Solange Instanzen/Objekte bzw. deren Attribute/Member variable (also nicht konstant) sind, nenne man sie Variablen.
Als erstes unterscheidet man zwischen Datentyp, Objekt und Wert. Ein float ist ein Datentyp, die Variable pi ist ein Objekt und hat hoffentlich den Wert 3,14... Packt man [unterschiedliche] Datentypen zusammen hat man einen neuen Datentyp, der je nach Sprache record, struct, class oder sonstwas heißt. Von dieser Typbeschreibung/Objektdeklaration kann man Instanzen erzeugen. Das sind die Objekte. Objekt und Instanz ist also synonym. Die Datentypen, die man in einem neuen Datentyp zusammengefasst hat, nennt man Attribute oder Member.
Solange Instanzen/Objekte bzw. deren Attribute/Member variable (also nicht konstant) sind, nenne man sie Variablen.
Code: Alles auswählen
class Punkt // Objektdeklaraton / Typbeschreibung
{
int const id; // Memberkonstante
int x; // Membervariable / Attribut
int y;
...
};
Punkt A; // A ist Instanz [-variable] / Objekt [-varibale]
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Genauer Unterschied zwischen Instanzvariablen, Objektvariablen und Membervariablen?
Ich muss zugeben, dass ich diese Definition so noch nicht gesehen habeXin hat geschrieben: ↑Mi Sep 08, 2021 6:43 amCode: Alles auswählen
Punkt A; // A ist Instanz [-variable] / Objekt [-varibale]

Code: Alles auswählen
class SomeClass
{
int a; // Instanzvariable, Objektvariable, Membervariable
static float b; // Klassenvariable
// ...
};
SomeClass A; // A ist Instanz / Objekt

- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Genauer Unterschied zwischen Instanzvariablen, Objektvariablen und Membervariablen?
Eine Instanz/ein Objekt ist eine Realisierung einer Datentypbeschreibung. Also ist die Membervariable SomeClass::a auch eine Instanz/eom Objekt von Typ int. Als SomeClass::a betrachte ich es aber erstmal als Member des Typs SomeClass. Ob SomeClass überhaupt instanziiert wird, also es ein Objekt von SomeClass gibt, ist damit ja noch gar nicht gesagt. Eine Membervariable kann also deklariert sein, aber unter Umständen nie instanziiert werden. Es kann also sein, dass es von der Membervariablen SomeClass::a nie eine Instanz/ein Objekt existiert.
Den Begriff "Klassenvariable" habe ich noch nie gehört, er ergibt aber durchaus Sinn für mich. Ich spreche hier von einer statischen Variablen [im Namensraum] der Klasse "SomeClass".
Das Anhängsel "-variable" kennzeichnet für mich nur die Information, dass die Instanz/das Objekt variable ist und eben nicht konstant.
Mir ist keine DIN-Norm für die Begriffe bekannt. Weswegen meine Definition entsprechend genauso richtig oder falsch ist, wie alles andere auch.
Den Begriff "Klassenvariable" habe ich noch nie gehört, er ergibt aber durchaus Sinn für mich. Ich spreche hier von einer statischen Variablen [im Namensraum] der Klasse "SomeClass".
Das Anhängsel "-variable" kennzeichnet für mich nur die Information, dass die Instanz/das Objekt variable ist und eben nicht konstant.
Mir ist keine DIN-Norm für die Begriffe bekannt. Weswegen meine Definition entsprechend genauso richtig oder falsch ist, wie alles andere auch.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
- Beiträge: 3
- Registriert: Sa Jun 16, 2012 11:10 pm
Re: Genauer Unterschied zwischen Instanzvariablen, Objektvariablen und Membervariablen?
Ich hab das jetzt so verstanden:
Member... sind die Variablen bzw. Konstanten, die innerhalb einer Klasse definiert wurden.
Zu Objekt... bzw. Instanz... werden die Membervariablen bzw. -konstanten erst, wenn von der Klasse ein konkretes Objekt instanziiert wurde.
Member... sind die Variablen bzw. Konstanten, die innerhalb einer Klasse definiert wurden.
Zu Objekt... bzw. Instanz... werden die Membervariablen bzw. -konstanten erst, wenn von der Klasse ein konkretes Objekt instanziiert wurde.