# globale Variablen



## Sven (10. Feb 2007)

Hallo!

Ich hab mal ne Frage! Kann man in Java globale Variablen definieren??? Wie geht denn das? Ich will die Variablen zu jedem Zeitpunkt im meinen Code zur Verfügung haben!

Vielen Dank


----------



## Redfrettchen (10. Feb 2007)

Das wäre nicht im Sinne der OOP. Natürlich kannst du dir in einer Klasse eine öffentliche Konstante definieren, die du dann von überall aus abrufen kannst. Aber wozu benötigst du es überhaupt bzw. meinst du eine solche Konstante zu benötigen?


----------



## Gast (10. Feb 2007)

möchte das halt mal gerne wissen, hab jetzt kein konkretes Beispiel!


----------



## Jango (10. Feb 2007)

Redfrettchen hat gesagt.:
			
		

> Das wäre nicht im Sinne der OOP...



Warum nicht? Gibt doch auch static-Deklarierte Variablen/Konstanten, die, an den Anfang der Klasse gesetzt, von überall aufrufbar sind, oder? Solche "globalen" Variablen/Konstanten im Sinne von C/C++ gibts in Java eh nicht, da Alles nur in  Klassen passiert.   :wink:


----------



## Tobias (10. Feb 2007)

Globale Variablen würden das Kapselungsprinzip verletzen.

mpG
Tobias


----------



## Tellerrand (10. Feb 2007)

Es geht hier doch darum globale Variablen/Werte an mehreren Codestellen benutzen zu können.

Anstatt globale Variablen zu nutzen lassen sich diese doch in eine Klasse packen die du dann von allen stellen deines Codes benutzen kannst.
Ein Klassenname.getVariablenname(), bzw ein Klassenname.Variablenname reicht doch aus.
(Soltle die Variable/Methode nicht static sein, so müsstest du natürlich erst ein Objekt der Klasse erzeugen)

Jede public Klasse ist von allen Teilen deines Codes aus erreichbar und somit auch deren public Variablen/Methoden.
Das man nicht direkt auf einen Variablenwert zugreifen kann, sondern quasi immer erst über die Klasse gehen muss ist für dich doch unwichtig oder?

Theoretisch ist "System" auch nur eine globale Variable, welche oft bei System.out.println() benutzt wird


----------



## Jango (10. Feb 2007)

Tellerrand hat gesagt.:
			
		

> Theoretisch ist "System" auch nur eine globale Variable, welche oft bei System.out.println() benutzt wird



Und ich dachte immer "System" wäre eine Klasse.


----------



## Tellerrand (10. Feb 2007)

Oh, hier wird auch kein Schnitzer übersehen ...

Ersetze "System" durch "System.out"


----------



## Jango (10. Feb 2007)

Dann wäre "System" immer noch eine Klasse - und "out" die statische Variable  :wink:


----------



## Tellerrand (10. Feb 2007)

System.out ist eine statische Variable.
Genauer:
System.out ist die statische Variable der Klasse System.
out ohne System ist nunmal weder eine Variable noch eine Klasse.
(Es sei denn man definiert sich ne Klasse out  :shock: )


----------

