13.1 Klassenattribute

Bisher haben wir Klassen lediglich als eine Art Bauplan betrachtet, in dem festlegt ist, welche Attribute und Methoden Objekte der jeweiligen Klasse besitzen.

Darüber hinaus kann eine Klasse jedoch auch selbst Attribute besitzen. Dies ist immer dann sinnvoll, wenn ein Attribut nicht dazu dient ein einzelnes Objekt zu beschreiben, sondern die Gesamtheit aller Objekte der jeweiligen Klasse.

Eine Eigenschaft die nicht einzelnen Objekten, sondern deren Klasse zugeordnet wird, wird als Klassenattribut bzw. statisches Attribut bezeichnet.

Jedes Klassenattribut – und damit auch sein Attributwert – existiert nur ein einziges Mal.

Da sich Klassenattribute nicht auf ein bestimmtes Objekt, sondern die gesamte Klasse beziehen, erfolgt der Zugriff ausschließlich über den Klassennamen.

Im UML-Klassendiagramm werden Klassenattribute unterstrichen.

In Java erflogt die Deklaration eines Klassenattributs mit Hilfe des Schlüsselworts static.

Merke: Klassenattribut
Beispiel
  • Klassenattribute werden im UML-Klassendiagramm unterstrichen:

    img/Abb_13_1_UML_Schulklasse.svg
    Abb. 13-2: Klasse Schulklasse (UML)
  • Klassenattributs werden in Java mit Hilfe des Schlüsselworts static deklariert:

    JAVA
    public class Schulklasse {

        private static int klassenteiler;
        ...
        
    }
    Abb. 13-3: Klasse Schulklasse (Quellcode-Ausschnitt)
  • Der Zugriff auf ein Klassenattribut erfolgt in Java über den Klassennamen:

    JAVA
    public boolean istKlasseTeilbar() {
        boolean teilbar = false;
        
        if( this.ermittleKlassenstaerke() > Schulklasse.klassenteiler) {
            teilbar = true;
        }
        
        return teilbar;
    }
    Abb. 13-4: Quellcode der Methode istKlasseTeilbar(): boolean