Ich hatte bis jetzt so verstanden, daß ich einer Variablen zu einem Zeitpunkt genau einen Wert speicher kann (Eigenschaft der Variablen???).
Nur können im Unterschied zu solchen einfachen Variablen in bzw. zu Objekten wesentlich mehr Dinge abgespeichert werden, nämlich mehrere Eigenschafte und gar Methoden. Jedenfalls hatte ich das bis jetzt so verstanden. OnError bitte Antwort.
Wenn es nur die "mehrere Eigenschaften" wären, dann wäre ein Array keine Variable, oder eine "struct" in C bzw. ein "record" in Pascal. Sind sie aber.
Eine Variable kann sehr wohl eine Struktur aufweisen und dann eben auch mehrere Eigenschaften haben; wie komfortabel diese Struktur ist (bei einem Array sprichst Du die Komponenten über eine Nummer an, bei einem struct über einen Feldnamen), ist nicht ausschlaggebend.
Eine Klasse hat in der Tat einiges mit einer Typbeschreibung zu tun. Hierzu solltest Du Dir Programmiersprachen ansehen, bei denen man mit Typbeschreibungen wirklich etwas tun kann, vor allem Pascal ist da sehr zu empfehlen. Perl oder JavaScript erlauben hier leider kaum etwas; Perl kompensiert oftmals mit Objekten etwas, das Pascal auch schon mit record-Typen lösen kann.
Was m. E. eine Klasse von einer Typbeschreibung unterscheidet, das ist:
- bei einem Objekt hat der Anwender bewußtere Kontrolle über die Lebensdauer der Variablen (new() bzw. entsprechenden Terminationsfunktionen) als bei Variablen, deren Existenzbeginn und -ende meistens als Seiteneffekte von anderen Ereignissen (Funktionsaufruf -> impliziter Gültigkeitsbereich) beeinflußt wird.
- ein Objekt kann neben passiven auch aktive Daten (Funktionen) enthalten. Wenn man in Maschinensprache denkt, ist das nichts Ungewöhnliches (schließlich steht alles im selben Hauptspeicher herum), aber vieloe höhere Prgoammiersprachen trennen (wiederum aus didaktischen Gründen: Selbstmodifizierender Code ist bezüglich Debugging eine Katastrophe) zwischen Code und Daten. (Deshalb ist z. B. "eval" so schwer zu verstehen, weil es gegen diese Trennung verstößt.)