# Variable außerhalb Klasse definierbar?



## minni.maus (9. Mrz 2015)

Hallo,

ich habe eine grundsätzliche Frage bzw. Problem. 
Ich möchte gerne globale Variablen definieren, die Default-Werte beinhalten und würde diese gern außerhalb der Klasse definieren (also zwischen imports und der Klasse). 

Wenn ich bspw. public static int defaultNumber = 500; eingebe, bekomme ich folgenden Fehler: "Syntax error on tokens, delete these tokens".

Ist es überhaupt möglich, Variablen außerhalb der Klasse zu definieren?
Wenn ja, wie müsste ich die Varialbe deklarieren?

LG!


----------



## Joose (9. Mrz 2015)

Nein das ist nicht möglich.
Aber wenn die Variable "public static" ist kannst du von jeder Stelle im Code auf diese Variable zugreifen ohne das du ein Objekt der entsprechenden Klasse brauchst.
So ein globaler Zugriff ist aber nicht immer ratsam und sollte mit Bedacht eingesetzt werden.


----------



## Dompteur (9. Mrz 2015)

Wie Joose schon geschrieben hat, kann man Konstanten "public state" definieren.

Wenn diese Konstante aber logisch nicht zu deiner Klasse gehört, weil sie eigentlich eine "allgemeine" Einstellung ist, dann kannst du eine eigene Klasse anlegen, die nur aus solchen Konstanten-Definitionen besteht.

Du solltest aber immer kritisch hinterfragen, ob die Konstanten nicht doch zu einer deiner Klassen passen.

Beispiel:

```
public final class MeineGlobalenEinstellungen {
  public static final int MAX_UI_LISTBOX_EINTRAEGE = 100;
  public static final double PI = 3.14159;
  public static final String TAB = "\t";

  private MeineGlobalenEinstellungen() {}  // wir wollen keine Instanzen dieser Klasse zulassen.
}
```


----------

