Checkmark on Circle.png

Objekt (Informatik)

Aus KGS-Wiki

Ein Objekt ist eine Datenstruktur in der Informatik, die durch ihren Zustand, ihr Verhalten und ihre Identität definiert ist. Objekte können dabei Instanzen von Klassen sein, müssen dies aber nicht zwingend.

In der objektorientierten Programmierung wird jede einzelne Komponente eines Programms als Objekt begriffen: jede Scratch-Figur, jeder Artikel in diesem Wiki, jede Zahl in einem Python-Programm.

Zustand
Der Zustand eines Objekts im BlueJ-Objektinspektor
Der Zustand eines Objekts im BlueJ-Objektinspektor

Der Zustand eines Objekts wird definiert durch seine Attribute und seine Beziehungen zu anderen Objekten. Wenn zwei Objekte den gleichen Zustand, aber nicht dieselbe Identität (s.u.) haben, sind sie gleich.

Verhalten

Das Verhalten eines Objekts wird definiert durch die Methoden, die dieses Objekt ausführen kann. Alle Scratch-Objekte können zum Beispiel Methoden ausführen wie zeige dich oder gehe zu x: (42) y: (42).

In einigen Programmiersprachen wie Scratch oder JavaScript kann man neue Methoden definieren, die nur von einem Objekt ausgeführt werden können, in anderen Sprachen wie Java kann man nur Methoden für ganze Klassen definieren, d.h. dass alle Objekte, die zu dieser Klasse gehören, diese Methoden ausführen können.

Identität

Jedes Objekt hat eine Identität, die dieses von anderen Objekten unterscheidet, selbst wenn diese den exakt gleichen Zustand aufweisen. In Python kann z.B. mit dem Operator == die Gleichheit zweier Objekte geprüft werden, während die Identität mit is verglichen wird:

>>> liste1 = [1, 2, 3]
>>> liste2 = [1, 2, 3]
>>> liste1 == liste 2
True
>>> liste1 is liste2
False

Demgegenüber vergleicht == in Java die Identität zweier Objekte, während für die Prüfung der Gleichheit eine equals-Methode vorhanden sein muss.

string1 = "Hallo Welt!";
string2 = "Hallo Welt!";
string1 == string2; // ist false
string2.equals(string2); // ist true