".should be accessed in a static way"?

Status
Nicht offen für weitere Antworten.

bicpi

Mitglied
Was bedeutet folgendes?

"The static field Klasse1.VAR should be accessed in a static way"

Ich versuche also auf die (final static) VAR in Klasse1 von Klasse2 aus zuzugreifen mit "Klasse1.VAR". Wie soll ich sie sonst ansprechen ?
Danke schön.
 
Du machst vermutlich sowas:
Code:
A a = new A();  // oder was auch immer
int blupp = a.VAR;

Besser wäre aber sowas:
Code:
int blupp = A.VAR;
 
Mh, das unterscheidet sich doch in der Schreibweise groß/klein, lässt sich das überhaupt so ansprechen?? Ich verwende auf jeden Fall in Deklaration und Zugriff genau die gleiche Schreibweise. "Auf statische Weise zugreifen" - ich kann mir darunter nichts vorstellen..
 
Benis Beispielnamen waren vielleicht etwas schlecht gewählt. Vielleicht ist es hiermit besser verständlich:
Nicht
Code:
Klasse objekt = new Klasse();
int var = objekt.var;
sondern
Code:
Klasse objekt = new Klasse();
int var = Klasse.var;
 
weil man Klassennamen mit Großbuchstaben beginnt, Instanznamen mit kleinbuchstaben...

einfach heißt es, du sollst die Variable über die Klasse und nicht über eine Instanz ansprechen...

Code:
Klasse instanzname = new Klasse();
instanzname.VAR; // ansprechen über instanz
Klasse.VAR; // gut, anssprechen über Klasse
 
OK, noch ein Versuch... :wink:
Das bedeutet, Du hast wahrscheinlich eine Instanz erstellt und willst damit auf eine statische Variable/Methode zugreifen.
Ein Zugriff auf eine statische Methode so aus:
Code:
Klasse.methode();
oder
Code:
Klasse.zahl = 15;
für einen Zugriff auf eine statische Variable namens zahl vom Typ int.
Dabei ist die Methode statische deklariert. Also z.B. etwa so:
Code:
public static void methode() {
   [...]
}
Oder eine statische Variable, etwa so:
Code:
private static int zahl = 10;
Wenn Du nun folgendes machst:
Code:
Klasse referenz = new Klasse();
referenz.methode();
oder
Code:
Klasse referenz = new Klasse();
referenz.zahl = 15;
erhältst Du den Compiler-Fehler, den Du beschrieben hast.
 
einfach heißt es, du sollst die Variable über die Klasse und nicht über eine Instanz ansprechen...
Damit hab ichs kapiert und ist jetzt auch super logisch für mich 🙂 Statische Dinge existieren ja unabhängig von einer Instanz.
Einen Compilerfehler verursacht es mir aber nicht, nur einen "Hinweis" in Eclipse 😉

Hab mich gefreut über eure ausführlichen Antworten, Danke !
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben