Lexikalische Konventionen
In Java können sowohl alle Buchstaben als auch Ziffern aus dem Ascii und ISO-Latin-1 Zeichensatz verwendet werden. Es wird zwischen Groß- und Kleinschreibung unterschieden (case-sensitive). Das bedeutet, dass die Zeichenkette „Beispiel“ nicht gleich der Zeichenkette „beispiel“ ist. Dies gilt auch für Klassen-, Methoden- und Attributnamen. Zum Zeichenvorrat in Java zählen aber auch das Leerzeichen, Steuerzeichen (Zeilenendzeichen, Tabulator …) und diverse Sonderzeichen. Die Sonderzeichen sind in zwei Kategorien eingeteilt. Die erste Kategorie sind die Seperatoren, diese setzen sich zusammen aus den Klammern (), [], {} und den Satzzeichen ; (Semikolon), ,(Komma), .(Punkt) .
Die Operatoren sind die zweite Kategorie = > < ! ~ ? : & | + - * / ^ %.
Die Operatoren werden in einem späteren Kapitel noch mit Beispielen erklärt.
Der \ (Backslash) leitet eine sogenannte Ersatzdarstellung ein. Eine Ersatzdarstellung wird häufig im Zusammenhang mit Zeichenketten verwendet. Dadurch können z.B. Zeilenumbrüche in Zeichenketten eingefügt werden oder generell Zeichenketten im Aussehen manipuliert werden. Es sind folgende Ersatzdarstellungen in Zeichenketten möglich:
\n Zeilentrenner, alle nachfolgenden Zeichen beginnen eine neue Zeile (new Line)
\t Horizontaler Tabulator
\b Backspace
\r Wagenrücklauf aus dem Zeitalter der Schreibmaschine, springt zum Anfang der Zeile (engl. Carriage Return)
\f Seitenvorschub bedeutet nichts anderes wie in einem Texteditor „gehe“ zur nächsten Seite. (engl. form feed)
\\ Doppelter Backslash heißt, dass ein Backslash bei der Ausgabe einer Zeichenkette angezeigt wird. Dies ist wichtig, wenn man mit Pfadangaben für Verzeichnisse oder Server arbeitet!
\’ Einfaches Hochkommata, diese Ersatzdarstellung dient dazu, in einer Zeichenkette ein Hochkommata anzuzeigen.
\“ Anführungszeichen, Ersatzdarstellung dient dazu in einer Zeichenkette ein Anführungszeichen darzustellen.
Damit man auch Sonderzeichen verwenden kann, benötigt man die Unicode- Ersatzdarstellung \uXXXX. Die UnicodeErsatzdarstellung wird mit \u eingeleitet. Der Backslash leitet die Ersatzdarstellung ein. Das u bezeichnet den Unicode-Zeichensatz. Die vier x stehen für einen hexadezimalen Wert aus dem Unicode Zeichensatz:
Einfache Anführungszeichen dienen dem Einschluss eines einzelnen Zeichens, man kann mit Ihnen aber keine ganzen Zeichenketten darstellen. Für die Darstellung von ganzen Zeichenketten werden die doppelten Anführungszeichen verwendet werden. Ein einzelnes Zeichen wird als character, kurz char, und eine Zeichenkette als String bezeichnet.
Bei der lexikalischen Konvention sollte man auch beim Programmieren einige Regeln beachten. Wir listen Ihnen nun einige Regeln auf, die standardmäßig angewendet werden. Wir empfehlen Ihnen auch diese Regeln zu befolgen, da diese Regeln die Lesbarkeit von Quelltexten vereinfacht.
-
Attributsnamen beginnen immer mit Kleinbuchstaben und sollten aussagekräftig seien, d.h. der Name sollte aussagen, wofür das Attribut verwendet wird.
Bsp.: fehlerText, oder fehler_Text sind in Ordnung
-
Methodennamen sollten ebenso wie Attributsnamen aussagekräftig seien und ebenso mit einem Kleinbuchstaben beginnen.
Bsp.: kugelschreiberAusfahren oder kugelschreiber_Ausfahren
-
Klassennamen, aber auch Interfacenamen, sollten immer mit einem Großbuchstaben anfangen. Auch hier sollte der Klassenname aussagekräftig sein.
Bsp.: Kugelschreiber
-
Konstanten werden nur mit Großbuchstaben geschrieben.
Bsp.: PI
Wenn Sie diese Regeln befolgen und verinnerlichen, können Sie auch besser Programme von anderen Entwicklern verstehen.
Zu einem guten verständlichen Quellcode gehören auch Kommentare. Attribute, Methoden und komplizierte Programmabschnitte sollten kommentiert werden, wenn sie nicht selbsterklärend sind. Die Kommentare dienen nicht nur der Kommunikation, sondern auch als „Gedächtnis“. Kommentare helfen Ihnen auch in der Zukunft noch das Programm zu verstehen. Falls Sie in einem Team arbeiten, sollten Sie sowieso immer Kommentare benutzen, denn Kommentare helfen nicht nur einem selbst, sondern auch Ihren Kollegen/-innen. Es ist besser zu viel als zu wenig zu kommentieren.
In Java gibt es drei unterschiedliche Kommentare, der einzeilige Kommentar, der mehrzeilige Kommentar und der Dokumentationskommentar.
Beispiele für die einzelnen Kommentare:
Einzeiliger Kommentar:
Mehrzeilige Kommentar:
kann sich über mehrere Zeilen erstrecken */
Dokumentationskommentar:
Der Dokumentationskommentar sollte nur vor Klassen, Attributen und Methoden stehen. Er wird nicht über javadoc ausgewertet, wenn er innerhalb einer Methode angewendet wird.
Dokumentationskommentar-Tags
| Tag & Parameter | Ausgabe | Verwendung in |
|---|---|---|
| @author name | Beschreibt den Autor | Klasse, Interface |
| @version version |
Erzeugt einen Versionseintrag. Maximal einmal pro Klasse oder Interface |
Klasse, Interface |
| @since jdk-version | Gibt an, seit wann die Funktionalität existiert | Klasse, Interface |
| @see reference | Erzeugt einen Link auf ein anderes Element der Dokumentation | Klasse, Interface, Instanzvariable, Methode |
| @param name description | Parameterbeschreibung einer Methode | Methode |
| @return description | Beschreibung des Returnwerts einer Methode | Methode |
|
@exception classname description @throws classname description |
Beschreibung einer Exception, die von dieser Methode geworfen werden kann | Methode |
| @deprecated description | Beschreibt eine veraltete Methode, die nicht mehr verwendet werden sollte | Methode |
| {@inheritDoc} | Kopiert die Beschreibung aus der überschriebenen Methode | Überschreibende Methode |
| {@link reference} | Link zu einem anderen Symbol | alle |
Schlüsselwörter
| Schlüsselwort | Beschreibung |
|---|---|
| abstract | Deklaration abstrakter Klassen und Methoden |
| boolean | Einfacher Java-Datentyp, kann nur die beiden Werte "true" und "false" annehmen |
| break | Unterbrechung von Schleifen und switch-Anweisungen |
| byte | Einfacher 8-Bit Java-Datentyp |
| case | "Sprungverzweigung" in einer switch-Anweisung |
| catch | Damit fängt einen Block zur Ausnahmebehandlung an. |
| char | Einfacher 16-Bit Unicode Datentyp (in der Regel einzelner Buchstabe). |
| class | Kennzeichnet eine Klasse |
| continue | Ein neuer Schleifendurchgang wird gestartet. |
| default | Standard-Sprungmarke einer switch-Anweisung |
| do | Einleitung einer do-while Schleife |
| double | Einfacher 64-Bit Java Fließkomma-Datentyp |
| else | Nicht zwingender Teil einer if-Anweisung |
| extends | Kennzeichnet Ableitung (Vererbung) von einer übergeordneten Klasse (Superklasse) |
| final | Modifikator für Klassen, Methoden und Attribute. Keine weitere Modifikation möglich. |
| finally | Beendet eine "try-catch"-Anweisung und leitet einen Anweisungsblock, der in jedem Fall ausgeführt wird (finally ist optional) |
| float | Einfacher 32-Bit Java Fließkomma-Datentyp |
| for | Schleifenanweisung für eine for-Schleife |
| if | Bedingte Anweisung |
| implements | Gibt an, welche Schnittstellen eine Klasse zu implementieren hat |
| import | Befehl zur Einbindung von Paketen, die Verwendung finden sollen |
| instanceof | Operator zur Überprüfung einer Typkonvertierung |
| int | Einfacher 32-Bit Java Ganzzahl-Datentyp |
| interface | Deklarationseinleitung einer Schnittstelle |
| long | Einfacher 64-Bit Java Ganzzahl-Datentyp |
| native | Modifikator für Methoden, kennzeichnet Methoden, die in einer anderen Programmiersprache implementiert wurden. |
| new | Erzeugt ein neues Objekt. |
| package | Leitet die Deklaration eines Paketes ein. |
| private | Zugriffsmodifikator für Klassen, Attribute und Methoden (kein Zugriff von außen möglich). |
| protected | Zugriffsmodifikator für Klassen, Attribute und Methoden (nur Zugriff innerhalb des selben Paketes). |
| public | Zugriffsmodifikator für Klassen, Attribute und Methoden (für alle zugänglich). |
| return | Springt zum Aufrufer zurück, gegebenenfalls mit Rückgabewert. |
| short | Einfacher 16-Bit Java Ganzzahl-Datentyp |
| static | Dient als Modifikator für Klassen, Attribute und Methoden. |
| strictfp | Kennzeichnung einer Methode, mit der Zwischenwerte von Operationen nach IEEE754 berechnet werden können. |
| super | Erlaubt Zugriff auf überschriebene Methoden und verdeckte Attribute der übergeordneten Klasse (Superklasse). |
| switch | Auswahlanweisung |
| synchronized | Dient der Thread-Synchronisation von Methoden. |
| this | Bezeichnet die Referenz auf das eigene Objekt (sich selbst). |
| throw | Leitet "Werfen" einer Ausnahme (Exception) ein |
| throws | Gibt an, welche Ausnahmen (Exceptions) bei einer Methode "geworfen" werden können |
| transient | Kennzeichnung von Attributen, die nicht serialisiert (gespeichert oder übertragen) werden. |
| try | Leitet einen Anweisungsblock ein, in dem eine Ausnahme(Exception) auftreten kann. |
| void | Kennzeichnet Methoden, die keinen Rückgabewert haben |
| volatile | Kennzeichnet ein Attribut, welches von mehreren Threads gleichzeitig verändert werden kann. |
| while | Schleifenanweisung |
| const | Ist reserviert, findet aber keine Anwendung |
| goto | Ist reserviert, findet aber keine Anwendung |
In dem nächsten Kapitel gehen wir auf die Datentypen und deren Wertigkeit ein.




