| Phase | Was entsteht | Planning use |
|---|---|---|
| Klasse planen | Alltagsklasse Buch mit Klassendiagramm | Vor dem Code klären, welche Daten und welches Verhalten die Klasse braucht. |
| Attribute und Methoden | Felder und Methoden im Klassenrumpf | Struktur und Verhalten der späteren Objekte festlegen. |
| Konstruktor und this | Startwerte beim Anlegen eines Objekts | Sicherstellen, dass jedes Objekt mit sinnvollen Werten beginnt. |
| Kapselung | Private Attribute mit Getter und Setter | Zugriff auf Daten kontrollieren, statt sie offen liegen zu lassen. |
| Objekte erzeugen | Mehrere Buch-Objekte mit eigenen Werten | Klasse und Objekt unterscheiden und die Klasse im Programm testen. |
Die Reihenfolge folgt dem Aufbau des Lernpfads Objektorientierte Programmierung mit Java, der Objektvariablen, Methoden, das Erstellen von Objekten und den Konstruktor nacheinander behandelt, sowie dem Objects-first-Ansatz im BlueJ-Kurs von u-helmich.de.
Objektorientierte Programmierung Java Schule heißt in der Praxis: eine Klasse als Vorlage planen, Konstruktor und Kapselung ergänzen und danach Objekte erzeugen. Alle Schritte laufen hier an derselben Beispielklasse Buch.
Wer zuerst die Grundlagen der Sprache wiederholen möchte, findet sie im Überblick zu java lernen schule. Die folgenden Abschnitte setzen Variablen und einfache Anweisungen voraus und bauen daraus eine vollständige Klasse auf.
Klasse planen: Alltagsbeispiel und Klassendiagramm
Eine Klasse ist nach einer Einführung zu den Konzepten der objektorientierten Programmierung ein Blueprint oder eine Vorlage zum Erstellen von Objekten. Sie definiert die Struktur und das Verhalten dieser Objekte, also Felder und Methoden. Ein Buch eignet sich als Einstieg, weil jeder Titel und Autor kennt und Schülerinnen und Schüler sofort entscheiden können, was zu einem Buch gehört und was nicht.
Zuerst entsteht das Java-Klassendiagramm auf Papier. Es zwingt dazu, die Klasse zu durchdenken, bevor eine Zeile Code geschrieben wird. Wer direkt am Rechner beginnt, vermischt Planung und Syntaxfehler und sucht Fehler an der falschen Stelle.
- Namen wählen: Die Klasse heißt Buch, ein Substantiv im Singular. Der Name steht im oberen Feld des Kastens.
- Eigenschaften sammeln: Titel und Autor beschreiben jedes Buch. Sie kommen als Attribute ins mittlere Feld, jeweils mit Datentyp, hier String.
- Verhalten sammeln: Ein Buch soll seinen Titel nennen und ihn ändern können. Daraus werden getTitel und setTitel im unteren Feld.
- Auf Notwendiges beschränken: Nur aufnehmen, was die Aufgabe braucht. Ein Diagramm mit allen denkbaren Eigenschaften eines Buchs wird unübersichtlich und lenkt vom Lernziel ab.

