Defizit-Analyse
Aus der Klausureinsicht vom 04.05.2026 (Steffen Merk). Reihenfolge nach Häufigkeit/Punkteverlust.
Punktestand Klausur 24.04.2026
| Klasse | Punkte | Hauptkritik |
|---|---|---|
| Information | 2,5 / 2,75 | else mit return false fehlte |
| Ticket | voll | – |
| Professional | Abzug 1,25 | kein new Ticket(...) erzeugt; Konstruktor falsch |
| Student | 3 / 3 | – |
| Room (abstract) | 5 / 10,75 | Liste < int, kein else, Comparable fehlt |
| LectureHall | 2,25 / 6,75 | kein null-Check, instanceof fehlt, super.enter fehlt |
| BlockedRoom | ~1 / 2,5 | Room.isFree(false) ist Unsinn |
| MeetingRoom | ~2,75 | name == "ALLACCESS" ungültig |
| ConferenceCenter | 0 | Konstruktor-Überladung nicht verstanden |
| ExamTask | 1,5 | add statt enter, kein try/catch |
Top-10 Defizite
D1Liste vs. Größe
Du hast
Du hast
if (attendees < maxAttendees) geschrieben – das vergleicht ein Listenobjekt mit einer Zahl.
Richtig: if (attendees.size() < maxAttendees). Übung: 01-else-block.
D2else-Block fehlt
In fast jeder Methode: nur der true-Pfad, kein
In fast jeder Methode: nur der true-Pfad, kein
else { return false; }.
D3Comparable nicht implementiert
compareTo muss 1 / -1 / 0 zurückgeben – du hattest sort.attendees, was es nicht gibt.
Übung: 02-comparable.
D4instanceof statt Attributzugriff
Du hast
Du hast
attendee.Professional geschrieben – Professional ist eine Klasse, kein Attribut von Attendee.
Richtig: attendee instanceof Professional. Übung: 03-instanceof.
D5null-Check fehlt
Komplexe Datentypen sind per Default
Komplexe Datentypen sind per Default
null. isSpeakerPresent() prüft mit if (speaker == null) return false;.
Übung: 04-null-check.
D6Konstruktor-Verkettung mit
Bei überladenem Konstruktor ruft der Default-Konstruktor den Voll-Konstruktor auf:
this(...)Bei überladenem Konstruktor ruft der Default-Konstruktor den Voll-Konstruktor auf:
this(name, 4);. Du hast Parameter doppelt erfunden (numberOfFloors).
Übung: 05-konstruktor-this.
D7static vs. Instanz
Room.attendees.add(...) ist falsch (statisch). Auf Instanzfeldern: this.attendees.add(...)
bzw. innerhalb der Klasse einfach attendees.add(...).
Übung: 06-static-vs-instance.
D8Exception ohne Nachricht
throw new NotAllowedException(getMessage()) – die Methode existiert nicht.
Richtig: throw new NotAllowedException("Raum ist voll", this);.
Übung: 07-exception-message.
D9super.enter(...) vergessen
In Subklassen wird die Logik des Oberraums gebraucht:
In Subklassen wird die Logik des Oberraums gebraucht:
super.enter(attendee);.
Übung: 08-super-enter.
D10String-Vergleich mit ==
name == "ALLACCESS" vergleicht Referenzen.
Richtig: "ALLACCESS".equals(name) (null-sicher).
Diagnose Steffen Merk (wörtlich)
„Das sieht für mich halt so aus, als würde man auswendig lernen."
„Dieses Verständnis von Objekten und statischen Attributen / statischen Methoden, das ist halt schon ein Problem."