Variablen  nach oben

Eine Variable bezeichnet einen Wert, der sich während der Ausführung des Programms ändert. Beispiel: Unser Roboter soll jeweils 3 Autos nehmen. Am Anfang sind es 3, wenn er das erste genommen hat, nur noch 2, dann nur noch 1, dann 0. Wenn er sie verpackt hat und wiederkommt, sind es wieder 3, usw. Wieviel Autos er noch nehmen soll, merken wir uns in einer Variablen: Am Anfang sind es 3. Wir schreiben dazu die Anweisung

AutosGenommen = 3;

Später im Programm wird der Wert geändert:

AutosGenommen = 2; 

usw.
Den Namen der Variablen können wir selbst festlegen. Erlaubt ist fast alles, ausser: Er darf kein Java-Wort sein, darf nur aus alphanumerischen Zeichen und dem Zeichen _ (Unterstrich) bestehen und nicht mit einer Ziffer beginnen. Bevor Java das Wort AutosGenommen als Variable akzeptiert, muss die Variable allerdings deklariert werden, das bedeutet sie muss dem Übersetzer "vorgestellt" werden, so wie man einen Menschen in seinem Bekanntenkreis vorstellt, damit er nicht als Fremder abgewiesen wird:

variablenTyp variablenName;

In unserem Beispiel:

Byte AutosGenommen;
AutosGenommen = 3;

"Byte" ist der Variablentyp, in unserem Fall eine Zahl zwischen -128 und 127. Der Typ wird bei der Deklaration dem Namen vorangestellt.
Unser Programm besteht nun schon aus 2 Zeilen. Die erste Zeile ist die Deklaration einer Variablen, die zweite eine Wertzuweisung. Beides sind im weitesten Sinne Anweisungen. Das Gleichheitszeichen ist eine Wertzuweisung:

variablenName = variablenWert;

Der Variablen AutosGenommen wird hier also der Wert 3 zugewiesen.

Variablentypen  nach oben

AutosGenommen steht für eine Zahl, deswegen haben wir sie mit dem Typ Byte deklariert. In Java gibt es folgende Datentypen:

Boolean

Eine Variable vom Typ boolean kann nur den Wert true oder false annehmen. Die Anweisung dafür lautet zum Beispiel:

boolean wahrOderFalsch;
//oder:
boolean falschOderWahr = true;

Ganzzahl-Typen

Sie stehen für Zahlen ohne Kommastellen. Je nachdem, wie groß der Wertebereich sein muss, wählt man den passenden Typ:

Typ SpeicherplatzWertebereich
byte 8 Bit-128 und 127
short 16 Bit-32768...32767
int 32 Bit-2147483648...2147483647
long 64 Bit-9223372036854775808...9223372036854775807

boolean und die Ganzzahl-Typen nennt man auch "primitive" Typen.

Gleitkomma-Typen

Sie beinhalten Zahlen mit Stellen nach dem Komma. Wenn es viele Stellen nach dem Komma gibt, ist der Platz für die Anzahl der Stellen vor dem Komma kleiner - das Komma kann also "gleiteten" - daher das Wort "Gleitkomma":

Typ Speicherplatz Wertebereich
float 32 Bit Einfache Genauigkeit
double 64 Bit doppelte Genauigkeit

char

Der Typ char hat 16 bit und ist ein einzelnes Zeichen aus dem Unicodezeichensatz. Einer char-Variablen kann man drei verschiedene Arten von Werten zuweisen:

  • Ein alphanumerisches Zeichen in einfachen Anführungszeichen.
  • Ein Integerwert aus dem Zahlenbereich 0 bis 65535
  • oder der vierstellige hexadezimale Index aus dem Unicodezeichensatz

string

Ein String ist eine Gruppe von Zeichen hintereinander, also zum Beispiel ein Wort oder ein kleiner Text.

array

Ein array ist eine Gruppe von Werten, eine Liste. Ein eindimensionales Array kann man sich wie eine Spalte einer Tabelle vorstellen. Äußerlich erkennt man eine Arrayvariable an den eckigen Klammern:

Arrayvariable[]

So geschrieben ist das Array leer. Die einzelnen Elemente des Arrays kann man über ihre laufende Nummer ansprechen:

Array[0] = 20;
Array[1] = 10;

Zu beachten ist, dass das erste Element die laufende Nummer 0 hat, das 2. die laufende Nummer 1 usw. Der Datentyp der Elemente eines Arrays kann jeder beliebige Variablentyp sein. Wenn einmal ein Wert eines bestimmten Datentyps benutzt worden ist, muss man aber dabei bleiben; innerhalb einer Dimension dürfen nicht verschiedene Datentypen benutzt werden.
Eine Tabelle mit Spalten und Zeilen kann man als zweidimensionales Array abbilden:

Tabelle[][]

Man kann auch Arrays mit sehr vielen Dimensionen deklarieren. Die Anzahl der Dimensionen ist praktisch nicht begrenzt.
Für Arrays gibt es spezielle Funktionen zum Auswerten, Sortieren usw.

Andere Typen

Daneben gibt es in Java noch den Datentypen class und object. Sie sind äußerst wichtig. Wir werden sie weiter hinten im Zusammenhang mit der objektorientierten Programmierung erklären.

Operatoren  nach oben

Was Operatoren sind, zeigen am besten die folgenden Beispiele. Meist sind es Zeichen, seltener Wörter.

Arithmetische Operatoren

Sie berechnen Werte.

OperatorBeispielBedeutung
+x + yAddition
-x - ySubtraktion
*x * yMultiplikation
/x / yDivision
%x % yModulo

Der Operator Modulo führt eine Division durch und liefert den Restwert zum größten ganzzahligen Vielfachen des Divisors als Ergebnis.

Zuweisungsoperatoren

Sie weisen einer Variablen einen Wert zu. Der häufigste Zuweisungsoperator ist =. Beispiel:

X = 1; 
X = a + b;

Für einige Zuweisungen in der Form x = x ... y - wobei zwischen x und y natürlich ein arithmetischer Operator steht - bietet Java eine verkürzte Schreibweise:

Operator Beispiel Bedeutung
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y

Inkrement- und Dekrement-Operatoren

Oft soll der Wert einer int-Variablen um 1 erhöht oder vermindert werden. Auch hierfür bietet Java eine spezielle Operatoren an.

Operator Ausdruck Bedeutung
++ ++x x = x + 1
x++ x = x + 1
-- --x x = x - 1
x-- x = x - 1

Hier ist zu beachten, dass es einen Unterschied gibt, wenn man den Inkrement- bzw. Dekrement - Operator vor oder hinter dem Variablennamen stellt. Der Unterschied wird in folgendem Beispiel deutlich gemacht:

y = x++

y erhält den Wert von x, danach wird x inkrementiert

z = ++x

x wird zuerst inkrementiert, dann wird z der neue Wert von x zugewiesen

Vergleichsoperatoren

Sie vergleichen die Werte vor und nach dem Operator und liefern als Ergebnis true oder false:

OperatorAusdruckBedeutungAnwendung
==x == ytrue, wenn x und y gleich sindauf alle primitiven Datentypen und Objekte
!=x != ytrue, wenn x ungleich y istauf alle primitiven Datentypen und Objekte
<x < ytrue, wenn x kleiner y istnur auf numerische primitive Datentypen
>x > ytrue, wenn x größer y istnur auf numerische primitive Datentypen
<=x <= ytrue, wenn x kleiner oder gleich y istnur auf numerische primitive Datentypen
>=x >= ytrue, wenn x größer oder gleich y istnur auf numerische primitive Datentypen

logische Verknüpfungsoperatoren

Sie verbinden jeweils 2 Vergleiche (Argumente):

OperatorAusdruckBedeutungErgebnis
&&x && yUndtrue, wenn beide Argumente true sind
||x || yOdertrue, wenn beide Argumente true sind
^x^xExklusiv Odertrue, wenn beide Argumente unterschiedliche Werte

bitweise logische Verknüpfungsoperatoren

... auch bitmanipulierende Operatoren genannt. Diese Operatoren können mit dem Operator = kombiniert werden. Die Benutzung dieser Operatoren setzt jedoch voraus, das man mit Dualzahlen rechnen kann. Die bitweise Verknüpfungsoperatoren sollen eher nicht verwendet werden, da es hier keine Kurzschlussauswertung gibt!

OperatorAusdruckVerknüpfung mit rechtsseitigem Argument
&x & ybitweise und
|x | ybitweise oder
^x ^ ybitweise exklusives oder
~~xbitweise Negation, Einerkomplement

String-Operatoren

Ein String wird natürlich ganz anders behandelt als eine Zahl. Additionen oder andere Rechenoperationen wären völlig unsinnig. Für Strings sind dagegen andere Operationen sinnvoll, z.B. 2 Textausschnitte Zeichen für Zeichen miteinander zu vergleichen oder ein Wort in einem Text zu suchen. Die Operatoren + und - können auch Strings verkettet werden. Wenn in einer Gruppe von verketteten Variablen eine Stringvariable ist, behandelt Java das Ganze als Zeichenkette. Beispiel:

string s1 = "abc", s2 = "def";
s1 = s1 + s2; // "abcdef"
string s3;
boolean b = true;
s3 = s1 + 123 + " " + b; // "abcdef123 true"