2019-11-16 09:26:53 +00:00
parent c74b03cec8
commit 76b84e8223

@@ -67,7 +67,7 @@ Trowable
- **`throw null`** führt zu `NullPointerException`
- **switch**:
-`ausdruck` muss Typ `enum`, `byte`, `short`, `int`, `char` oder `String` ergeben
- Vom Compiler berechenbare Audrücke in case-Anweisungen sind erlaubt
- Vom Compiler berechenbare Audrücke in case-Anweisungen sind erlaubt (compile time constant). ``final int i = 1;`` geht, ``final int i; i = 1`` geht nicht.
- **Erlaubte Identifier-Namen**:
- Müssen mit `_`, `$` oder Buchstabe beginnen
- Danach auch Zahlen erlaubt
@@ -169,4 +169,9 @@ Trowable
- remove: Entfernt das **erste** Element der Liste, Vergleich per equals
- **Zahl-Literale und Unterstriche**:
- Nicht am Anfang oder Ende erlaubt. (Bei double, float auch nicht vor oder hinter Dezimalpunkt)
- **Encapsulation**: Beim Setzen und Rückgabe von Listen (und eigentlich allen komplexen Typen) Kopie erzeugen. Immutable Objekte Sonderfall.
- **Encapsulation**: Beim Setzen und Rückgabe von Listen (und eigentlich allen komplexen Typen) Kopie erzeugen. Immutable Objekte Sonderfall.
- **Lokale Variablen und final-Felder: Bedingte Initialisierung**: Wann meckert der Compiler?
- Nur wenn der Compiler sicher ist, dass eine Variable initialisiert wurde, gibt es keinen Compilerfehler
- Compiler prüft aber keine Bedingungen (``if (true)`` genügt, ``if (b = true)`` nicht)
- Bei Zuweisungen zu ``final`` ähnlich: Compiler ahndet Mehrfachzuweisung, wenn er Bedingung nicht eindeutig auflösen kann. ``if (true) s3= "Hallo"; if (false) s3 = "Welt";`` geht, ``if (b) s3= "Hallo"; if (!b) s3 = "Welt";`` geht nicht. ``final boolean c = false; if (c) s6 = "Hallo"; if (!c) s6 = "Welt";`` geht, da c final ist.
-