Was ist klassenbasiertes Programmieren?

Im C-Kurs wurden bereits Strukturen behandelt. Schauen wir uns eine Struktur an, die ein Tier beschreibt:

struct Tier
{
  int  AnzahlBeine;
};

Im großen Ganzen haben wir hiermit bereits eine Klasse beschrieben. Denn ein Tier ist eine Klasse von Begriffen, wie beispielsweise Ameise, Katze, Mensch, Vogel. Die drei Tierarten haben eigentlich nicht viel miteinander zu tun, aber das Wort 'Tier' klassifiziert sie im Gegensatz zu einer anderen Klasse von Lebensformen: den Pflanzen.

Ein struct Tier ist also eine Abstraktion von einer ganzen Klasse von Lebensformen: eben den Tieren.

Die Ist-Ein-Regel

Klassifizierungen lassen sich mit der Ist-Ein-Beziehung beschreiben.

Eine Ameise ist ein Tier, eine Katze ist ein Tier, ein Mensch ist ein Tier und ein Vogel ist ein Tier.

Aber: Wichtig ist hier zu verstehen, dass die Beziehung in nur eine Richtung funktioniert. Denn ein Tier ist keine Ameise, ein Tier ist keine Katze, ein Tier ist kein Mensch und ein Tier ist kein Vogel.

Ein Tier könnte eine Ameise sein, aber es könnte auch eine Katze, ein Mensch oder ein Vogel sein. Die Ist-Ein-Beziehung führt immer nur vom Speziellem (die Ameise, die Katze…) zum Abstraktem (dem Tier).

Warum Klassifiziert man?

Viele Daten ähneln sich, sind aber nicht vom gleichen Typ. Nehmen wir Linien, Kreise und Rechtecke: sie alle haben einen einen Startpunkt. Man kann die drei Typen also zu einem Typen klassifizieren, der Gemeinsamkeiten der einzelnen Objekte zusammenfasst. Ein Datentyp GraphischesObjekt kann den Startpunkt beschreiben.

Anschließend kann man Funktionen schreiben, welche entweder spezialisierte Instanzen 1) verlangen, weil sie z.B. die Fläche eines Kreises berechnen oder man kann eine Klasse abfragen, zum Beispiel das die Klasse GraphischeObjekt, wenn es keine Rolle spielt, ob es sich um eine Linie, einen Kreis oder ein Rechteck handelt.

Die Klassifizierung hilft also Gemeinsamkeiten von Datenstrukturen zu beschreiben.

1) Datensätze