Die Einhaltung von Namenskonventionen ist in der Java-Entwicklung ein zentraler Bestandteil der Codequalität. Sie fördern die Lesbarkeit, erleichtern die Wartung und sorgen für ein einheitliches Erscheinungsbild des Codes – unabhängig davon, wer ihn geschrieben hat. In diesem Artikel werden die üblichen Namenskonventionen in der Java-Entwicklung vorgestellt, gegliedert nach den wichtigsten Sprachelementen: Klassen, Interfaces, Methoden, Variablen, Pakete, Enums, Annotationen und mehr.
1. Klassen
Konvention: CamelCase, Beginn mit einem Großbuchstaben (UpperCamelCase oder PascalCase)
Beispiel:
public class CustomerService {}
public class OrderProcessor {}
Code-Sprache: PHP (php)
Richtlinien:
- Der Name sollte ein Substantiv oder eine Substantivphrase sein.
- Er sollte den Zweck der Klasse beschreiben.
- Abkürzungen sollten sparsam und konsistent verwendet werden (z. B.
XmlParser
, nichtXMLparser
oderxmlParser
).
2. Interfaces
Konvention: Wie bei Klassen: UpperCamelCase
Beispiel:
public interface Serializable {}
public interface DataProvider {}
Code-Sprache: PHP (php)
Richtlinien:
- Interfaces benennen häufig Fähigkeiten (Adjektive wie
Readable
,Runnable
) oder Rollen (Observer
,Listener
). - Das Präfix „I“ (wie
IService
) ist in der Java-Welt ungewöhnlich und sollte vermieden werden, da es aus der .NET-Welt stammt. - Wenn ein Interface eine Funktionalität beschreibt, die eine konkrete Klasse implementiert, sollte der Name abstrakt genug sein, um verschiedene Implementierungen zuzulassen.
3. Methoden
Konvention: camelCase, Beginn mit einem Kleinbuchstaben
Beispiel:
public void processOrder() {}
public String getCustomerName() {}
Code-Sprache: JavaScript (javascript)
Richtlinien:
- Der Name sollte ein Verb oder eine Verbphrase sein.
- Getter und Setter folgen dem Schema
getX()
undsetX()
(z. B.getName()
,setAge()
). - Boolean-Methoden beginnen üblicherweise mit
is
,has
odercan
(z. B.isActive()
,hasPermission()
).
4. Variablen
4.1 Lokale Variablen und Parameter
Konvention: camelCase, Beginn mit einem Kleinbuchstaben
Beispiel:
int itemCount;
String customerName;
Code-Sprache: JavaScript (javascript)
Richtlinien:
- Der Name sollte beschreiben, was die Variable enthält.
- Kurze Namen wie
i
,j
odertmp
sind in kurzen Schleifen akzeptabel, sollten aber nicht über ihren Gültigkeitsbereich hinaus verwendet werden.
4.2 Konstanten
Konvention: Alle Buchstaben groß, Worte durch Unterstrich getrennt (UPPER_SNAKE_CASE)
Beispiel:
public static final int MAX_RETRY_COUNT = 5;
public static final String DEFAULT_ENCODING = "UTF-8";
Code-Sprache: PHP (php)
Richtlinien:
- Konstanten sind in der Regel
static final
. - Sie sollten global verständlich sein und unveränderlich bleiben.
5. Pakete
Konvention: Alles in Kleinbuchstaben, getrennt durch Punkte
Beispiel:
de.beispiel.shop.kunde;
com.example.project.util;
Code-Sprache: CSS (css)
Richtlinien:
- Der Paketname beginnt typischerweise mit der umgekehrten Internet-Domain (z. B.
com.example
). - Es folgen funktionale oder technische Subpakete (
model
,service
,controller
,util
etc.). - Keine Unterstriche oder Großbuchstaben.
6. Enums
Konvention (Enum-Typ): UpperCamelCase
Konvention (Enum-Werte): UPPER_SNAKE_CASE
Beispiel:
public enum OrderStatus {
PENDING,
SHIPPED,
DELIVERED,
CANCELLED
}
Code-Sprache: PHP (php)
Richtlinien:
- Enum-Namen sind Substantive und beschreiben eine Kategorie von Werten.
- Die Konstanten sind in Großbuchstaben, um ihre Unveränderlichkeit zu betonen.
- Wenn die Enum-Werte viele Metadaten enthalten, ist auch eine differenziertere Benennung möglich – in einfachen Fällen bleibt man bei der Großschreibung.
7. Annotationen
Konvention: UpperCamelCase, enden häufig auf Annotation
oder sind beschreibend
Beispiel:
public @interface NotNull {}
public @interface Transactional {}
Code-Sprache: PHP (php)
Richtlinien:
- Der Name sollte eine klare Aussage darüber treffen, was durch die Annotation bewirkt oder markiert wird.
- Es ist üblich, Annotationen mit
@
zu versehen, wenn sie verwendet werden, aber nicht in der Deklaration (@NotNull
vs.public @interface NotNull
).
8. Generische Typen
Konvention: Einzelne Großbuchstaben, häufige Buchstaben sind:
T
für „Type“E
für „Element“K
für „Key“V
für „Value“
Beispiel:
public class Box<T> {
private T content;
}
Code-Sprache: PHP (php)
Richtlinien:
- Vermeide lange generische Typbezeichner.
- Wenn mehrere Generics verwendet werden, sollten die Buchstaben konsistent und sinnvoll gewählt sein.
9. Testklassen
Konvention: Entweder XyzTest
oder TestXyz
, wobei Xyz
die getestete Klasse ist.
Beispiel:
public class CustomerServiceTest {}
Code-Sprache: PHP (php)
Richtlinien:
- Testmethoden beschreiben möglichst klar den getesteten Fall, z. B.
shouldReturnCustomerById()
oderthrowsExceptionWhenIdIsNull()
.
Zusammenfassung der Konventionen
Element | Beispiel | Stil |
---|---|---|
Klasse | OrderService | UpperCamelCase |
Interface | DataProvider | UpperCamelCase |
Methode | calculateTotal() | lowerCamelCase |
Variable | totalPrice | lowerCamelCase |
Konstante | MAX_BUFFER_SIZE | UPPER_SNAKE_CASE |
Paket | com.example.util | lower.case.naming |
Enum | OrderStatus / SHIPPED | UpperCamelCase / UPPER_SNAKE_CASE |
Annotation | @Override | UpperCamelCase |
Generics | <T, K, V> | Single Uppercase |
Fazit
Namenskonventionen sind kein Selbstzweck – sie dienen der Verständlichkeit und Wartbarkeit des Codes. Besonders in Teamprojekten ist es entscheidend, dass alle Entwickler denselben Konventionen folgen. Die hier dargestellten Regeln orientieren sich an den offiziellen Empfehlungen von Oracle und dem Java Language Specification (JLS) sowie an der Praxis etablierter Open-Source-Projekte. Durch konsistente Benennung wird der Code nicht nur schöner, sondern auch robuster, da Missverständnisse und Fehlerquellen minimiert werden.