Attribute und Methoden schreiben
Aus dem Diagramm wird der Rumpf der Klasse. Die Klasse legt fest, welche Felder und Methoden ihre Objekte haben. Attribute heißen im Unterricht oft Objektvariablen, wie auch im oben genannten Lernpfad.
Attribute als Objektvariablen
Jedes Feld aus dem mittleren Kasten wird zu einer Variablen in der Klasse. Sie steht außerhalb jeder Methode und gehört später zu jedem einzelnen Objekt. Für das Beispiel genügen zwei Zeilen:
- private String titel;
- private String autor;
Das Wort private ist hier Absicht. Klassenvariablen werden nach derselben Einführung als privat markiert, damit von außen niemand direkt auf sie zugreift. Warum das sinnvoll ist, zeigt der Abschnitt zur Kapselung weiter unten.
Methoden als Verhalten
Methoden bilden die Einträge aus dem unteren Feld des Diagramms ab. Eine Abfrage wie getTitel gibt einen Wert zurück, eine Änderung wie setTitel nimmt einen Parameter entgegen:
- public String getTitel() { return titel; }
- public void setTitel(String titel) { … }
Wie Parameter und Rückgabewerte im Detail funktionieren, erklärt der Beitrag zum Thema java methoden schreiben. Für diese Klasse reicht die Faustregel: Jede Methode im Diagramm braucht genau einen Kopf mit Rückgabetyp, Namen und Parameterliste.
Konstruktor und das Schlüsselwort this
Der Konstruktor ist im Java-Lernpfad ein eigener Schritt nach dem Erstellen von Objekten. Er legt fest, mit welchen Werten ein Objekt startet. Ohne ihn hätten Titel und Autor eines neuen Buchs keinen sinnvollen Anfangswert.
Der Konstruktor der Klasse Buch nimmt beide Werte als Parameter entgegen:
- public Buch(String titel, String autor) {
- this.titel = titel;
- this.autor = autor;
- }
Hier erklärt sich das Java-Schlüsselwort this. Parameter und Attribut tragen denselben Namen. this.titel bezeichnet das Attribut des Objekts, das gerade entsteht, titel allein den Parameter. Wer this weglässt, weist den Parameter sich selbst zu, und das Attribut bleibt ohne Wert.
- Parameter benennen: Gleiche Namen wie bei den Attributen wählen, damit die Zuordnung im Diagramm nachvollziehbar bleibt.
- Zuweisung schreiben: Links this mit Punkt und Attributnamen, rechts den Parameter.
- Alle Attribute abdecken: Jedes Attribut aus dem Diagramm erhält im Konstruktor einen Wert, sofern es nicht bewusst leer starten soll.

Kapselung mit Getter und Setter
Kapselung ist der Mechanismus zur Einschränkung des Zugriffs auf die Daten, also die Felder, eines Objekts. Sie besteht aus zwei Teilen: privaten Attributen und öffentlichen Methoden, über die das Objekt kontrolliert erreichbar bleibt. Die Zugriffsmodifizierer private und public übernehmen dabei die Regelung.
Getter und Setter schaffen laut der oben verlinkten Einführung Datenversteckung und kontrollierten Zugriff. Der Getter liefert einen Wert, der Setter ändert ihn. Der Vorteil eines Setters liegt darin, dass er vor dem Zuweisen prüfen kann:
- Der Setter setTitel(String titel) nimmt den neuen Titel entgegen und setzt das Feld, bevor der Block {
- if (titel != null && !titel.isEmpty()) { this.titel = titel; }
- }
Ein Hauptprogramm, das direkt mit buch.titel arbeitet, würde diese Prüfung umgehen. Deshalb schreibt der Compiler bei privaten Attributen den Umweg über die Methoden vor.
Wann sich ein Setter lohnt
Nicht jedes Attribut braucht beide Methoden. Ein Getter genügt, wenn der Wert nur gelesen werden soll. Einen Setter ergänzt man erst, wenn sich der Wert nach dem Erzeugen wirklich ändern darf. Für Schulprojekte ist das eine gute Leitlinie, weil die Klasse so nur die Zugriffe erlaubt, die im Diagramm vorgesehen sind.

Objekte erzeugen: Klasse und Objekt unterscheiden
Eine Klasse ist die Vorlage, ein Objekt ist eine Instanz dieser Klasse mit eigenen Werten. Die Klasse Buch beschreibt, dass es Titel und Autor gibt. Erst ein Objekt wie ein konkretes Buch trägt tatsächlich einen Titel. Genau dieser Unterschied steht am Anfang des BlueJ-Workshops von u-helmich.de.

