Update page '01 Kapitel 1'

2019-03-24 14:37:24 +00:00
parent 6ceed283f1
commit 034cec1db3

@@ -2,12 +2,17 @@
- Compile-Fehler, wenn Static-Imports nicht eindeutig sind - Compile-Fehler, wenn Static-Imports nicht eindeutig sind
- `import static`, umgekehrt ompile-Fehler - `import static`, umgekehrt ompile-Fehler
- `import static` bezieht sich immer auf das Objekt selbst. `import static System.out;` kann per `out.println()` genutzt werden. - `import static` bezieht sich immer auf das Objekt selbst. `import static System.out;` kann per `out.println()` genutzt werden.
- Import von nicht sichtbaren Klassen führt zu einem Compilefehler
# Identifier
- Zahlen, Dollarzeichen, Buchstaben, Unterstrich erlaubt. Erstes Zeichen keine Zahl.
# Packages
- Dürfen keine Minuszeichen enthalten
# Klassen # Klassen
- Nur eine `public`-Klasse pro Datei, dann Dateiname gleich Klassenname - Nur eine `public`-Klasse pro Datei, dann Dateiname gleich Klassenname
- Datei ohne `public`-Klasse erlaubt - Datei ohne `public`-Klasse erlaubt
- Innere Klassen nicht Teil des OCA-Tests - Innere Klassen nicht Teil des OCA-Tests
- Default-access: Nur im selben Paket sichtbar. **Todo:** In Unterpaketen? - Default-access: Nur im selben Paket sichtbar. Auch nicht in Unterpaketen.
- Klassen können nicht gleichzeitig `final` und `abstract` deklariert werden - Klassen können nicht gleichzeitig `final` und `abstract` deklariert werden
# Strictfp # Strictfp
@@ -26,6 +31,9 @@
# Interfaces # Interfaces
- Ein Interface ist ein Vertrag - Ein Interface ist ein Vertrag
- `abstract`-Deklaration implizit, darf notiert werden
- Seit Java 8 konkrete Implementierungen möglich (mit Einschränkungen) - Seit Java 8 konkrete Implementierungen möglich (mit Einschränkungen)
- In einem Interface deklarierte Methoden sind implizit `abstract` und `public` (wenn nicht `default` oder `static` angegeben wird). Modifier können dennoch hinzugefügt werden. - In einem Interface deklarierte Methoden sind implizit `abstract` und `public` (wenn nicht `default` oder `static` angegeben wird). Modifier können dennoch hinzugefügt werden.
- Alle Variablen müssen `public static final` deklariert werden (**Todo:** Oder sind sie es implizit?) - `final, strictfp, native` deklarierte Methoden sind in Interfaces nicht möglich
- Alle Variablen müssen `public static final` deklariert werden (**Todo:** Oder sind sie es implizit?)
- Interfaces können beliebig viele andere Interfaces `extend`en, aber keine Klassen und auch nicht implementieren