02.02 Variablen Deklaration

Wie in jeder Programmiersprache gibt es auch in Java Variablen. Eine Variable verweist auf einen Speicherbereich im Computer und kann verschiedene Werte annehmen und repräsentieren. Um auf den gespeicherten Wert zuzugreifen wird sie über ihren zugewiesenen Namen angesprochen.

Java ist eine typsichere Programmiersprache. Das heißt, dass einer Variablen bei der Deklaration (Erstellung) ein fester Datentyp, beispielsweise eine Zahl, zugewiesen werden muss. Den Wert, den die Variable speichert, kann jederzeit abgerufen oder verändert werden. Allerdings schlägt eine Änderung in einen anderen Datentypen (zum Beispiel einen Text) selbstverständlich fehl. Außerdem unterscheidet man in Java noch zwischen primitiven Datentypen und Klassen/Objekten.

Grundsätzlich wird dabei zuerst der Datentyp bzw. die Klasse der gewünschten Variable genannt. Darauf folgen der eigentliche Name der Variablen und ein Gleichheitszeichen. Bei einem primitiven Datentyp wird anschließend gleich der gewünschte Wert genannt. Um ein neues Objekt zu erzeugen, muss mithilfe des Schlüsselworts new eine neue Instanz der dazugehörigen Klasse erstellt werden. Diesen Vorgang der Wertzuweisung nennt man auch Initialisierung. Hierzu ein kleines Beispiel:

/* 
 * Erstellt eine Variable, die Ganzzahlen speichert.
 * Sie hat den Wert 42
 */
int ganzzahl = 42;
		
/*
 * Erstellt ein neues Objekt vom Typ StringBuffer
 */
StringBuffer buffer = new StringBuffer();

Es gibt allerdings eine Ausnahme – die Klasse String. Dazu aber später mehr.

Um einer Variablen einen neuen Wert zuzuweisen, genügt es die Variable mit ihrem Namen aufzurufen und den Wert erneut zu setzen.

ganzzahl = 43; // Setzt die Variable "ganzzahl" auf den Wert 43

Um auf den Wert einer Variablen zuzugreifen, wird ihr zugewiesener Name verwendet. Dadurch lässt sich z. B. eine Variable auf der Konsole ausgeben:

System.out.println(ganzzahl); // Gibt den Wert der Variablen aus

Es ist auch möglich eine Variable zu deklarieren, aber erst später im Code zu initialisieren. Dies wird meistens gemacht, um auf diese Variable von überall aus der Klasse zugreifen zu können. Eine solche, „global“ deklarierte Variable, nennt man auch Objektvariable/Objektattribut.

Auf solche Objektattribute sollte man – des guten Stils willen – nur über das Schlüsselwort this zugreifen (auch wenn es genauso ohne this möglich wäre). Mehr hierzu lernen Sie im Kapitel über Methoden.

public class EineKlasse {

  // Die Objektvariable ganzzahl deklarieren
  int ganzzahl;
	
  // Methode, mit der der Ganzzahl ein Wert zugewiesen wird
  public void setGanzzahl(int eineZahl) {
    this.ganzzahl = eineZahl;
  }
}

Solche Variablen müssen aber nicht immer global sein. Eine lokale Deklaration ist ebenfalls möglich.

Des Weiteren ist es möglich, mehrere Variablen auf einmal zu deklarieren:

int zahl1, zahl2, zahl3, zahl4;
	
public void eineMethode() {
  this.zahl1 = 1;
  this.zahl2 = 2;
  this.zahl3 = 3;
  this.zahl4 = 4;
}

Zur Veranschaulichung können Sie folgende Klasse kompilieren, ausführen und zu Testzwecken verändern:

public class Vars {

  public static void main(String[] args) {

    int zahl1, zahl2;
    zahl1 = 2;
    zahl2 = 5;
    System.out.println(zahl1);
    System.out.println(zahl2);
    zahl2 = 3;
    System.out.println(zahl2);
  }
}

4 Replies to “02.02 Variablen Deklaration”

  1. WarrenFaith

    Hm… ich hab jetzt 3 mal das Kapitel gelesen, aber ich glaube, dass man das weiter aufteilen sollte, damit Programmierbeginner besser durchsteigen.

    Mein Vorschlag ist daher, erstmal nur primitive Datentypen (Primitivtypen) vorzustellen. Dann erst zu den Referenztypen zu kommen.
    Dann erklären, warum es z.B. Ganzzahlen als Primitivtyp und als Referenztyp gibt (int und Integer) und was der Unterschied dabei ist.

    Erst wenn das steht, würde ich dann darauf eingehen, was eine Objektvariable ist und wie man sie benutzen kann (Sichtbarkeit, Zugriff über this oder gar Objekt- und Klassenvariablen gesondert benennt, damit man sich das this ersparen kann. Ich nutze dafür ein Unterstrich als Variablennamenbeginn: _meineZahl)

  2. Stefan Kiesel

    Hallo WarrenFaith,

    ich werde das Kapitel noch einmal durchschauen und ggf. die Formulierungen anpassen.

    Generell soll das Kapitel aber nur einen Überblick verschaffen, was man unter Variablen Deklaration versteht und wie man sie in der Theorie anwendet. Auf die Details wird jeweils zu einem späteren Zeitpunkt bzw. direkt in den nachfolgenden Kapiteln eingegangen. Deshalb sehe ich eine weitere Aufteilung des Kapitels als nicht relevant an. Es sei denn, dass sich noch mehr Leser daran stören würden.

    Gruß
    Stefan

  3. Semo

    Ich denke vermutlich das gleiche wie WarrenFaith. Man sollte zuerst die Schwerpunkte auf den Unterschied zwischen komplexen und primitiven Datentypen klarstellen. Soll nun aber nicht heißen, daß mich das stört, aber es ist nichtsdestotrotz wichtig und gehört zum Grundwerkzeugs.

    So wäre es z.B. gut zu wissen, daß float Variablen ‚by default‘ double sind, außer man gibt dem Compiler nen Tip :-b

    Viele Grüße
    Semo

  4. Stefan Kiesel

    Hallo Semo,

    ich glaube WarrenFaith wollte nicht zuerst die Unterschiede zwischen primitiven Datentypen und Objekten geklärt haben, sondern dass zuerst nur primitive Datentypen behandelt werden. Objekte sollten dann vollständig zu einem späteren Zeitpunkt erwähnt und erläutert werden. Korrigiert mich, wenn ich falsch liege 🙂 .

    Meiner Meinung nach liegt aber ohnehin schon der Schwerpunkt am Anfang auf primitiven Datentypen. Objektdeklaration ist hier eher nur eine Randnotiz. Der angesprochene „Tipp“ wird übrigens direkt im nächsten Kapitel, welches ausschließlich primitive Datentypen behandelt, angespochen.

    Gruß
    Stefan

Schreibe einen Kommentar