Im Hauptprogramm entstehen Objekte mit new und dem Konstruktoraufruf:
- Buch buchA = new Buch(“Momo”, “Michael Ende”);
- Buch buchB = new Buch(“Faust”, “Johann Wolfgang von Goethe”);
- buchB.setTitel(“Der Prozess”);
Beide Objekte stammen aus derselben Klasse, haben aber getrennte Zustände. Die Änderung an buchB berührt buchA nicht. Wer das im Unterricht sichtbar machen will, legt für jedes Objekt eine Karte oder Haftnotiz mit den aktuellen Attributwerten an und streicht den alten Wert beim Setter-Aufruf durch.

| Merkmal | Klasse | Objekt |
|---|---|---|
| Rolle | Bauplan oder Vorlage | Instanz der Klasse |
| Werte | Legt Attribute und Methoden fest | Trägt eigene Attributwerte |
| Entstehung | Wird im Quelltext geschrieben | Wird zur Laufzeit instanziiert |
Die Gegenüberstellung stützt sich auf die Begriffsklärung in der Einführung zur objektorientierten Programmierung und auf den Hinweis zum Instanziieren im Java-Einstiegskurs des HPI.
Beispiele aus dem Unterricht
Der genannte Lernpfad deckt nach eigener Angabe die relevanten Inhalte der Einführungsphase am Gymnasium in NRW ab. Er gliedert den Stoff in Objektvariablen, Methoden, Parameter und Rückgaben, das Erstellen von Objekten, den Konstruktor und Referenzen. Das entspricht genau der Reihenfolge, in der die Klasse Buch hier gewachsen ist.
Im BlueJ-Kurs beginnt der Unterricht dagegen mit dem Shapes-Projekt. Dort lernen die Kursteilnehmer die Graphik-Objekte Kreis, Quadrat und Dreieck kennen und erzeugen zunächst Objekte, bevor sie eigene Klassen schreiben. Wer lieber sichtbare Ergebnisse als Text auf der Konsole möchte, findet darin eine Alternative zum Buch-Beispiel. Sobald mehrere Klassen gemeinsame Eigenschaften haben, setzt das Thema java vererbung erklärt an.
Typische Fehler und wie sie sich beheben lassen
- Direkter Zugriff auf private Attribute: Greift das Hauptprogramm direkt auf titel zu, verweigert der Compiler den Zugriff. Abhilfe schaffen getTitel und setTitel.
- this vergessen: Heißen Parameter und Attribut gleich und fehlt this, bleibt das Attribut ohne Startwert. Im Konstruktor immer this.attribut = parameter schreiben.
- Klasse mit Objekt verwechselt: Eine Methode wie getTitel wird an einem Objekt aufgerufen, etwa buchA.getTitel(), nicht am Klassennamen Buch.
- Objekt nicht erzeugt: Eine Variable vom Typ Buch ohne new verweist auf kein Objekt. Zuerst mit new und dem Konstruktoraufruf instanziieren.
Bleibt ein Fehler unklar, hilft ein Blick zurück ins Klassendiagramm. Meist fehlt dort ein Attribut oder eine Methode, die im Code anders heißt.
Frequently asked questions
Was bedeutet Instanziierung?
Instanziierung ist das Erzeugen eines Objekts aus einer Klasse. In Java geschieht das mit new und dem Konstruktor, wie im Einstiegskurs des HPI beschrieben.
Wozu dient das Motto Objects first?
Es stammt von den BlueJ-Erfindern. Der Unterricht beginnt sofort mit Objekten und Klassen, statt zuerst lange nur einfache Anweisungen zu üben.
Kommt Java in Abituraufgaben vor?
Ja, zumindest in NRW: Die Aufgaben des NRW-Zentralabiturs verwenden Java-Quelltexte. Klassen, Konstruktoren und Getter sollte man deshalb im Quelltext lesen können.
Genügt ein Getter ohne Setter?
Ja, wenn der Wert nach dem Erzeugen nur gelesen und nicht mehr verändert werden soll. Einen Setter ergänzt man nur dann, wenn eine Änderung vorgesehen ist.



