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
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
3:47
Objektorientierung in Java - Objektorientierte Programmierung in Java Teil 1
Informatik - simpleclub · 206.250 Aufrufe
7:57
Objektorientierung in 10 Minuten
Programmieren lernen · 45.360 Aufrufe
38:07
Grundlagen d. Informatik u. Programmierung 2: 2.1 Objektorientierte Progr. – Motivation (SoSe 2020)
Visual Computing WH · 845 Aufrufe