Dies ist eine alte Version des Dokuments!
| Namen für | beginnen mit | Beispiele | |
|---|---|---|---|
| Konstanten | Substantiv | Kleinbuchstaben | size, pwm, serialVersionUID |
| System-Konstanten | PORTF, FPSCR, DDR, PI 1) | ||
| Variablen | Substantiv | Kleinbuchstaben | version, wordSize |
| Adjektiv | Kleinbuchstaben | full, ready | |
| Fuktionen | Substantiv | Kleinbuchstaben | length() |
| Adjektiv | Kleinbuchstaben | full(), equal()2) | |
| Methoden | Verb | Kleinbuchstaben | drawLine()3) |
| Klassen | Substantiv | Grossbuchstaben | File, FifoQueue, Stack |
| Pakete | Substantiv | Kleinbuchstaben | java.io, ntb, target.ppc555 |
Namenslänge: Lokale, temporär verwendete Namen sollten kurz sein (z.B. m, k, len). Globale, wichtige Namen sollten sprechend, aber nicht zu lang sein (z.B. words, nofEntries).
Sprache: Wählen sie englische Namen. Sie sind meist kürzer als deutsche Namen und passen besser zu den englischen Schlüsselwörtern. Ausserdem können sie Programme mit englischen Namen leichter an Personen weitergeben, die kein Deutsch verstehen (z.B. über das Internet).
Worttrennung: Die Lesbarkeit von Namen, die aus mehreren Wörtern bestehen, wird durch entsprechende Gross-/Kleinschreibung (z.B. drawLine) verbessert, solche Bezeichner werden vom Leser rascher als Einheit erfasst und können besser von Parameterlisten unterschieden werden, als die Trennung mit Unterstrichen, z.B. draw_line. Die letztere Variante hat ihre Wurzeln in der Zeit, als die „Schnell-Drucker“ nur Grossbuchstaben drucken konnten.
Kommentieren Sie, was nicht im Programm steht (und wichtig ist). Vermeiden Sie Kommentare, die nur das wiederholen, was man ohnehin aus dem Programmtext ablesen kann. Wählen Sie für Kommentare wennmöglich dieselbe Sprache wie für Namen im Programm. Aus den oben geschilderten Gründen sind englische Kommentare vorteilhaft. Verwenden Sie javadoc-konforme Kommentare für Klassen, Felder und Methoden, z.B.
/** A stack of integer. * Implements a LIFO data structure of fixed length, .... */ public class Stack { /** indicates stack overflow. * This flag may be checked after a push() operation. * If overflow == true, the parameter of the most recent push() operation was ignored. */ public boolean overflow; ... /** pushes the value item onto the stack. * The overflow flag tells if the operation was successful. */ public void push (int item) {...} ... }
Verwenden Sie Trennkommentare zur Einleitung von Anweisungsfolgen, die eine bestimmte Aufgabe erfüllen, z.B.
//---- Read input array In.open("input.txt"); int len = In.readInt(); int [] a = new int[len]; for(int i = 0; i < len; i++) a[i] = In.readInt(); //---- Invert array invert(a); //---- Print inverted array for(int i = 0; i < len; i++) Out.print(a[i] + " "); Out.println();
Halten Sie die Anweisungsfolgen einer Methode möglichst frei von Kommentaren. Jedesmal, wenn Sie einen Kommentar schreiben, sollten Sie sich überlegen, ob Sie nicht stattdessen das Programm vereinfachen oder bessere Namen wählen können, um dadurch den Kommentar zu vermeiden. Ein gutes Programm ist nicht eines, das möglichst viele Kommentare enthält, sondern eines, das möglichst wenige Kommentare benötigt. Falls Sie dennoch einmal einen Algorithmus ausführlich kommentieren wollen, tun Sie das im Kopfkommentar der Methoden und Klassen und nicht zwischen den einzelnen Anweisungen. Bei zu vielen Kommentaren zwischen den Anweisungen kann es sein, dass Sie das Programm vor lauter Kommentaren nicht mehr sehen.
Verwenden Sie als Einrückungstiefe 1 Tabublatorzeichen oder 2 Leerzeichen. Zu tiefe Einrückungen sind genauso unleserlich wie zu wenig tiefe oder gar keine Einrückungen. Die folgenden Codemuster zeigen, wie Sie Programmkonstrukte einrücken sollten:
if(cond) { ... } else if(cond) { ... } else { ... }
switch(expr) { case c1: ... case c2: ... default: ... }
try { ... } catch(Exeption1 e) { ... } finally { ... }
while(cond) { ... }
do { ... } while(cond);
for(...) { ... }