Objekt (OOP): Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:
*Neben dem Objektidentifikator kann ein Objekt noch einen oder mehrere [[Objektname|Objektnamen]] haben. Diese sind im Gegensatz zum OID veränderlich, wiederverwendbar und nicht notwendigerweise systemweit eindeutig, dafür aber "verständlich".
*Neben dem Objektidentifikator kann ein Objekt noch einen oder mehrere [[Objektname|Objektnamen]] haben. Diese sind im Gegensatz zum OID veränderlich, wiederverwendbar und nicht notwendigerweise systemweit eindeutig, dafür aber "verständlich".


*Ein Objekt ''o'' hat zu jedem Zeitpunkt ''t'' einen systemweit eindeutigen [[Zustand]] ''state(o,t)'', welcher die "Eigenschaften" des Objektes zum Zeitpunkt ''t'' beschreibt.
*Ein Objekt ''o'' hat zu jedem Zeitpunkt ''t'' einen eindeutigen [[Zustand]] ''state(o,t)'', welcher die "Eigenschaften" des Objektes zum Zeitpunkt ''t'' beschreibt.


*Der Zustand eines Objektes ist [[gekapselt]] ([[private]]), d.h., er kann nicht direkt, sondern ausschließlich mit Hilfe von objektspezifischen, [[öffentlich]] ([[public]]) zugänglichen [[Funktionen]] abgefragt und [[Prozeduren]] verändert werden, oder er ändert sich selbstständig. Funktionen und Prozeduren, die auf Objekte angewendet werden, heißen [[Methoden]].
*Für ein Objekt ''o'' gibt es zu jedem Zeitpunkt ''t'' einen eindeutigen Satz an [[öffentlich|öffentlichen]] ([[public]]) [[Methode|Methoden]] ''methods(o,t)'', mit denen Zustandseigenschften des Objektes ''o'' erfragt und manipuliert werden können.
 
*Der Zustand eines Objektes ist [[gekapselt]] ([[private]]), d.h., er kann nicht direkt, sondern ausschließlich mit Hilfe öffentlich zugänglichen Methoden abgefragt und verändert werden, oder er ändert sich selbstständig.


*Mit Hilfe von [[Integritätsbedingung|Integritätsbedingungen]] können Beschränkungen für den Zustand und/oder die Methoden definiert werden, die zu bestimmten Zeitpunkten oder für die gesamte Lebensdauer des Objektes gültig sind.
*Mit Hilfe von [[Integritätsbedingung|Integritätsbedingungen]] können Beschränkungen für den Zustand und/oder die Methoden definiert werden, die zu bestimmten Zeitpunkten oder für die gesamte Lebensdauer des Objektes gültig sind.


=Bemerkung 1=
=Bedeutung von "systemweit"=
Der in der Definition verwendete Beriff ''systemweit'' ist nicht eindeutig definiert, sondern hängt von der jeweiligen objektorientierten Systemumgabung ab. Bei einem einfachen Programmlauf eines [[JAVA]]-Programms bedeutet ''systemweit''  
Der in der Definition verwendete Beriff ''systemweit'' ist nicht eindeutig definiert, sondern hängt von der jeweiligen objektorientierten Systemumgabung ab. Bei einem einfachen Programmlauf eines [[JAVA]]-Programms bedeutet ''systemweit''  
beispielsweise "zu jedem Zeitpunkt während des Programmlaufs innerhalb der [[Laufzeit]]umgebung". Für ein verteiltes
beispielsweise "zu jedem Zeitpunkt während des Programmlaufs innerhalb der [[Laufzeit]]umgebung". Für ein verteiltes
objektorientiertes Datenbanksystem bedeutet ''systemweit'' dagegen "über alle Zeit und alle beteiligten Datenbanken hinweg".
objektorientiertes Datenbanksystem bedeutet ''systemweit'' dagegen "über alle Zeit und alle beteiligten Datenbanken hinweg".
 
=Bemerkung 2=  
=Zustandsvariablen=  
Die meisten Objekte speichern ihren Zustand in so genannten
Die meisten Objekte speichern ihren Zustand in so genannten
[[Zustandsvariable|Zustandsvariablen]]. Das sind Variablen,  
[[Zustandsvariable|Zustandsvariablen]]. Das sind Variablen,  
Zeile 26: Zeile 28:
und auf die nur die Methoden des Objektes zugreifen können.
und auf die nur die Methoden des Objektes zugreifen können.


=Bemerkung 3=
=Anfrage- und Modifikationsmethoden=
Methoden, die Informationen über einen Objektzustand als Ergebnis liefern (d.h. Funktionen), heißen [[Anfragemethoden]]. Methoden, die den Objektzustand verändern können (d.h. Prozeduren), werden [[Modifikationsmethoden]] genannt. In der "reinen objektorientierten Lehre" gibt es keine Methoden, die gleichzeitig einen Objektzustand ändern und ein Ergebnis liefern können. In der Praxis gibt es dies dagegen schon.
Methoden, die Informationen über einen Objektzustand als Ergebnis liefern, heißen [[Anfragemethoden]]. Sie entsprechen den [[Funktion|Funktionen]] in [[prozedurale Programmierspache|prozeduralen]] oder [[funktionale Programmierspache|| funktionalen]] Programmierspachen.
 
