Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Objektorientierung

Unter Objektorientierung (kurz OO) versteht man in der Softwaretechnik eine Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel …

Inhalt5 Abschnitte
  1. 1. Grundidee der Objektorientierung
  2. 2. Vererbung und Klassenhierarchien
  3. 3. Polymorphie und Zusammenspiel von Objekten
  4. 4. Kapselung durch Schnittstellen
  5. 5. Abstraktion bei der Modellierung

Grundidee der Objektorientierung

Objektorientierung (OO) ist in der Softwaretechnik eine Sichtweise auf komplexe Systeme: Ein System wird durch das Zusammenspiel kooperierender Objekte beschrieben. Ein Objekt muss nicht gegenständlich sein. Entscheidend ist, dass ihm Attribute und Methoden zugeordnet sind und dass es Nachrichten von anderen Objekten empfangen oder an sie senden kann. Attribute sind Eigenschaften eines Objekts; Methoden sind seine zugehörigen Programmteile beziehungsweise Fähigkeiten.

Ähnliche Objekte werden in einer Klasse zusammengefasst. Ein konkretes Objekt wird im Programmcode als Instanz oder Inkarnation einer Klasse definiert. Objektorientierte Programmierung soll die Komplexität von Programmen verringern. Sie fasst Daten und die dazugehörigen Programmteile zu einer Einheit zusammen, während diese in nicht objektorientierten Programmiersprachen bewusst getrennt und separat deklariert werden. Dadurch sollen Organisationsstrukturen der realen Welt besser nachgebildet werden.

Objektorientierung wird nicht nur beim Programmieren verwendet, sondern auch in vorgelagerten Phasen der Softwareentwicklung, etwa bei objektorientierter Analyse und objektorientiertem Design beziehungsweise objektorientiertem Entwurf. Die Konzepte können außerdem auf persistente Daten angewendet werden; dann spricht man von Objektdatenbanken. Fast alle höheren Programmiersprachen unterstützen objektorientierte Programmierung.

Vererbung und Klassenhierarchien

Vererbung bedeutet, dass eine abgeleitete Klasse die Attribute und Methoden einer Basisklasse ebenfalls besitzt, sie also „erbt“. Die abgeleitete Klasse kann deshalb auf diese Bestandteile zugreifen. Auf Grundlage vorhandener Objektdefinitionen lassen sich so neue Arten von Objekten festlegen.

Eine abgeleitete Klasse kann neue Bestandteile erhalten oder vorhandene Bestandteile überlagern. Eigenschaften und Methoden können zwischen Klassen hierarchisch ausgetauscht oder ergänzt werden. Seltener gibt es Mehrfachvererbung: Sie erlaubt einen nichthierarchischen Austausch von Eigenschaften. Wenn keine Vererbung zugelassen ist, wird dies zur Unterscheidung oft als Objektbasierung bezeichnet.

Polymorphie und Zusammenspiel von Objekten

Polymorphie bedeutet Vielgestaltigkeit. Sie bewirkt, dass Eigenschaften oder Methoden einer Klasse von Objekten referenziert werden können, ohne dass die konkrete Ausprägung des angesprochenen Objekts bekannt sein muss.

Mit Aggregation wird zwischen einem Ganzen und seinen Teilen unterschieden. Jedes Objekt kann als abstraktes Modell eines Akteurs verstanden werden: Es kann Aufträge erledigen, seinen Zustand berichten oder ändern und mit anderen Objekten kommunizieren. Dabei muss es nicht offenlegen, wie diese Fähigkeiten implementiert sind. Dies wird mit dem abstrakten Datentyp (ADT) verglichen.

Kapselung durch Schnittstellen

Datenkapselung schottet die interne Implementierung vor direktem externen Zugriff ab. Ein Zugriff darf nur über eine ausdrücklich definierte Schnittstelle erfolgen. Dadurch wird der Zugriff von den Details der Implementierung unabhängig.

Abstraktion bei der Modellierung

