@@ -91,6 +91,7 @@
|
||||
- **if/else ohne Klammerung**: Else gehört immer zum if davor.
|
||||
- **instanceof**:
|
||||
- Prüft Typgleichheit für Referenzen (nicht Klassen, nicht Primitive)
|
||||
- Laufzeit-Typ entscheidend
|
||||
- Kann nur auf Objekte derselben Klassenhierarchie angewendet werden (Sonst Compilerfehler)
|
||||
- True, wenn Objekt vom Typ der Klasse/Interface oder einer Subklasse davon (Is-a test)
|
||||
- ``null instanceof BeliebigerTyp`` ist immer false
|
||||
@@ -103,4 +104,15 @@
|
||||
- Primitive
|
||||
- Expliziter Cast erforderlich, wenn Genauigkeit nicht ausreicht
|
||||
- Bei Zahlen kann so auch Genauigkeit verlorengehen
|
||||
- Bei ``+=, ...`` impliziter Cast, nicht explizit erforderlich
|
||||
- Bei ``+=, ...`` impliziter Cast, nicht explizit erforderlich
|
||||
- Objekte
|
||||
- Cast außerhalb Typhierarchie erzeugt Compilefehler
|
||||
- Angegebener Typ im Cast muss Laufzeittyp des gecasteten Objekts oder Superklasse entsprechen
|
||||
- Angegebener Typ muss Typ der Variablen, der zugewiesen wird oder Subtyp entsprechen
|
||||
- ``null`` kann auf alles gecastet werden
|
||||
- In Typhierarchie ggf. ClassCastException, wenn doch nicht kompatibel
|
||||
- Sinnlose Casts sind erlaubt
|
||||
- Downcasting: Wenn Typ Oberklasse deklariert, aber Laufzeit Unterklasse: Zuweisung an Unterklasse per explizitem Cast möglich (ggf. ClassCastException zur Laufzeit)
|
||||
- Upcasting: Referenzen einer Unterklasse können ohne explizitem Cast einer Oberklasse zugewiesen werden.
|
||||
|
||||
- **Scope**: Variablen im Scope dürfen nicht neu definiert werden. Auch z.B. nicht in for-Schleifenvariable.
|
||||
Reference in New Issue
Block a user