Methoden, die den Objektzustand verändern können, werden [[Modifikationsmethoden]] genannt. Sie entsprechen den [[Prozedur|Prozeduren]] in [[prozedurale Programmierspache|prozeduralen]] Programmierspachen.
 
In der "reinen objektorientierten Lehre" gibt es keine Methoden, die gleichzeitig einen Objektzustand ändern und ein Ergebnis liefern können. In der Praxis gibt es dies dagegen schon, genaus, wie in den meisten anderen Programmiersprachen gar nicht oder nicht streng zwischen "[[Funktion]]" und "[[Prozedur]]" unterschieden wird. .


=Bemerkung 4=  
=Skripte=  
Eine Sammlung mehrerer Methoden und Zustandsvariablen wird in den
Eine Sammlung mehrerer Methoden und Zustandsvariablen wird in den
[[Autorensystem|Autorensystemen]] normalerweise [[Skript]] genannt.
[[Autorensystem|Autorensystemen]] normalerweise [[Skript]] genannt.

Version vom 25. Juli 2005, 11:58 Uhr

Definition

Objekte sind reale oder abstrakte "Dinge", die sich durch folgende Eigenschaften auszeichnen:

  • Ein Objekt existiert für eine gewisse Zeitspanne, d.h., es wird erzeugt und wieder zerstört. Dazu dienen so genannte Konstruktoren und Destruktoren.
  • Ein Objekt o hat einen unveränderlichen, systemweit eindeutigen und nicht wiederverwendbaren Objektidentifikator (OID) oid(o).
  • Neben dem Objektidentifikator kann ein Objekt noch einen oder mehrere Objektnamen haben. Diese sind im Gegensatz zum OID veränderlich, wiederverwendbar und nicht notwendigerweise systemweit eindeutig, dafür aber "verständlich".
  • Ein Objekt o hat zu jedem Zeitpunkt t einen eindeutigen Zustand state(o,t), welcher die "Eigenschaften" des Objektes zum Zeitpunkt t beschreibt.
  • Für ein Objekt o gibt es zu jedem Zeitpunkt t einen eindeutigen Satz an öffentlichen (public) Methoden methods(o,t), mit denen Zustandseigenschften des Objektes o erfragt und manipuliert werden können.
  • Der Zustand eines Objektes ist gekapselt (private), d.h., er kann nicht direkt, sondern ausschließlich mit Hilfe öffentlich zugänglichen Methoden abgefragt und verändert werden, oder er ändert sich selbstständig.
  • Mit Hilfe von Integritätsbedingungen können Beschränkungen für den Zustand und/oder die Methoden definiert werden, die zu bestimmten Zeitpunkten oder für die gesamte Lebensdauer des Objektes gültig sind.

Bedeutung von "systemweit"

Der in der Definition verwendete Beriff systemweit ist nicht eindeutig definiert, sondern hängt von der jeweiligen objektorientierten Systemumgabung ab. Bei einem einfachen Programmlauf eines JAVA-Programms bedeutet systemweit beispielsweise "zu jedem Zeitpunkt während des Programmlaufs innerhalb der Laufzeitumgebung". Für ein verteiltes objektorientiertes Datenbanksystem bedeutet systemweit dagegen "über alle Zeit und alle beteiligten Datenbanken hinweg".

Zustandsvariablen

Die meisten Objekte speichern ihren Zustand in so genannten Zustandsvariablen. Das sind Variablen, die dem Objekt zugeordnet sind und auf die nur die Methoden des Objektes zugreifen können.

Anfrage- und Modifikationsmethoden

Methoden, die Informationen über einen Objektzustand als Ergebnis liefern, heißen Anfragemethoden. Sie entsprechen den Funktionen in prozeduralen oder | funktionalen Programmierspachen.

Methoden, die den Objektzustand verändern können, werden Modifikationsmethoden genannt. Sie entsprechen den Prozeduren in prozeduralen Programmierspachen.

In der "reinen objektorientierten Lehre" gibt es keine Methoden, die gleichzeitig einen Objektzustand ändern und ein Ergebnis liefern können. In der Praxis gibt es dies dagegen schon, genaus, wie in den meisten anderen Programmiersprachen gar nicht oder nicht streng zwischen "Funktion" und "Prozedur" unterschieden wird. .

Skripte

Eine Sammlung mehrerer Methoden und Zustandsvariablen wird in den Autorensystemen normalerweise Skript genannt. Skripte werden manchmal auch -- gerade in Autorensystemen -- als eigenständige Objekte aufgefasst.

Siehe auch

Wikipedia: Objekt