javaseiten.de   |   Version 0.6
 

1.2. Variablen einer Klasse (Felder)

1.2.1. Deklaration und Zugriff

Die Variablen eines Klassentyps werden als Felder (engl. fields) bezeichnet. Dabei wird zwischen zwei Arten von Feldern unterschieden: Klassenvariablen und Instanzvariablen. Klassenvariablen werden unter Verwendung des Modifiers static deklariert; sie werden daher auch synonym als statische Variablen bezeichnet. Klassenvariablen existieren nur einmal pro Klasse. Instanzvariablen existieren hingegen einmel pro Instanz einer Klasse. Das folgende kurze Listing enthält eine Klassenvariable und eine Instanzvariable.

Listing 1.5. FieldExample.java. Deklaration zweier Felder (Klassenvariable a und Instanzvariable b).

/* FieldExample.java */

public class FieldExample {
  
  static int a = 3;
  int b = 4;
}

Die beiden Felddeklarationen beinhalten eine Initialisierung der Felder mit 3 und 4. Bei einer Klassenvariablen wird auch von einer einzigen "Inkarnation" des Feldes gesprochen, unabhängig davon, ob Instanzen von dieser Klasse erzeugt wurden. Die Erzeugung einer Instanz einer Klasse beinhaltet auch immer die Erzeugung neuer Variablen für die Instanzvariablen dieser Klasse. Auf Felder kann mit Hilfe der Punktnotation zugegriffen werden.

Zugriff auf Felder (Punktnotation):

Bei Klassenvariablen:
    KlassenName.KlassenvariablenName
    
Bei Instanzvariablen:
    InstanzName.InstanzvariablenName

Das anschließende Beispiellisting erzeugt zwei Objekte (Instanzen) der zuvor definierten Klasse FieldExample. Für die Klassenvariable a dieser Klasse erfolgt zunächst ein lesender und anschließend ein schreibender Zugriff mit Hilfe der Punktnotation. Für jedes der beiden angelegten Objekte obj1 und obj2 existiert eine Instanzvariable b, die mit obj1.b und obj2.b adressiert werden können.

Listing 1.6. FieldExample2.java. Zugriff auf Klassen- und Instanzvariablen mit Hilfe der Punktnotation.

/* FieldExample2.java */

public class FieldExample2 {
  
  public static void main(String[] args) {
    FieldExample obj1 = new FieldExample();
    int c = FieldExample.a + obj1.b;
  
    FieldExample obj2 = new FieldExample();
    FieldExample.a = FieldExample.a + 30;
    obj1.b = obj1.b + 40;
    int d = FieldExample.a + obj1.b + obj2.b;
  
    System.out.println("c = " + c + ", d = " + d);
  }
}

Das kurze Java-Beispiel gibt "c = 7" und "d = 81" aus.

1.2.2. Konstanten

Eine besondere Form einer Klassenvariablen (statische Variable) stellt eine Konstante dar. Eine Konstante wird dadurch deklariert, indem zusätzlich der Modifier final verwendet wird.

Listing 1.7. FieldExample3.java. Deklaration einer Konstanten.

/* FieldExample3.java */

public class FieldExample3 {
  
  public static final int MAX_VALUE = 5;
}

Es wird vorgeschlagen, den Namen einer Konstanten in Großbuchstaben anzugeben (Konvention). Eine Deklaration einer Konstanen muss eine Initialisierung beinhalten; im Beispiel wird der Wert 5 zugewiesen. Sobald eine finale Klassenvariable initialisiert wurde, kann dieser Wert nicht mehr verändert werden.

 

 

 

Diese Seite nutzt Google-Dienste - siehe dazu Datenschutz.

Copyright © 2006, 2007 Harald Roeder