Eine Klassifizierung ist immer eine Einschränkung oder Vereinfachung der realen Welt in einem bestimmten Kontext. Daher gibt es niemals „die“ eine Klassifizierung: Sie hängt vom Ziel der Klassifikation ab.

Die Klasse „Auto“ kann je nach Kontext unterschiedlich modelliert werden. Für einen Autobauer können etwa Räder, Farbe und Bauteile wichtig sein. Ein Händler kann Produktnummer, Preis, Verbrauch und Erstzulassungsdatum benötigen. Für eine Zulassungsstelle können Kennzeichen, zulässiges Maximalgewicht und Halter relevant sein.

Auch die Entscheidung zwischen Attribut und Beziehung ist nicht immer eindeutig oder objektiv. Die Farbe eines Autos kann beispielsweise als Textattribut dargestellt werden, etwa durch eine textuelle Farbbeschreibung oder eine RAL- oder DIN-Farbnummer. Sie kann aber auch als Beziehung zur Klasse „Farbe“ modelliert werden. Das ist sinnvoll, wenn für Farben selbst besondere Eigenschaften dargestellt werden sollen. Möglicherweise muss die Farbe außerdem nicht für das gesamte Auto, sondern für einzelne Bauteile wie Stoßfänger, Spiegel, Motorhaube und Karosserie modelliert werden.

Wie stark ein Modell vereinfacht, hängt auch vom Zeitpunkt der Modellierung ab. Wenn ein Hersteller heute das ganze Auto mit einer einzigen Farbe verbindet, kann diese Vereinfachung zunächst genügen. Soll künftig jedes Bauteil eine eigene Farbe erhalten, reicht das frühere Modell möglicherweise nicht mehr aus.

Lernvideos zu Objektorientierung

Weiterlesen

Softwaretechnik ... Agile Softwareentwicklung. Die Softwaretechnik umfasst den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten … Objekt (Programmierung) Ein Objekt in der Programmierung bezeichnet eine inhaltlich zusammengehörige Datenmenge: In der objektorientierten Programmierung wird eine Objektinstanz … Attribut (Programmierung) Ein Attribut (von lateinisch attribuere ‚zuteilen', ‚zuordnen'), auch Eigenschaft genannt, gilt im Allgemeinen als Merkmal, Kennzeichen, Informationsdetail … Methode (Programmierung) Methoden (englisch method oder member function) sind in der objektorientierten Programmierung Unterprogramme in der Form von Funktionen oder Prozeduren, … Klasse (Objektorientierung) Die Klasse dient als Bauplan für die Abbildung von realen Objekten in Softwareobjekte und beschreibt Attribute (Eigenschaften) und Methoden (Verhaltensweisen) … Objektorientierte Programmierung Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee besteht darin … Komplexität Komplexe Ordnungen sind ständig im Wandel. Die Zunahme von Komplexität wird als „positive“, die Abnahme als „negative“ Komplexifikation bezeichnet. [A 9]. Objektorientierte Analyse und Design In der Analyse geht es darum, die Anforderungen zu erfassen und zu beschreiben, die das zu entwickelnde Softwaresystem erfüllen soll. In dieser Phase werden … Synonym Wörter mit gegensätzlicher Bedeutung sind Antonyme. Inhaltsverzeichnis. 1 Begriff der Synonymie; 2 Strikte und partielle Synonymie. 2.1 Strikte Synonymie … Persistenz (Informatik) Persistenz gewährleistet Datenkontinuität und Zuverlässigkeit. Sie schützt vor Informationsverlust bei Systemabbrüchen und ermöglicht die Wiederaufnahme von … Programmierparadigma Grundlegend für den Entwurf von Programmiersprachen sind die Paradigmen der imperativen und der deklarativen Programmierung. Beim letzteren sind als wichtige … Höhere Programmiersprache Eine höhere Programmiersprache ist eine Programmiersprache zur Abfassung eines Computerprogramms, die in Abstraktion und Komplexität von der Ebene der …