Frage zu Klasenvariable

MinaM

Mitglied
Hallo Zusammen;

ich habe einemal eine Frage:
Müssen Klassenvariablen immer als static deklariert werden.

ich habe eine Klassenvariable erzeugt, erst habe ich sie privat deklariert, konnte
dann nicht auf sie zugreifen, dann habe ich es mit public probiert und konnte auf sie zugreifen.
Meine Frage also müssen Klassenvariablen (also Variablen die sich auf die Klasse im
gesamten beziehen, nicht auf ein einzelnes Objekt) immer public deklariert werden?[

lg
MinaMurray
 
Hi MinaM!

Müssen Klassenvariablen immer als static deklariert werden.
Ja, sonst wären es ja eine Instanzvariablen.
...müssen Klassenvariablen ... immer public deklariert werden?
Nein, kannst sie selbstverständlich auch z.B. private oder protected machen. Kannst jedoch dann nicht von außen direkt darauf zugreifen. Du müsstest dann getter- und setter-Methoden implementieren.

Beispiel:
Code:
public class Test {
    public static int a;
    private static int b;
    
    public static void setB(int newB){
        b=newB;
    }
    public static int getB(){
        return b;
    }
}

Code:
Test.a=5; //Problemlos möglich
Test.b=5; // Fehler, da b private
//stattdessen:
Test.setB(5);

MfG
Sebastian
 
Zurück