"Globale Variablen"

Status
Nicht offen für weitere Antworten.

JAVAn00b

Bekanntes Mitglied
Hallo zusammen,

wie kann ich variablen so deklarieren das jede klasse darrauf zugriff hat. Ich habe schon eine extra Klasse erstellt wo wichtig variable gespeichert werden.

Nun möchte ich eigenltlich nur das jede klasse auf die Variablen einen zugriff warten.


Gruß
 

Verjigorm

Top Contributor
entweder
du machst diese Klasse als interface und alle anderen Klassen implementieren dieses Interface oder
Jede klasse erstellt nen Objekt der "Variablenklasse" (die variablen müssen dann public sein)
oder du machst die Variablen statisch (auch public)
 

WieselAc

Top Contributor
Normalerweise macht man das so:

Code:
public final class MyConsts {

public static final int ONE = 1;
public static final int TWO = 2;

/**
 * Ist nicht zwingend, aber guter Stil, da so die Constanten Klasse 
 * auch nur als Util Klasse evrwendet werden kann und vor 
 * Missbrauch geschützt wird.
 */
private MyConsts() {
}

}

Zugreifen kannst du dann mit:

Code:
...

int tmp = MyConsts.ONE;
...
 

schalentier

Gesperrter Benutzer
Singleton!

Code:
public class Global {
  private Global myInstance = null;
  private Global() {}

  public static getInstance() {
    if( myInstance==null ) {
       myInstance = new Global();
    }
    return myInstance;
  }

  public int getFoo(){ return 1; } 
  ...
}

... somewhere ...

int bar = Global.getInstance().getFoo();
 

WieselAc

Top Contributor
OK, dann muss ich mich relativieren:

1) Sowas sollten man nicht machen
2) Wenn doch, dann so lokal wie möglich und so global wie nötig (Ok, Phrase aber hier richtig angebracht)
3) Sowas sollten man nicht machen
4) Wenn es dann trotz aller Umstände doch sein muss und man kein besseres Design hinbekommt, dann etwas in der Richtung meines Vorschlages
 

schalentier

Gesperrter Benutzer
Was redet ihr eigentlich? Der Fragesteller hat nach Variablen gefragt, nicht nach Konstanten. Und es ist immer besser, wenn man mit Gettern arbeitet, statt mit Konstanten. So ist es naemlich ein leichtes, die "Konstanten" spaeter mal in z.b. eine Konfigurationsdatei auszulagern... oder sie berechnen zu lassen... oder..oder...

Und warum dieser Hinweis, das so niemals zu machen? Is doch Unsinn... Wie legt ihr denn globale, anwendungsweite Einstellungen ab? Der immer wieder zitierte Satz, man solle keine globalen Variablen in gutem OO-Design verwenden, is IMHO falsch formuliert. Es geht dabei nicht um globale oder nicht-globale Variablen, sondern darum, dass Variablen an Objekte gehoeren und nicht voellig bezugslos im Raum schweben sollen. Und genau das geht mit Java ja mal ueberhaupt nicht. :)

Ueblicherweise verwendet man also Singletons. Wenns wirklich atomare Dinge sind, die sich niemals veraendern werden (z.b. irgendwelche Namen, etc.) - oder man zu faul ist fuers Singleton - dann kann man auch Konstanten verwenden, die dann in Interfaces ausgelagert, von beliebigen Klassen (static) importiert werden koennen.
 

Leroy42

Top Contributor
schalentier hat gesagt.:
Was redet ihr eigentlich? Der Fragesteller hat nach Variablen gefragt, nicht nach Konstanten.

Du hast wohl die Ironie meines letzten Posts übersehen. :wink:

Bezüglich der getter und setter Methoden gebe ich dir recht.

Ich sehe allerdings nicht ein, wieso man unbedingt ein Singleton
verwenden sollte, nur um projektweite Variablen zu verwenden.
 

schalentier

