Falconbyte unterstüzen
Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.
Thema in Kurzform
- Variablen für einfache Datentypen sind wie "Behältnisse", denen wir einzelne Werte zuweisen können.
- Variablen deklarieren: int zahl;
- Variablen initialisieren: zahl = 2;
Variablen erstellen und Werte zuweisen
Wir stellen uns eine Variable - und dies gilt für alle Programmiersprachen - als eine Art Behältnis oder Box vor. Solch eine Box ist dafür da, damit wir ganz unterschiedliche Daten darin speichern können. Technisch gesprochen ist eine Variable ein Name für ein Stück Speicher, das Daten speichert. Solche Daten können z.B. primitive Datentypen wie Zahlen, Zeichen, boolesche Wahrheitswerte oder auch Objekttypen wie Strings (Zeichenketten) sein:
Für die Nutzung von Variablen müssen wir bestimmte Regeln einhalten, wenn wir keinen Compiler-Fehler erzeugen wollen. Diese Regeln werden wir im Verlauf dieses Kapitels näher kennen lernen:
- Jede Variable kann jeweils nur einen Wert speichern.
- Wir müssen bei der Benennung des Variablen-Namens bestimmte Vorschriften einhalten (nicht alle Namen für Variablen sind erlaubt!).
- Immer dann, wenn wir eine Variable erzeugen wollen, müssen wir den Datentyp des Werts, der in die Variable soll, mitangeben.
Genug Theorie. Lassen Sie uns nun ein paar Variablen erstellen:
package paket1;
public class ErsteKlasse {
public static void main(String[] args) {
String zooName;
int anzahlTiere;
}
}
Wir schreiben nur in diesem ersten Beispiel den vollständigen Klassen-Code mit dazu. In den nächsten Beispielen und Erklärungen lassen wir diesen weg, um unseren Fokus auf das zu legen, was wir erklären wollen.
Wir erstellen innerhalb der Main-Methode zwei Variablen. Die erste mit dem Namen zooName speichert Daten vom Typ String (Zeichenkette). Die zweite Variable haben wir anzahlTiere genannt und diese speichert Daten vom Typ int (ganze Zahlen). Der Fachbegriff für das Erstellen einer Variablen lautet Deklarieren – und das trifft die Sache auch genauer, da wir Java mitteilen bzw. bekannt machen, dass eine Variable von nun an existiert.
Schön und gut. Es wurden nun also zwei Variablen deklariert. Allerdings haben diese von uns noch keinen Wert zugewiesen bekommen. Die Wertzuweisung an eine Variable nennt man Initialisierung. Das Initialisieren einer Variablen ist einfach: Wir schreiben hinter die Variable mit dem Zuweisungsoperator = einfach den gewünschten Wert:
zooName = "Berliner Zoo";
anzahlTiere = 20000;
Wie dürfen Variablen heißen? Die Bennenungsregeln
Es gibt vier Vorschriften, wie Variablen heißen dürfen. Prägen Sie sich diese Vorschriften gut ein, denn gerade für Programmieranfänger ist dies oftmals eine Fehlerquelle.
- Der Name der Variable muss mit einem Buchstaben, dem $-Zeichen oder einem Unterstrich _ anfangen!
- Zahlen sind im Namen erlaubt - aber nicht als erstes Zeichen des Namens (Regel 1)! variable1 wäre demnach erlaubt, 1variable ist verboten!
- Im Namen einer Variablen dürfen prinzipiell nur Buchstaben, Zahlen (nur nicht am Anfang), das $-Zeichen oder der Unterstrich vorkommen.
- Variablen dürfen nicht den gleichen Namen wie Java-Schlüsselbegriffe haben. Es ist somit nicht zulässig, eine Variable double, private, class, final etc. zu nennen. Diese Begriffe nämlich sind von Java für das Programmieren reserviert. Eine Liste mit reservierten Java-Schlüsselbegriffen finden Sie auf der offiziellen Oracle-Website.
Merken Sie sich: Java ist case-sensitive, das heißt, es macht einen Unterschied, ob man etwas groß oder klein schreibt. Sie dürfen also eine Variable durchaus Private nennen. Denn das ist nicht dasselbe wie private. Sie sollten so etwas aber trotzdem nicht tun, denn es gilt als schlechter Stil, Variablen-Namen groß zu schreiben.
Mehrere Variablen gleichzeitig erzeugen und Werte zuweisen
Es kann sehr praktisch sein, in einem einzigen Schritt (d.h. in einer Anweisung gleich mehrere Variablen zu erzeugen. Wir können das als eine Art Abkürzung verstehen. Schauen Sie sich das mal an:
int i1, i2, i3;
i1 = 10;
i2 = 20;
i3 = 30;
In der ersten Anweisung in Zeile 1 wurden drei Integer-Variablen in einem Schritt deklariert und erst in den folgenden Zeilen 2-4 (in einer anderen Anweisungen also) haben wie ihnen die Werte zugewiesen (=initialisieren).
Wir können sogar noch weitergehen und sowohl Deklaration als auch Initialisierung in einer einzigen Anweisung durchführen:
int i1 = 10, i2 = 20, i3 = 30;
Kürzer geht's nicht. Wir können so tatsächlich etwas Code einsparen und den Schreibaufwand reduzieren. Aber wir sollten es mit so etwas nicht übertreiben, da wir sonst die Lesbarkeit unseres Codes negativ beeinträchtigen.
Es ist übrigens auch problemlos möglich, nur einen Teil der in der Anweisung deklarierten Variablen in der selben Anweisung auch zu initialisieren:
String s1, s2 = "Hallo", s3;
In diesem Beispiel haben wir in der Anweisung drei String-Variablen deklariert, aber nur die zweite Variable s2 hat auch einen Wert zugewiesen bekommen.
Zusammengefasst heißt das also: In einer Anweisung können mehrere Variablen deklariert und beliebig viele davon initialisiert werden.
Regeln
Beim Deklarieren und Initialisieren in nur einer Anweisung, müssen wir zwei Regeln einhalten, sonst schrotten wir den Code:
- Wenn wir mehrere Variablen in nur einer Anweisung deklarieren, müssen diese vom selben Datentyp sein und
- der Datentyp darf nur einmal - und zwar am Anfang der Anweisung - genannt werden.
Beispiel:
//Fehler: verschiedene Datentypen:
String wort1, boolean wahrheitswert1;
//Fehler: Datentyp 2x genannt:
int x1, int x2;
Übungen
einfach
Was bedeutet es, wenn wir von Deklarieren und Initialisieren einer Variable sprechen?
mittel
Sehen Sie sich den folgenden Code an. Wieviele Anweisung sind insgesamt vorhanden? Wieviele Variablen werden deklariert und wieviele initialisiert?
boolean v1, v2, v3 = true, v4, v5;
v2 = true;
schwer
Welche der folgenden Code-Zeilen sind korrekt und welche nicht?
int zahl13e = 90213;
String return = "Hallo";
String _variable = "Nochmal hallo!";
double kommazahl;
int zahlInEuro = 99.99
int 3Danzahl = 10150;
String black#tee = 20;
boolean $__$$4D = true;
int Double = 22;