Einführung in die Objektorientierung

Die strukturierte Programmierung mit ihren Kontrollstrukturen ist ein wichtiger Meilenstein der Informatik. Ohne Sequenz, Auswahl und Wiederholung wäre Softwareentwicklung heute kaum denkbar. Doch die Welt hat sich weiterentwickelt – und mit ihr die Art, wie wir Programme entwerfen.

Ein moderner Ansatz, der heute in vielen Bereichen dominiert, ist die Objektorientierung.

 

🔄 Von prozedural zu objektorientiert

Bisher stand beim prozeduralen Programmieren vor allem der Ablauf im Mittelpunkt:

Ein Programm besteht aus Anweisungen, die nacheinander ausgeführt werden.

Die Objektorientierung erweitert diesen Blickwinkel.

Hier geht es nicht mehr nur um was passiert, sondern vor allem um wer etwas tut.

Jede Aktivität bezieht sich auf ein Objekt, das im Zentrum der Betrachtung steht.

Die Abläufe existieren weiterhin, aber sie sind nun fest an konkrete Objekte gebunden.

 

🚗 Beispiel: Fahren als Aktivität

Im prozeduralen Denken spricht man allgemein vom „Fahren“.
Autos fahren, Züge fahren, Heißluftballons fahren (oder eher „fahren mit dem Wind“).
Die Aktivität steht im Vordergrund.

In der objektorientierten Sichtweise ändert sich der Fokus:

  • Ein Auto fährt anders als
  • ein Zug fährt, und anders als
  • ein Heißluftballon fährt.

Die Aktivität ist also objektabhängig.
Deshalb wird sie einem bestimmten Objekt zugeordnet und nicht mehr als allgemeine, frei schwebende Aktion betrachtet.

 

🧩 Klassen und Objekte

Damit ein Programm weiß, welche Objekte existieren und was sie tun dürfen, braucht es eine Struktur, die diese Informationen beschreibt.

Diese Struktur nennt man Klasse.

Eine Klasse ist:

  • eine abstrakte Beschreibung eines Objekts
  • bestehend aus Daten (Eigenschaften / Attribute)
  • und Operationen (Methoden), die auf diese Daten wirken

 01 KlasseBeispiel

Aufbau einer Klasse. Quelle: Technik-Kiste.de

Beispiel:
Die Klasse Auto beschreibt:

  • Eigenschaften: Farbe, Geschwindigkeit, Tankfüllstand
  • Methoden: fahren(), bremsen(), tanken()

Aus einer Klasse können beliebig viele Objekte entstehen – jedes ein konkretes Exemplar dieser Beschreibung.

 

🔒 Kapselung: Daten + Methoden in einer Einheit

Ein zentrales Prinzip der Objektorientierung ist die Kapselung:

Daten und die zugehörigen Operationen werden in einer gemeinsamen Einheit – der Klasse – zusammengefasst.

Das bedeutet:

  • Nur die Methoden einer Klasse dürfen die Daten ihrer Objekte verändern.
  • Der Zugriff erfolgt kontrolliert und definiert.
  • Das schützt die Daten vor ungewollten Änderungen von außen.

Dieses Konzept ist einer der größten Unterschiede zur prozeduralen Programmierung und bildet die Grundlage für robuste, wartbare Software.

 

🚆 Klassen und Objekte am Beispiel „Zug“

Um die Prinzipien der Objektorientierung greifbar zu machen, eignet sich ein Beispiel aus der realen Technik besonders gut: ein Zug.
Ein Zug ist ein typisches Objekt, er besitzt Eigenschaften und kann bestimmte Aktionen ausführen. Genau diese Kombination aus Daten und Verhalten bildet das Herzstück der objektorientierten Programmierung.

🧱 Eigenschaften eines Zuges

Ein Zug lässt sich durch verschiedene Merkmale beschreiben, zum Beispiel:

  • leistungKW – Motorleistung in Kilowatt
  • ueberwacht – ob der Zug aktuell überwacht wird
  • vIst – aktuelle Geschwindigkeit
  • vMax – maximale Geschwindigkeit
  • wagen – Anzahl der Wagen

Alle Züge besitzen diese Eigenschaften, auch wenn die konkreten Werte je nach Zugtyp unterschiedlich sind.
In der Objektorientierung fasst man solche gemeinsamen Merkmale in einer Klasse zusammen.

02 ObjekteAusKlasseBeispielBeziehung zwischen Klasse und Objekte. Quelle: Technik-Kiste.de

🧩 Die Java‑Klasse „Zug“

In Java könnte die Klasse so aussehen:

class Zug {

    int leistungKW;

    boolean ueberwacht;

    int vIst;

    int vMax;

    int wagen;

}

Diese Variablen nennt man Attribute oder Membervariablen.
Sie speichern die Eigenschaften jedes einzelnen Zug‑Objekts wie z. B.

🚆 Objekte erzeugen: Deklaration und Definition

Eine Klasse allein erzeugt noch keinen Zug, sie ist nur die Vorlage.
Um ein echtes Objekt zu erzeugen, braucht es zwei Schritte:

1. Deklaration

Zug ICE;

2. Definition

ICE = new Zug();

Oder kombiniert:

Zug ICE = new Zug();

Objekte nennt man auch Instanzen einer Klasse.

🎨 Eigenschaften setzen: Die Punktnotation

Ein frisch erzeugtes Objekt hat zwar Attribute, aber noch keine Werte.
Mit der Punktnotation kannst du sie zuweisen:

ICE.leistungKW = 8000;

ICE.ueberwacht = true;

