Programmierrichtlinien
Empfehlungen
Vorschläge
für Java
Dateianfang
Anfangskommentar
Klassenname
Version
Datum
Autor
Sonstiges

Packages und Importe
1. package
2. import

Hauptklasse
evtl. Klassendokumetation
Klassendeklarartion
Klassenvariablen (static)
Instanzvariablen
Konstruktoren
Methoden

Kommentare
vier Arten von Kommentaren:
1. Blockkommentar:
/*
* Kommentarbereich
*/

- insbesondere zur Klassen- und Methodendokumentation
- Jede public-Methode/Variable muß mittels javadoc ausführlich kommentiert werden!
2. einzeiliger Kommentar:
/* hier steht der Kommentar */
3. Trailingkommentar: wie einzeiliger Kommentar, aber ohne Extrazeile
4. EndOfLine Kommentar:
//zum Ausklammern
- insbesondere beim Auskommentieren von Zeilen ganz links, da dort auffälliger und keine Strukturveränderung

Positionierung bei Bedingungen so:
System.out.println("Meldung!");
//Vergleich der Abbruchbedingungen mit den fundamentalen Basisdaten auf Grundlage der errechneten Mittelwerte
if (nachts == dunkel && nachts == kalt) {

oder so:
System.out.println("Meldung!");
if (nachts == dunkel && nachts == kalt) { //Vergleich der Abbruchbedingungen mit den fundamentalen Basisdaten auf Grundlage der errechneten Mittelwerte
Klassen-/Interfacedeklarationen
keine Leerzeichen zwischen Methodenname und Klammer:
methodeAufrufen();
"{" am Ende der Zeile nach der Deklaration
"}" unter das erste Zeichen der letzten Codezeile
public static void main(String[] args) {
int temp = 42;
...
System.out.println("Ende von main");
}
Variablendeklarationen
nur eine Deklaration pro Zeile
keine zwei Typen in einer Zeile deklarieren
Variableninitialisierungen
lokale Variablen beim Deklarieren initialisieren z. B.:
for(int i = 0; i < 1881; i++)
wenn übersichtlicher, dann alle anderen Variablen auch gleich initialisieren
Statements
nur ein Statement pro Zeile
nicht: a++; b++;
Groß-/Kleinschreibung
Packages: Kleinbuchstaben
Klassen: mit Großbuchstaben am Anfang, keine Abkürzungen, 2. Wort auch mit Großbuchstabe: class BierTrinker
Interfaces: wie Klassen
Methoden: erster Buchstabe klein, möglichst mit Verb am anfang: trinkeSchnell(Bier x);
Variablen: wie Methoden, kurz und aussagekräftig
Hilfsvariablen aus einem Buchstaben; kein "m_" am Anfang von Klassenvariablen
Konstanten: Großbuchstaben und Worttrennung durch "_": final static int LETZTER_TERMIN = 220902
Objekte: Kleinbuchstabe am Anfang und Klasse am Ende
Einrücken
jeweils 1 Tabulatorzeichen
entspricht 4 Leerzeichen und darf nicht durch solche ersetzen werden
Linien, überlange Zeilen
Zeilenumbruch nach spätestens 80 Zeichen
in der nächsten Zeile einrücken
zwei Leerzeilen
zwischen inhaltlich getrennten Teilen z.B. inneren Klassen
eine Leerzeile
zwischen einzelnen Methoden
zwischen lokalen Variablen und erstem Statement
vor Blockkommentar oder einzeiligem Kommentar
zwischen logischen Teilen
Leerzeichen
nach Kommata
zwischen binären Operatoren: a += c + d;
nicht bei a++, a-- und Punktoperator (A.methodeAnufrufen())
in Bedingungsstatements für for, if, while, ...
bei Typumwandlungen: (byte) Kontostand;
Allgemeines
nur eine Sprache bei allen Bezeichnern zumindest konsistent in den einzelnen Klassen/Dateien
Code in Englisch - Kommentare in Deutsch
keine Umlaute und Sonderzeichen
lieber mehr Klammern als zu wenig: if ((a == b) && (c == d)) {
Wahrung des Geheimnisprinzips: Änderung von Attributen nur durch Methoden: gibKoepfe(); setzeKoepfe(int i);
Sichtbarkeit der Attribute/Methoden so weit als möglich einschränken.
Zahlen und Werte am Anfang deklarieren und intialisieren, damit später nur an einer Stelle Änderungen nötig sind.
Im Code selbst dürfen nur "0" und "1" vorkommen, sonst nur Konstanten. Gleiches gilt für Strings.
GUI-Programmierung unabhängig von der Bildschirmauflösung
Bei allen Eingaben Fehler sinnvoll abfangen.
Zugriffe auf System immer mit try und catch abfangen. Minimum für catch ist ein log4jLog.error(...);
Bei if then else die Ja-Bedingungen hinter then und else-Zweig kommentieren.
Rundungsfehler bei Fließkommazahlen beachten

Beispiele und mehr ausführliche Informationen bei Sun via:
http://java.sun.com/docs/codeconv


Letzte Änderung am 8. 5. 2002. © 2002