Objekt (Informatik): Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) (Seite angelegt, wird noch erweitert) |
Sn (Diskussion | Beiträge) K (Navileiste) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Ein [[Objekt (Informatik)|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 [[Klasse (Informatik)|Klassen]] sein, müssen dies aber nicht zwingend. | Ein [[Objekt (Informatik)|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 [[Klasse (Informatik)|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 ====== | ||
[[Datei:BlueJ Objektinspektor.png|alternativtext=Der Zustand eines Objekts im BlueJ-Objektinspektor|mini|Der Zustand eines Objekts im BlueJ-Objektinspektor]] | |||
Der '''Zustand''' eines Objekts wird definiert durch seine [[Attribut (Informatik)|Attribute]] und seine Beziehungen zu anderen Objekten. Wenn zwei Objekte den gleichen Zustand, aber nicht dieselbe Identität (s.u.) haben, sind sie gleich. | |||
== Identität == | ====== Verhalten ====== | ||
Jedes Objekt hat eine '''Identität''', die dieses von anderen Objekten unterscheidet, selbst wenn diese den exakt gleichen Zustand aufweisen. In [[Python (Programmiersprache)]] kann z.B. mit dem Operator <code>==</code> die ''Gleichheit'' zweier Objekte geprüft werden, während die ''Identität'' mit <code>is</code> verglichen wird:<syntaxhighlight lang="python" line="1"> | Das '''Verhalten''' eines Objekts wird definiert durch die [[Unterprogramm#Methoden|Methoden]], die dieses Objekt ausführen kann. Alle Scratch-Objekte können zum Beispiel Methoden ausführen wie <sb>zeige dich</sb> oder <sb>gehe zu x: (42) y: (42)</sb>. | ||
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 [[Klasse (Informatik)|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 (Programmiersprache)|Python]] kann z.B. mit dem Operator <code>==</code> die ''Gleichheit'' zweier Objekte geprüft werden, während die ''Identität'' mit <code>is</code> verglichen wird:<syntaxhighlight lang="python" line="1"> | |||
>>> liste1 = [1, 2, 3] | >>> liste1 = [1, 2, 3] | ||
>>> liste2 = [1, 2, 3] | >>> liste2 = [1, 2, 3] | ||
Zeile 15: | Zeile 20: | ||
>>> liste1 is liste2 | >>> liste1 is liste2 | ||
False | False | ||
</syntaxhighlight> | </syntaxhighlight>Demgegenüber vergleicht <code>==</code> in [[Java (Programmiersprache)|Java]] die Identität zweier Objekte, während für die Prüfung der Gleichheit eine <code>equals</code>-Methode vorhanden sein muss.<syntaxhighlight lang="java" line="1"> | ||
}}{{Navigationsleiste Objekte in verschiedenen Sprachen}} | string1 = "Hallo Welt!"; | ||
string2 = "Hallo Welt!"; | |||
string1 == string2; // ist false | |||
string2.equals(string2); // ist true | |||
</syntaxhighlight> | |||
{{Navigationsleiste OOM}} | |||
{{Navigationsleiste Objekte in verschiedenen Sprachen}} | |||
[[Kategorie:Informatik]] | [[Kategorie:Informatik]] | ||
[[Kategorie:Objektorientierte Programmierung]] | [[Kategorie:Objektorientierte Programmierung]] |
Aktuelle Version vom 14. Dezember 2023, 18:28 Uhr
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 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