Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


4.6

Datenelemente



Die Datenelemente eines Objekts enthalten die Daten, die seinen Zustand charakterisieren. Für ein Exemplar von Point könnte solch eine Zustandsbeschreibung lauten: »Ich befinde mich an Position (1, 2).«

In der Klasse Point aus unserem Beispiel wurden die Datenelemente x, y und color definiert:
  public class Point {
    public int x, y, color;
    ...
  
  }
Diese drei Datenelemente sind in der gesamten Klasse verfügbar. Das Schlüsselwort public definiert eine so genannte Zugriffsklasse. Zugriffsklassen bestimmen, für welche Klassen und Pakete ein bestimmtes Datenelement sichtbar ist. Auf Zugriffsklassen wird im Abschnitt 4.10.1 näher eingegangen.

Grundsätzlich wird mit jedem neu erzeugten Exemplar auch ein neuer Speicher für die Datenelemente angelegt. Die Datenelemente einzelner Exemplare sind also voneinander unabhängig. Man spricht daher auch von Exemplarvariablen. Eine Ausnahme hiervon bilden die static-Datenelemente, die im nächsten Abschnitt behandelt werden.

Datenelemente sind von den Variablen zu unterscheiden, die innerhalb von Methoden definiert werden. Variablen in Methoden dienen im Gegensatz zu Datenelementen nicht der Beschreibung des Zustands eines Objekts, sondern sind Hilfsmittel, um eine Aktion mit dem Objekt durchzuführen. Ein weiterer wesentlicher Unterschied liegt in der Zuweisung von Initialwerten:

Exemplarvariablen werden beim Erzeugen jedes neuen Objekts automatisch initialisiert, und zwar bevor der Code des Konstruktors ausgeführt wird, siehe hierzu auch Abschnitt 4.5.2. Variablen in Methoden dagegen werden nicht initialisiert, wenn kein Anfangswert in der Deklaration gegeben ist. Der Compiler stellt aber sicher, dass eine Variable nicht ohne vorhergehende Zuweisung ausgelesen wird und reklamiert gegebenenfalls Zugriffe ohne vorherige Zuweisung.

Falls in der Definition eines Datenelements kein Anfangswert spezifiziert ist, wird ein dem Typ entsprechender Initialwert zugewiesen. Das folgende Beispiel zeigt, dass auch Datenelemente mit Verweistypen bei der Deklaration initialisiert werden können.
  public class Demo {
    int a = 1;
    int b; // automatische Initialisierung mit 0
    Integer i = new Integer(123);
  }
Falls die Berechnung des Initialwerts komplexer ist, so dass sie sich nicht mit einem einfachen Ausdruck darstellen lässt, kann die Initialisierung entweder in einem Konstruktor oder in einer Exemplar-Initialisierung vorgenommen werden.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.