Helmichs Informatik-Lexikon

Variablen

Kurzdefinition

Die einfachste Definition für den Begriff Variable, die mir auf die Schnelle einfällt, ist folgende:

Eine Variable ist eine Stelle im Arbeitsspeicher des Rechners, die

a) eine bestimmte numerische Adresse und

b) einen bestimmten Inhalt hat.

Beim Programmieren muss aber nicht die numerische Adresse einer Variable angegeben werden, sondern jede Variable kann über einen ihr eigenen Variablennamen angesprochen werden.

Deklaration

Die Zuordnung von Speicheradresse, Datentyp und Variablennamen in einer Programmiersprache wie Java oder Pascal bezeichnet man als Variablendeklaration oder kurz als Deklaration.

int i;
String name;

In der ersten Deklaration wird der Speicherplatz für eine Variable namens i vom Typ integer (4 Byte Länge) reserviert, in der zweiten Deklaration wird eine Variable namens name vom Typ String (einer Java-Klasse für Zeichenketten) reserviert.

Der reservierte Speicherplatz ist allerdings noch "leer", das heißt noch mit keinen spezifischen Inhalten gefüllt.

Deklaration von mehreren Variablen gleichen Typs

Mehrere Variablen des gleichen Datentyps können recht einfach deklariert werden:

int i, j, k, umfang;

Die vier Variablennamen werden durch einfache Kommata getrennt, am Ende folgt natürlcih wieder ein Semikolon.

Initialisierung

Viele Programmiersprachen initialisieren neu deklarierte Variablen automatisch, Strings zum Beispiel mit dem leeren String, Zahlen mit dem Wert 0, wie bereits oben bemerkt, sollte man sich darauf aber nicht hunderprozentig verlassen.

Häufig möchte man Variablen aber auch mit speziellen Startwerten ausstatten. Diesen Vorgang bezeichnet man als Initialisierung. Es gibt hier zwei Methoden der Initialisierung (eigentlich sogar drei, aber das werden wir weiter unten behandeln):

Deklaration / Initialisierung in zwei Schritten:
int i;
i = 20;
Deklaration / Initialisierung in einem Schritt:
int i = 0;
int j = 20;
String name = "Helmich";
Deklaration / Initialisierung von mehreren Variablen
int i, j=1, k=12; umfang;

Die Variablen i und umfang werden nur deklariert, die Variablen j und k werden gleichzeitig mit einem Wert initialisiert.

Das Schlüsselwort var

In neueren Java-Versionen kann man Variablen auch mit dem Schlüsselwort var deklarieren und initialisieren. Hier ein paar Beispiele:

var radius = 12;
var name = "Helmich";
var fertig = false;

Der Compiler erkennt den Variablentyp anhand des Ausdrucks, der auf der rechten Seite des Zuweisungsoperators steht. Daher wäre eine Formulierung wie

var name;

föllig valsch. Der Compiler hätte keine Ahnung, ob es sich bei name um eine String-Variable, eine int-Variable oder eine boolean-Variable handelt.

Was nicht geht ist Folgendes (ich habe es ausprobiert):

var i = 1, j = 2;

Hier meldet der Compiler einen Fehler.

Probleme gibt es auch bei Zahlen-Variablen:

var n = 20;

Hier wird der Compiler von einer int-Variable ausgehen. Vielleicht hat der Entwickler des Programms aber gedacht, die Variable n für Fließkommaberechnungen einzusetzen. In dem Fall hätte er besser geschrieben:

double n = 20;

oder auch

var n = 20.0;

Variablen, Attribute, Parameter

Attribute sind Variablen, die bei der Deklaration einer Klasse festgelegt werden und somit allen Methoden der Klasse zur Verfügung stehen. Nähere Einzelheiten siehe Attribute.

Lokale Variablen und Parameter sind Variablen, die nur innerhalb einer Methode gültig sind. Parameter sind dabei von außerhalb der Methode zugänglich, während lokale Variable nach außen völlig verborgen sind. Hier ein Beispiel:

Beispiel Java
		1   public int summe(int N) // N = Parameter
		2   {
		3      int sum = 0; // sum = lokale Variable
		4      for (int k = 0; k < N; k++) // k = lokale Variable
		5         sum = sum + k;
		6      return sum;
		7   }

Dieses Beispiel enthält drei Variablen, bei denen es sich nicht um Attribute handelt.

Die Variable sum in Zeile 3 ist eine lokale Variable, eine ganz normale Variable also, die innerhalb der Methode deklariert und initialisiert wurde, und die auch nur innerhalb der Methode existiert. Wird die Methode beendet, so hört die Variable auf zu existieren.

Die Variable k in Zeile 4 ist eine lokale Variable, die innerhalb einer for-Schleife deklariert und initialisiert wurde. Der Gültigkeitsbereich von k ist noch kleiner als der von sum. Während sum wenigstens innerhalb der gesamten Methode summe existiert, beschränkt sich der Gültigkeitsbereich von k ausschließlich auf die for-Schleife.

Die Variable N in Zeile 1 ist ein Parameter. Ein Parameter ist eine lokale Variable, die beim Aufruf einer Methode übergeben wird. Der Gültigkeitsbereich von N ist ähnlich wie der von sum die gesamte Methode. Die Initialisierung von N erfolgt allerdings nicht innerhalb der Methode, sondern beim Aufruf der Methode durch den Wert, den man der Methode übergibt (durch den aktuellen Parameter also).

Arrays

Arrays sind ganz spezielle Variablen. Ein Array umfasst eine endliche Menge von gleichen Variablen, die alle unter dem gleichen Namen angesprochen werden können, allerdings muss dabei ein Index übergeben werden.

Objekte

Auch Objekte sind ganz spezielle Variablen, handelt es sich doch um Instanzen (Verkörperungen) von Klassen.

Referenzen

Referenzen sind eine weitere Gruppe von speziellen Variablen. Während "normale" Variable Daten als Inhalt haben, speichert eine Referenz lediglich die Adresse eines Speicherbereichs. Weitere Einzelheiten siehe Referenzen.