Datentypen
Jede Variable hat einen Datentyp. Er legt fest, welche Werte sie speichern kann, wie viel Platz sie im Speicher belegt und welche Operationen mit ihr erlaubt sind.
Die elementaren Datentypen
| Typ | speichert | Beispielwert | typische Verwendung |
|---|---|---|---|
int |
ganze Zahlen | 42, -7 |
Anzahlen, Positionen, Indizes |
double |
Kommazahlen | 3.5, -0.75 |
Messwerte, Noten, Preise |
boolean |
Wahrheitswerte | true, false |
Ja/Nein-Entscheidungen |
char |
ein einzelnes Zeichen | 'A', '?' |
einzelne Buchstaben |
Diese vier heißen elementare oder primitive Datentypen: Der Wert steckt direkt in der Variablen.
Achte auf die Anführungszeichen:
'A'mit einfachen Anführungszeichen ist einchar– genau ein Zeichen."A"mit doppelten Anführungszeichen ist einString– eine Zeichenkette, die zufällig ein Zeichen lang ist.
Objekttypen
Neben den elementaren Typen gibt es Objekttypen (auch: Referenzdatentypen). Ihre Werte sind Objekte, und die Variable enthält nicht das Objekt selbst, sondern einen Verweis darauf.
String ist der Objekttyp, dem du am häufigsten begegnest. Auch Sprite und Pen aus dem letzten Kapitel sind Objekttypen.
- Elementarer Typ: In der Variablen steht der Wert selbst.
- Objekttyp: In der Variablen steht eine Referenz – eine Art Wegbeschreibung zum eigentlichen Objekt.
Objekttypen beginnen mit einem Großbuchstaben (String, Sprite), elementare Typen klein (int, double). Daran erkennst du sie auf einen Blick.
Was dieser Unterschied praktisch bedeutet, wird in Kapitel 6 und im Lernpfad Erweiterungen wichtig.
Was passiert bei gemischten Typen?
Sage ohne Rechner voraus, was die vier Zeilen ausgeben. Achte besonders auf die letzte.
Auflösung
9.0
3
3.5
Ergebnis: 72
Die ersten drei Zeilen kennst du schon: Sobald ein double beteiligt ist, wird als Kommazahl gerechnet.
Die letzte Zeile ist die Falle. Das Pluszeichen bedeutet bei Zeichenketten Aneinanderhängen. Java arbeitet von links nach rechts:
"Ergebnis: " + ganz→ die Zeichenkette"Ergebnis: 7""Ergebnis: 7" + 2→ die Zeichenkette"Ergebnis: 72"
Willst du 9 sehen, musst du klammern: "Ergebnis: " + (ganz + 2).
Typumwandlung
Manchmal musst du einen Wert von einem Typ in einen anderen überführen.
(double) punktewandelt denint-Wert in eine Kommazahl um. Das nennt man Typumwandlung oder cast.(int) genauin die andere Richtung schneidet die Nachkommastellen ab – aus 3.99 wird 3, nicht 4.- Willst du kaufmännisch runden, nimm
Math.round(...).
Aufgabe 1: Notendurchschnitt
Drei Klausuren wurden mit 11, 8 und 14 Notenpunkten bewertet. Berechne den Durchschnitt und gib ihn aus.
Achtung: Das naive Programm gibt 11 aus. Der richtige Wert ist 11,0 – aber prüfe selbst, ob dein Programm auch bei 11, 8 und 13 noch stimmt.
Tipp 1: Warum stimmt das Ergebnis nicht?
Die Summe ist ein int, die Anzahl ist ein int – also rechnet Java eine Ganzzahldivision und wirft die Nachkommastellen weg.
Tipp 2: Zwei Wege
Entweder wandelst du die Summe um: (double) summe / 3.
Oder du teilst durch eine Kommazahl: summe / 3.0.
Beide Wege funktionieren. Der erste macht deutlicher, worum es geht.
Aufgabe 2: Passenden Typ wählen
Ordne jedem Sachverhalt den passenden Datentyp zu und begründe kurz.
a) Die Anzahl der Schülerinnen und Schüler in einem Kurs
b) Die Körpergröße einer Person in Metern
c) Ob eine Aufgabe gelöst wurde
d) Der Name einer Schule
e) Die Note als Buchstabe im amerikanischen System (A bis F)
Auflösung
a) int – eine Anzahl ist immer eine ganze Zahl.
b) double – 1,73 m lässt sich nicht als ganze Zahl darstellen.
c) boolean – es gibt genau zwei Möglichkeiten.
d) String – ein Text aus mehreren Zeichen. Das ist ein Objekttyp.
e) char – genau ein Zeichen.