MINT lernen

Statische Datentypen

In Python darf „x“ erst eine Zahl und dann ein Text sein — in Java nicht. Warum ist das ein Vorteil?

1

Jede Variable hat einen festen Typ

  • Deklaration:int alter = 14; — erst der Typ, dann Name und Wert.
  • Statisch:der Typ bleibt fest; alter = "vierzehn"; ist ein Übersetzungsfehler. In Python hängt der Typ am Wert (dynamisch).
  • int:ganze Zahlen wie 42 oder -7.
  • double:Kommazahlen, aber mit Punkt: 2.5, 3.0.
  • boolean:nur true oder false — klein geschrieben.
  • char:genau ein Zeichen in einfachen Hochkommas: 'A'.
  • String:Text in doppelten Anführungszeichen: "Hallo" — mit großem S.
  • Compiler:passt ein Wert nicht zum Typ, meldet javac den Fehler, bevor das Programm überhaupt startet.

Ziehe die Wertkarten in die fünf Variablen — oder tippe erst eine Karte, dann eine Variable an. Mit der Tastatur: Karte mit Enter wählen, dann Ziffer 1–5 (oder Pfeiltasten + Enter). Der Compiler entscheidet, ob die Zeile übersetzt wird.

Welcher Wert passt hinein?

0 von 10 Karten im eigenen Typ
0 umgewandelt · 0 Übersetzungsfehler

    Halte fest: Jede Variable nimmt nur Werte ihres Typs an. int → double wird verlustfrei erweitert, double → int verweigert der Compiler. "x" (String) und 'x' (char) sind verschiedene Typen — und weil ein char intern eine Zahl ist, gibt es die Sonderfälle int z = 'x'; (120) und char c = 42; ('*').

    2

    Rechnen und umwandeln

    • Ganzzahldivision:7 / 2 ergibt 3 — der Rest fällt weg.
    • Rest:7 % 2 ergibt 1.
    • Mit Komma:7.0 / 2 ergibt 3.5 — sobald ein double beteiligt ist.
    • Automatisch:int → double klappt allein: double d = 5; speichert 5.0.
    • Cast:(int) 3.9 ergibt 3 — abgeschnitten, nicht gerundet.
    • Verketten:"Punkte: " + 5 ergibt den String "Punkte: 5".
    • final:final double MWST = 0.19; — eine Konstante, die sich nie mehr ändern darf.

    Herleitung:

    double schnitt = (7 + 8) / 2;
    | Klammer zuerst
    Start: der Durchschnitt aus 7 und 8 Punkten.
    double schnitt = 15 / 2;
    | int / int
    Beide Zahlen sind int — also wird ganzzahlig geteilt.
    double schnitt = 7;
    | int → double
    Die ,5 ist schon verloren, bevor die Zuweisung erweitert.
    schnitt = 7.0
    Ergebnis
    Abhilfe: (7 + 8) / 2.0 ergibt 7.5.
    Merke

    Statische Typen: Der Typ steht bei der Deklaration fest und wird vor dem Start geprüft. int / int bleibt int; ist ein double beteiligt, wird mit Komma gerechnet.

    3

    Allgemeine Hinweise

    char ist kein String

    'A' ist ein Zeichen, "A" ein Text. char c = "A"; meldet String cannot be converted to char.

    Punkt statt Komma

    Java versteht 2,5 nicht als Zahl — schreibe 2.5. Nur in der Ausgabe für Menschen darf ein Komma stehen.

    Casts verlieren etwas

    (int) schneidet die Nachkommastellen ab. Brauchst du einen gerundeten Wert, nimm Math.round(…).

    Videos