Java

Klassen in Java

In diesem Beitrag erklären wir dir was Klassen in Java sind und wozu sie genau verwendet werden.

Klassen als Bauplan für Objekte

Was sind eigentlich Klassen und was haben sie mit Objekten zu tun?

Eine Klasse kannst du dir wie einen Bauplan vorstellen. Sie legt alle Eigenschaften eines bestimmten Objekttyps fest. Das kann ein simpler Würfel sein, aber auch etwas so komplexes wie ein Flugzeug.

Du kannst mit einem Bauplan beliebig viele Objekte des gleichen Typs bauen und kannst – ähnlich wie große Hersteller –  sogar einige benutzerdefinierte Änderungen zulassen. So kannst du Flugzeuge zum Beispiel in allen Farben und Größen bauen oder deine Würfel verschiedene Augenzahlen anzeigen lassen.

Objekte des gleichen Typs können benutzerdefiniert abgeändert werden

Außerdem legt eine Klasse auch das Verhalten der mit ihr erzeugten Objekte fest. Das liegt daran, dass deren Methoden in ihr definiert sind. Also ist die Klasse nicht nur der Bauplan, sondern auch der Pilot des Flugzeugs und bei Bedarf auch der Entsorgungsbetrieb.

Eine Klasse legt auch das Verhalten der in ihr erzeugten Objekte fest

Unified Modeling Language

Wie du siehst, sind Klassen essenziell zur effizienten Nutzung von Objekten. Doch wie sind sie aufgebaut, um das alles leisten zu können?

Um das zu untersuchen, bedienen wir uns der Unified-Modeling-Language, kurz UML, die uns erlaubt, die als Quellcode recht komplex wirkenden Strukturen einer Klasse schematisch darzustellen.

Die Unified Modeling Language stellt die Strukturen einer Klasse dar

Oben findest du den Klassennamen. Dieser ist immer ein Substantiv im Singular und wird groß geschrieben. Im Feld darunter legen wir eine Reihe von Attributen fest. Davon gibt es zwei verschiedene Typen: Zum einen die „normalen“ Attribute, die für jedes Objekt initialisiert werden und zum anderen Klassen-Attribute. Diese existieren nur einmal pro Klasse, egal wie viele Objekte wir erzeugen. Sie gelten also für alle Objekte einer Klasse.

Klassen-Attribute existieren sogar bereits bevor auch nur ein einziges Objekt in einer Klasse erzeugt wurde.

Ein Beispiel hierfür wäre ein Bestandszähler, der die Anzahl deiner Flugzeuge festhält, damit du weißt, wie viele du noch bauen musst, um deinen Auftrag erfolgreich abzuschließen.

Klassen-Attribute sind vergleichbar mit Bestandszählern

Klassen-Attribute und Kann- und Soll-Attribute

Attribute werden immer klein geschrieben, Klassen-Attribute immer unterstrichen. Dabei achten wir darauf, ob wir ein Attribut public, also öffentlich oder private, also privat deklarieren. Das ist wichtig! Denn dadurch wird festgelegt, ob auf das Attribut auch aus anderen Klassen heraus direkt zugegriffen werden kann. Ob ein Attribut public oder private ist, erkennt man im UML-Diagramm am vorangestellten + bzw. – und im Quellcode am nur bei privater Deklarierung vorhandenen private vor dem primitiven Datentyp.

Wichtig: Attribute müssen public oder private deklariert werden

Außerdem unterscheiden wir zwischen Kann- und Soll-Attributen. Soll-Attribute müssen für jedes Objekt mit einem gültigen Wert initialisiert werden. Sonst ist eine Konstruktion nicht möglich. Kann-Attribute hingegen haben keinen Einfluss darauf, ob ein Flugzeug gebaut werden kann.

Gibt der Kunde keine Größe an, wird es dir nicht möglich sein ein Flugzeug zu bauen, gibt er allerdings nur nicht an, dass er die Sonderausstattung haben möchte, so baust du für ihn einfach die Standardausführung.

Mit Kann-Attributen wird das Objekt trotzdem „gebaut“

Operationen zur Veränderung des Datenbestandes

So. Nun haben wir festgelegt, wie unsere Flugzeuge aussehen sollen, aber damit wir sie bauen können, brauchen wir auch noch Operationen.

Operationen einer Klasse werden genauso wie Attribute in Klassen-Operationen und „normale“ Operationen eingeteilt. Die Kennzeichnung ist hier ebenfalls dieselbe.

Operationen innerhalb einer Klasse

Stellen wir uns also vor, wir haben bereits eine Fabrik, die in der Lage ist in der von uns gewünschten Anzahl Flugzeuge zu produzieren. Jetzt müssen wir noch dafür sorgen, dass unsere Mitarbeiter das auch können.

Dazu lernen wir sie erst einmal ein und zeigen ihnen, wie man ein Flugzeug überhaupt herstellt. Als Sicherheitsmaßnahme sollen sie auch noch lernen, was zu tun ist, falls das Herstellen scheitert.

Herstellung des Objekts und Sicherheitsmaßnahmen

Dazu legen wir einen Konstruktor an. Er bekommt alle Daten, die er zur Konstruktion benötigt und produziert für uns, sofern unsere Eingaben gültig waren, ein nagelneues Flugzeug.

Sollten die Eingabeparameter ungültig gewesen sein oder ein Fehler bei der Produktion aufgetreten sein, so gibt uns der Konstruktor eine Exception aus.

Ausgabe der Exception bei fehlender Gültigkeit des Eingabeparameters

Aber allein mit der Mitarbeiterschulung ist unsere Arbeit nicht getan! Nun müssen wir das Informationsmanagement unserer Firma in Angriff nehmen. Jede Eigenschaft der zu produzierenden Flugzeuge muss jederzeit von jedem Mitarbeiter erfragbar und im Bedarfsfall anpassbar sein. Dazu erstellen wir für jedes Attribut sogenannte Getter- und Setter-Methoden. Mit Aufruf der Getter-Methode eines Attributs kann ein Mitarbeiter Werte abrufen, mit Hilfe der Setter-Methode dem Attribut einen neuen Wert zuweisen.

Getter- und Setter-Methoden

Außerdem muss vor Produktionsbeginn überprüft werden können, ob alle Soll-Attribute einen gültigen Wert besitzen. Dafür fügen wir noch extra sogenannte check-Operationen hinzu.

check-Operationen

Anpassung von digitalen Objekten jederzeit möglich

Bravo! Unsere Fabrik funktioniert nun perfekt. Es gib jedoch einen wichtigen Unterschied zwischen realen und digitalen Objekten, der dir beim Programmieren sehr gelegen kommen wird.

Im Gegensatz zu realen Flugzeugen, die einmal produziert unveränderlich sind, können wir unsere virtuell erzeugten Flugzeuge jederzeit den Wünschen unseres Kunden anpassen.

Virtuell erzeugte Objekte können jederzeit angepasst werden

Während der Programmlaufzeit lassen sich nämlich alle Attribute, für die wir das erlaubt haben, innerhalb der gültigen Werte ändern.

Nach dem erfolgreichen Programmieren steht einem Testflug mit deinem neuen Flugzeug wohl nichts mehr im Wege. Viel Spaß!

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.