01 Java – Token
Die deutsche Sprache besteht aus Sätzen, welche sich wiederum aus bestimmten Worten und Wortreihenfolgen zusammensetzen. Dies wird als Grammatik bezeichnet. Auch Java (so wie jede andere Programmiersprache) besitzt solch eine Grammatik. Diese wird als Syntax bezeichnet. Der Compiler zerlegt diese Syntax oder auch Codezeilen in seine Bestandteile und identifiziert diese als Token. Diese Token sind die kleinsten Elemente eines Java-Programms. Unterschieden wird zwischen 6 Token-Arten.
Bezeichner
Ein Bezeichner (engl. Identifier) ist im Prinzip ein frei wählbarer Name. Dieser wird unter anderem an Variablen, Methoden, Klassen, etc. vergeben und zu einem späteren Zeitpunkt kann ein Konstrukt mit diesem Bezeichner angesprochen werden.
Namensregeln
Java setzt strikte Regeln, welche Zeichen an welcher Stelle für Bezeichner erlaubt sind.
Bezeichner dürfen nicht mit einer Zahl [0-9] beginnen.
Bezeichner dürfen keine Operatoren oder Separatoren enthalten.
Eine
.java
-Datei, deren Klasse und der Konstruktor müssen den gleichen Namen haben.
Namenskonventionen
Konventionen sind keine festen Regeln, sondern Richtlinien. Es kann zwar von ihnen abgewichen werden, es wird jedoch empfohlen, sich an sie zu halten.
Benennung in englischer Sprache.
Es sollten keine Schlüsselwörter und auch nicht in abgewandelter Form verwendet werden (Ausnahmen wie z.B.
class
→ clazz sind dennoch möglich).Es sollten keine Umlaute [Ä, ä, Ö, ö, Ü, ü, ß] verwendet werden.
Es sollten keine Dollarzeichen
$
verwendet werden.Es sollten keine Unterstriche
_
verwendet werden (Ausnahme: Konstanten).Dollarzeichen
$
und Unterstriche_
sollten am Anfang nur aus gutem Grund verwendet werden.Variablen und Methoden sollten nach der CamelCase-Notation benannt werden.
Klassen (und damit auch Konstruktoren und Java-Dateien) sollten nach der PascalCase-Notation benannt werden.
Konstanten sollten nach der SCREAMING_SNAKE_CASE-Notation benannt werden.
Keywords – 57
Schlüsselwörter (engl. Keywords) sind reservierte Wörter, die eine spezielle Bedeutung für den Compiler haben. Diese Wörter dürfen und können im Regelfall nicht als Namen für Variablen, Methoden, Klassen oder andere Bezeichner verwendet werden, da sie zur Sprachsyntax von Java gehören und bestimmte Aktionen oder Strukturen definieren. Einige Ausnahmen werden im Abschnitt Kontextbezogene "Keywords" beschrieben.
Keywords | Anwendungsbereich | Beschreibung |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| - |
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| - |
|
|
| |
|
| |
| ||
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Modifizierer – 12
Keyword | Anwendungsbereich | Beschreibung |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| ||
|
|
Kontextbezogene "Keywords" – 6
Alle "Keywords" in der folgenden Tabelle können als Identifier verwendet werden (mit Ausnahme von non-sealed
).
Keyword | Anwendungsbereich | Beschreibung |
---|---|---|
|
| |
|
| |
|
| |
|
| |
| ||
|
|
Literale
Literale (engl. Literals) bzw. Literalkonstanten bezeichnen Werte, die sich im Programm nicht ändern können. Unterschieden wird unter den folgenden 7 Literal-Arten.
Kategorie | Literal |
---|---|
Ganzzahl-Literal |
|
Fließkommazahl-Literal |
|
Boolean Literal |
|
Zeichen-Literal |
|
String Literal |
|
Text Block Literal |
|
Null Literal |
|
Operatoren
Operatoren (engl. Operators) bezeichnen Zeichen(-folgen), welche in der Programmierung und der Mathematik verwendet werden, um Operationen wie Additionen oder Multiplikationen durchzuführen. Diese Operatoren können in unäre, binäre und ternäre Operatoren unterteilt werden. Darüber hinaus gibt es noch Kategorien wie arithmetische Operatoren, Zuweisungsoperatoren, Vergleichsoperatoren, logische Operatoren, Bitoperatoren und In- / Dekrement.
Unäre Operatoren benötigen nur einen Operanden.
Binäre Operatoren benötigen zwei Operanden.
Ternäre Operatoren werden durch drei Operanden verknüpft.
Operatoren | Kategorie | Beschreibung |
---|---|---|
| Arithmetische Operatoren | Arithmetische Operatoren führen mathematische Operationen auf numerischen Werten durch. |
| Zuweisungsoperatoren | Zuweisungsoperatoren führen (mal abgesehen von |
| Logische Operatoren | Logische Operatoren verknüpfen zwei boolesche Ausdrücke und geben ebenfalls ein boolesches Ergebnis ( |
| Vergleichsoperatoren | Vergleichsoperatoren vergleichen zwei Operanden und geben ein boolesches Ergebnis ( |
| Bitoperatoren | Arbeiten direkt auf den einzelnen Bits eines Datenwerts. |
| Inkrement / Dekrement | Erhöht oder verringert einen Wert um |
| Ternäre Operator | Dient einer verkürzten Schreibweise des |
| Lambda Operator | Definiert Lambda-Ausdrücke, welche mit Java 8 hinzugefügt wurden. |
Separatoren
Separatoren (engl. Separators) dienen dem Compiler dazu, einzelne Bezeichner und Anweisungen voneinander trennen zu können.
Separator | Beschreibung |
---|---|
| Dient als Kennzeichnung der Parameter und Attribute bei Methodenaufrufen, sowie der Änderung der Berechnungsvorschrift. |
| Kennzeichnen den Anfang und das Ende eines Anweisungsblocks. |
| Dient zur Definition von Arrays, dessen Größen und den Zugriff auf einzelne Felder des Arrays. |
| Wird als Abschluss einer Anweisung verwendet. |
| Dient als Abtrennung zwischen Werten, Anweisungen und Parametern. |
| Trennt Paketnamen von Unterpaketen und Klassen, sowie Variablen von Methoden. |
| Dient als variable Parameterangabe bei Methoden. |
| Wird als Präfix für Annotationen verwendet. |
| Dient als Methodenreferenz und Alternative zu Lambda-Ausdrücken. |
Kommentare
Kommentare (engl. Comments) können dabei helfen, anderen Entwicklern (und auch einem selbst) den eigenen Code verständlicher zu machen. Dies erhöht die Wartbarkeit, Lesbarkeit und das Verständnis für die Funktion des Codes. Unterschieden wird zwischen drei Kommentararten.
Wird in einer IDE (Integrated Development Environment) beispielsweise über einen Klassen- oder Methodennamen gehovert, erscheint ein kleines Fenster – dies ist die Java-Dokumentation. Sie beschreibt den Aufbau und die Funktionsweisen der Klassen, Methoden etc. genauer.
Assoziativität
Die Assoziativität beschreibt die genaue Reihenfolge, in der die Operatoren und Separatoren ausgewertet werden. Operatoren mit einer höheren Priorität oder Vorrang werden vor Operatoren mit einer niedrigeren Priorität ausgewertet. Besitzen zwei Operatoren die gleiche Priorität, entscheidet die Assoziativität über die Auswertungsreihenfolge.