Objekte und Klassen — Informatik, 14–17 Jahre
Objektorientierte Programmierung verbindet Daten mit den Operationen, die zu ihnen gehören. Es geht nicht nur darum, Dinge Objekte zu nennen, sondern Software nach Zuständigkeiten und Nachrichten zu gestalten.
Eine Klasse ist ein Plan, ein Objekt ist ein Ding
Eine Klasse beschreibt, was eine bestimmte Sorte von Dingen weiss und kann. Ein Objekt ist ein einzelnes Ding, das nach dieser Beschreibung entsteht und eigene Werte hat. Eine Klasse Fahrrad kann Farbe, Geschwindigkeit und bremsen() festlegen; fahrrad1 und fahrrad2 haben dann verschiedene Werte, aber denselben Bauplan.
Warum Daten und Aktionen verbinden?
Das Problem entsteht, wenn jeder Teil eines grossen Programms alle Daten verändern darf. Dann kann eine Änderung viele unverbundene Stellen beschädigen, und Zuständigkeiten werden unklar. Objekte geben jedem Teil eine klare Aufgabe und eine kontrollierte Art der Zusammenarbeit. Diese Idee entwickelte sich, um immer grössere und veränderliche Software zu bewältigen.
Ein kleines Bankkonto
Erzeuge ein Konto-Objekt mit saldo = 100. deposit(25) ändert den Kontostand auf 125, withdraw(40) auf 85. Wird withdraw(100) verlangt, kann das Objekt ablehnen, weil seine Regel einen negativen Stand verbietet. Das Konto schützt seine Daten und bietet trotzdem nützliche Aktionen an.
Nicht jedes Nomen braucht eine Klasse
Ein verlockender Fehler ist, jedes Nomen aus einer Beschreibung in eine Klasse zu verwandeln: Kunde, Adresse, Knopf, Farbe und so weiter. Das wirkt logisch, weil Klassen benannten Dingen aus der Alltagssprache ähneln. Nützlich ist eine Klasse aber nur, wenn sie wichtige Daten, Verhalten oder Identität verwaltet. Zu viele winzige Klassen können eine einfache Idee verdecken.
Objekte in echter Software
In einer Handy-App können Objekte einen Benutzer, eine Nachricht und einen Musikspieler darstellen. Jedes verwaltet seine Einzelheiten und arbeitet über klare Operationen mit anderen zusammen. So wird eine Änderung sicherer: Ein neuer Nachrichtenstil muss nicht die Kontosicherheit verändern. Das ist bei vielen miteinander verbundenen Dingen hilfreich, aber nicht für jedes Programm die beste Form.
Weiter erkunden
Andere Sprachen
MyLeoNes™ wird geladen…