ICE.vIst = 120;

ICE.vMax = 300;

ICE.wagen = 8;

Und für die Gravita‑Lok:

Zug Gravita = new Zug();

 

Gravita.leistungKW = 1800;

Gravita.ueberwacht = false;

Gravita.vIst = 0;

Gravita.vMax = 100;

Gravita.wagen = 1;

🛠️ Methoden: Was ein Zug tun kann

Jetzt kommen die Aktivitäten ins Spiel.
Ein Zug soll nicht nur Eigenschaften besitzen, er soll auch etwas tun können.

Dafür gibt es Methoden.

Ich habe drei Methoden vorgesehen:

  • fahren() – Zug beschleunigt
  • bremsen() – Zug verlangsamt
  • sicherheitsfahrschaltung() – Sicherheitsfunktion (z. B. Sifa) wird ausgelöst oder quittiert

Hier ist die vollständige Klasse mit Methoden:

class Zug {

    int leistungKW;

    boolean ueberwacht;

    int vIst;

    int vMax;

    int wagen;

 

    void fahren(int delta) {

        vIst = vIst + delta;

        if (vIst > vMax) {

            vIst = vMax;

        }

    }

 

    void bremsen(int delta) {

        vIst = vIst - delta;

        if (vIst < 0) {

            vIst = 0;

        }

    }

 

    void sicherheitsfahrschaltung() {

        ueberwacht = !ueberwacht;

    }

}

Methoden sind Funktionen, die immer auf ein bestimmtes Objekt angewendet werden. Also auf einen konkreten Zug wie den ICE oder die Gravita‑Lok. Im Methodenrumpf wird dann festgelegt, was die Methode tun soll.

🔍 Methoden ohne Parameter und mit Rückgabewert

Eine Methode kann:

  • keine Parameter benötigen
  • einen Rückgabewert liefern
  • oder beides kombinieren

💡Wichtig: Innerhalb der Klasse schreibst du einfach leistungKW, vIst oder wagen, ohne Punktnotation.
Denn beim Schreiben der Klasse existieren noch keine Objekte.
Die Methode beschreibt nur, was später passieren soll, wenn ein Objekt sie aufruft.

 

🧩 Was bringt eine solche Klasse?

Eine Klasse ist kein Programm, das man direkt ausführt.
Sie ist ein Bauplan, der festlegt:

  • welche Daten ein Objekt besitzt (Attribute)
  • welche Aktionen erlaubt sind (Methoden)

Die eigentliche Verarbeitung passiert erst später, wenn konkrete Objekte erzeugt werden.

Dieses Prinzip gilt immer:

  1. Die Klasse definiert die Struktur und das Verhalten.
  2. Objekte nutzen diese Definition.
  3. Andere Programmteile dürfen nur über die Methoden mit den Objekten arbeiten.

Das ist einerseits eine Einschränkung, denn man muss sich an die vorhandenen Methoden halten. Andererseits ist es ein riesiger Vorteil:
Wenn Methoden gut dokumentiert sind, muss niemand wissen, wie sie intern funktionieren. Es reicht zu wissen:

  • Welche Parameter brauchen sie?
  • Was liefern sie zurück?

Das Innenleben bleibt verborgen und genau das ist Kapselung.

🧠 Warum ist das so wichtig?

Gerade in größeren Softwareprojekten ist dieses Prinzip entscheidend:

  • Ein Entwickler erstellt die Klasse Zug.
  • Er definiert Attribute und Methoden.
  • Er dokumentiert, wie die Methoden zu verwenden sind.

Andere Entwickler können dann:

  • ICE‑Objekte erzeugen
  • Gravita‑Objekte erzeugen
  • Methoden wie fahren() oder bremsen() aufrufen

…ohne sich jemals darum kümmern zu müssen, wie diese Methoden programmiert wurden.

Das macht objektorientierte Programmierung so mächtig.

🧩 Methoden können auch komplex werden

Methoden können beliebig komplex sein.

Beispiele:

  • Summe aller Werte in einem Objekt berechnen
  • Sortieren von Daten
  • Simulation von Fahrdynamik
  • Sicherheitslogik (z. B. Sifa, PZB, LZB)
  • Automatische Bremskurvenberechnung

Und genau hier zeigt sich:
Objektorientierung ersetzt die strukturierte Programmierung nicht: sie nutzt sie, um Methoden zu entwerfen.

 

🎯 Zusammenfassung

Die Grundidee sollte jetzt klar sein:

  • Eine Klasse beschreibt Daten und Verhalten.
  • Ein Objekt ist eine konkrete Instanz dieser Klasse.
  • Methoden definieren, was ein Objekt tun kann.
  • Kapselung sorgt dafür, dass Objekte nur über Methoden gesteuert werden.

Damit hast du die wichtigsten Grundlagen der Objektorientierung verstanden und kannst sie nun anwenden.


 

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Image

Umfrage

📢 Deine Meinung zählt!

Wir überlegen, einen Technik‑Kiste Newsletter zu starten – mit spannenden Technik‑Tipps, exklusiven Artikeln und Updates direkt in dein Postfach.

Damit wir genau das liefern, was dich interessiert, brauchen wir dein Feedback:

👉 Sag uns in unserer kurzen Umfrage, ob du dir so einen Newsletter wünschst und welche Inhalte dir am wichtigsten sind.

Deine Vorteile:

  • Mitreden, wie der Newsletter gestaltet wird
  • Exklusive Infos vor allen anderen
  • Keine Werbung, nur relevanter Technik‑Content

Jetzt mitmachen – es dauert nur 1 Minute!