4. Class Variables und Class Methods

Alle bisher verwendeten Variablen waren sogenannte "instance variables". Dies bedeutet, daß jede Instanz der Klasse eine eigene Kopie der Variablen erhält und diese jederzeit geändert werden kann.

Durch die Deklaration der Variablen mit "static" wird nur eine einzige Kopie der Variablen in der entsprechenden Klasse angelegt. Diese Kopie existiert auch, wenn es keine Instanz der Klasse gibt. Solch eine Variable heißt dann "class variable". Sie hat große Ähnlichkeit mit globalen Variablen in anderen Programmiersprachen.

Zugriff:
Außerhalb der Klasse kann auf solch eine Variable mit  <Klassenname>.<Class Variable> zugegriffen werden. Innerhalb der Klasse  kann man den Klassennamen weglassen(Zugriff also mit <Class Variable>).

        public class Circle {
            static int num_circles = 0; // class variable: zählt die Anzahl der
            // erzeugten Circle-Objekte
            public double x, y, r; // instance variables

            public Circle(double x, double y, double r) {
            this.x = x; this.y = y; this.r = r;
            num_circles++;
            }
            .
            .
            .
        }

Konstanten in Java werden mit "static final" deklariert.
Das Schlüsselwort "final" bedeutet hier, daß einmal definierte Variablen nicht mehr verändert werden können.

        public class Circle {
            public static final double PI = 3.14159;
            .
            .
            .
         }

Das Konzept der "class methods" funktioniert analog zu dem der "class variables".
Eine Klassen-Methode wird mit "static" deklariert, aufgerufen wird sie mit <Klassenname>.<Class Method> .
Diese Art von Methoden ist globalen Methoden sehr ähnlich.

        double distance = Math.sqrt(dx*dx + dy*dy)
 

 vorherige Seite Inhalt nächste Seite