Gesperrter Benutzer
Jo, die Ironie habsch wohl uebersehen... ^^

Aber wie willst du sonst projektweite Variablen definieren? :-D
 

JAVAn00b

Bekanntes Mitglied
OKay gut...

Ich meine wirklich Variablen :D, wenn ich Variablen meine dann mein ich auch Variablen!

Und zur Info, ich brauche die Variablen als Temp oder sonstiges und die Variblen werden verändert!

Aber trotzdem sollen sie für alle erreichbar sein!
 

JPKI

Top Contributor
Schreib eine eigne Klasse, mit öffentlichen und statischen Variablen, die zu beginn null sind und von der ersten Klasse, welche drauf zugreift, dann überschrieben werden. Dann kann jede Klasse auf diese Variablen zugreifen.

@Alle: Der eigentliche Unterschied zwischen Konstanten und statischen Variablen ist doch eigentlich nur der Modifizierer final, oder?
 

schalentier

Gesperrter Benutzer
@Frager: Nimm Singleton! Ich habs weiter vorne gepostet, so macht man das ueblichweise. Zum Getter kommt logischerweise noch ein Setter in deinem Fall.

Variablen sind Speicherplaetze in der Programmierung. Also Dingers, die Speicherplatz brauchen und dort was reinschreiben und rauslesen koennen.

Konstanten sind Variablen, die nicht veraendert werden koennen.

Mit final hat das eigentlich nicht wirklich was zu tun.

Code:
public class Constants{
  // Singleton-Stub wie oben...

  public static final APPLICATION_NAME = "Constant Test"; // eine Konstante
  private int version = 17; // eine Variable

  public int getVersion() { return version; } // lesender Zugriff auf eine Variable
  public void setVersion( int version ) { this.version = version; } // schreibender Zugriff auf eine Variable
}

Constants.APPLICAION_NAME = "foo"; // compiler-fehler
Constants.getInstance().setVersion(1); // okay
Constants.getInstance().getVersion(); // okay, liefert die "1"
 

JPKI

Top Contributor
JPKI hat gesagt.:
Der eigentliche Unterschied zwischen Konstanten und statischen Variablen ist doch eigentlich nur der Modifizierer final, oder?
schalentier hat gesagt.:
Konstanten sind Variablen, die nicht veraendert werden koennen.

Mit final hat das eigentlich nicht wirklich was zu tun.
Wieso? Ohne den Modifizierer final kann man jede Variable verändern!
 

Leroy42

Top Contributor
schalentier hat gesagt.:
Konstanten sind Variablen, die nicht veraendert werden koennen.

Trätärätää!

Der Spruch gehört in die Hall of Fame! :cool:

Gleich neben
Katzen sind Hunde, die nicht bellen können!



schalentier hat gesagt.:
Mit final hat das eigentlich nicht wirklich was zu tun.

Was ist denn das für'n Blödsinn. :shock:

Natürlich bedeutet der Modifier final daß der entsprechende
Bezeichner auf einen nicht-veränderbaren (konstanten) Wert verweist.
 

schalentier

Gesperrter Benutzer
Leroy42 hat gesagt.:
schalentier hat gesagt.:
Konstanten sind Variablen, die nicht veraendert werden koennen.

Trätärätää!

Der Spruch gehört in die Hall of Fame! :cool:

Danke danke :)

Wikipedia hat gesagt.:
In der Programmierung ist eine Variable ein Name für einen Speicherbereich in einem Computerprogramm, der verschiedene Werte annehmen kann. Technisch gesehen bezeichnet eine Variable einen Speicherbereich des Computers, in dem Werte gespeichert werden können. Dieser Speicherbereich wird mit dem Variablennamen angesprochen.

Demnach ist ne Konstante doch auch irgendwie ne Variable, oder net?


Jo mit dem final hab ihr Recht.

Helge Schneider hat gesagt.:
Ich habe mich vertan!
 

JAVAn00b

Bekanntes Mitglied
so ich weiß immer noch nicht wie ich das machen soll!!! Es wär mal angebracht wenn ihr euch nicht gegenseitig fertig macht sonder, mir helft !!! :D

Gruß
 

JAVAn00b

Bekanntes Mitglied
gut habs jetzt verstanden mit der Klasse!!!

Das nächste Problem ist was mache mit der Rückgabe Variable? Wie kann ich sie benutzen?

Gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Vererbung/Globale Variablen Java Basics - Anfänger-Themen 8
D globale Variablen zur Laufzeit erzeugen Java Basics - Anfänger-Themen 5
G Globale Variablen Java Basics - Anfänger-Themen 9
G Globale Variablen Java Basics - Anfänger-Themen 3
O globale variablen Java Basics - Anfänger-Themen 21
M Globale Variablen werden durch KeyListener nicht aktualisier Java Basics - Anfänger-Themen 10
F Globale Variablen wie in C++? Java Basics - Anfänger-Themen 5
S globale Variablen Java Basics - Anfänger-Themen 9
J Globale Variablen Java Basics - Anfänger-Themen 3
D Globale Variablen Java Basics - Anfänger-Themen 31
C Globale Variablen und Array mit verschiedenen Typen Java Basics - Anfänger-Themen 3
S globale Variablen Java Basics - Anfänger-Themen 7
P Globale Objekte Java Basics - Anfänger-Themen 2
T Globale Variable mehrmals verwenden Java Basics - Anfänger-Themen 7
Traxter Globale Variable ? Java Basics - Anfänger-Themen 11
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
M Variablen Globale Variable? Java Basics - Anfänger-Themen 4
Luk10 Globale (semi-finale) Varibalen Java Basics - Anfänger-Themen 9
U Globale Proxy Einstellungen ändern Java Basics - Anfänger-Themen 3
B Globale vector? Java Basics - Anfänger-Themen 7
C lokale Variable verwenden statt globale Java Basics - Anfänger-Themen 7
B Methoden Globale Methoden "Toolbox" Java Basics - Anfänger-Themen 3
S globale Variable deklarieren Java Basics - Anfänger-Themen 10
E Globale int Variable? Java Basics - Anfänger-Themen 6
K Datentypen Globale Variable direkt initialisieren oder im Konstruktor? Java Basics - Anfänger-Themen 13
T Globale Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Globale Variable (Font) Java Basics - Anfänger-Themen 21
G Müssen globale Funktionen immer "static" sein? Java Basics - Anfänger-Themen 13
A Globale Variable änderbar Java Basics - Anfänger-Themen 3
A Globale Methode ohne imports und übergeben? Java Basics - Anfänger-Themen 2
P textfarbe,textgröße, textart als globale einstellung Java Basics - Anfänger-Themen 7
D Globale Klassenvariablen. Java Basics - Anfänger-Themen 12
P Globale und ständige Überwachung eines Textfeldes auf text? Java Basics - Anfänger-Themen 40
M Superglobale globale Variable? Java Basics - Anfänger-Themen 10
P Globale Variable Java Basics - Anfänger-Themen 3
J "globale" variable definieren? Java Basics - Anfänger-Themen 7
S Globale Variable / Methode Java Basics - Anfänger-Themen 5
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
A Übergreifende Variablen Java Basics - Anfänger-Themen 17
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
L Variablen in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
J Klassen Variablen in andere Klassen oder Methoden übernehmen Java Basics - Anfänger-Themen 1
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
temi Redundante Variablen Java Basics - Anfänger-Themen 29
Aprendiendo Zweifel mit versteckter Variablen Java Basics - Anfänger-Themen 16
L Variablen einmal nur zu weisen Java Basics - Anfänger-Themen 62
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S Vererbung Variablen klassenübergreifend nutzen Java Basics - Anfänger-Themen 42
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
L Variablen dekleration + reset Java Basics - Anfänger-Themen 16
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben