Java-Kurs: Code-Qualität
Willemers Informatik-Ecke

Neben der effizienten Problemlösung zeichnet sich guter Code auch dadurch aus, dass er leicht verständlich ist und damit die Wartung einfacher wird.

Die Vorstellungen, was richtig und was falsch ist, haben ideologische Züge. Wenn der Arbeitgeber oder der Kunde Regeln aufstellt, sind diese über jeden Zweifel erhaben. Ansonsten eignet sich vermutlich jeder Programmierer im Laufe der Jahre einen eigenen Stil an.

Diese Seite versteht sich nicht als Vorschrift, sondern als Vorschlag.

Kommentare

Ein Programm wird auf der Suche nach Fehlern oder Erweiterungen um ein Vielfaches häufiger gelesen als geschrieben oder verändert. Die Lösung, die Ihnen heute noch ganz klar erscheint, fällt Ihnen in einem halben Jahr nicht mehr ein.

Ein Kommentar sollte nicht die Syntax erklären. Jeder Leser des Programms beherrscht Java. Ein Kommentar beschreibt also nicht WIE die Zeilen funktionieren, sondern WARUM diese Zeilen zur Lösung führen.

Kommentar bis Zeilenende

Der doppelte Schrägstrich kommentiert den Rest der Zeile aus.
    int meineVar;   // Variable wird geboren
    meineVar = 12;  // Variable wird belegt
                    // Egal, was hier passiert, die Variable lebt!
}                   // Variable stirbt
Tipp für Eclipse-Anwender:

Die Tastenkombination [Strg]+[Shift]+[7] kommentiert bzw. dekommentiert alle Zeilen des markierten Bereichs.

Kommentarklammern

Um einen größeren Bereich zu kommentieren, setzen Sie die Kommentargrenzen /* und */.

   /* Die folgende Methode summiere berechnet
      die Summe aus dem übergebenen Array.
      Die wird an den Aufrufer zurückgegeben.
    */
    static int summiere(int[] zahlen) {
Alles, was zwischen den Kommentargrenzen liegt, wird vom Compiler ignoriert.

Kommentargrenzen können auch innerhalb einer Zeile kommentieren.

int /* dies wird zum Nenner! */ moegliche = 12;
Ein anderes Beispiel:
static int verrechne(/* in */ int[] spannung, /* out */ int[] strom) {
Die Kommentargrenzen sind nicht schachtelbar.
   /* Die folgende Methode summiere berechnet
      /* die Summe aus dem übergebenen Array. */
      Diese Zeile wird der Compiler lesen und einen Fehler melden.
    */
Der Kommentar beginnt bei /* und wird aufgelöst, sobald das erste */ auftaucht. Weitere Kommentaröffnungen /* innerhalb des Kommentars werden ignoriert.

JavaDoc

Mit /** beginnt ein JavaDoc-Kommentar. Der JavaDoc-Kommentar endet mit dem nächsten */.

Das besondere von JavaDoc ist, dass man automatisch eine Dokumentation der Klassen und Methoden eines größeren Projekts daraus generieren kann. Dazu ruft man auf der Kommandozeile den Befehl \befehl{javadoc} auf:

javadoc MeineKlasse.java
Es wird ein Dokument in HTML erstellt, dass man sich mit dem Firefox oder sonst einem Browser anschauen kann. Es enthält alle dokumentierten Klassen und Methoden des Projekts.

Unter Eclipse kann man den JavaDoc-Kommentar sehen, wenn man den Cursor über dem Aufruf einer Methode oder der Referenz auf eine Klasse stehen lässt.

Im JavaDoc-Kommentar können über das @-Zeichen bestimmte Parameter hervorgehoben werden. Hier einige Beispiele:

Bezeichnernamen

Deutsche vs. englische Bezeichner

Für deutsche Bezeichner sprechen: Für englische Bezeichner sprechen:

Einrückungen

C-Konvention

if (bedingung)
{
    // Anweisungen
}
else
{
   // Anweisungen
}
Vorteil: Öffnende und schließende Klammer sind auf gleicher Ebene.

Java-Konvention

if (bedingung) {
    // Anweisungen
} else {
   // Anweisungen
}
Vorteil: Diese Methode ist kompakter und benötigt weniger Zeilen.

Eclipse-Unterstützung

Mit der Tastenkombination [Strg]+[Shift]+[F] kann der markierte Bereich automatisch formatiert werden. [Strg]+[I] korrigiert die Einrückung.