Benutzung von globalen Variablen einzigste Lösung?

Status
Nicht offen für weitere Antworten.

derToby

Mitglied
Hallo zusammen,

ich stehe vor einem kleinen Problem, bzw. mein Programm läuft, aber ich bin nicht sicher, ob ich es in einem schönen Programmierstil zum laufen bekommen habe.

Also mein Programm besteht aus 2 Klassen.
1. die main Klasse
2. sämtliche Methoden.

Damit ich von meinen Methoden auf die Variabeln der main Klasse zugreifen kann, hab ich die entsprechenden Variablen alle in der main Klasse als Static declariert, weil es ja sonst nicht funktioniert. Ist das geschickt? In der Methoden Klasse rufe ich die Variablen folgendermassen: mainKlasse."Variablenname"

Hatte zuerst alle Variablen als Parameter an die Methoden übergeben, aber das hat mir nicht weitergeholfen, weil bei den Methoden ja nur mit Kopien der ursprünglichen Variablen gearbeitet wird (Call by Value).

Kann man mein Problem auch anders lösen?

vielen Dank schonmal.

Grüße

derToby

PS: so damit ist mein erster Post auch erledigt...
 
B

bygones

Gast
so vom beschreiben her ist das ein nicht gelungenes Schema (main klasse und eine Klasse mit allen Methoden) - man sollte seine Klassen logisch einteilen.

Ansonsten übergib ein Objekt der Mainklasse der anderen klasse und dann über normale Instanzaufrufe der methoden ist es möglich.

Würde dir aber empfehlen das Design zu ändern
 

derToby

Mitglied
wow das ist aber eine schnelle Antwort! Respekt!

momentan sind es noch nicht viele Methoden, aber es können noch deutlich mehr werden. Denke, du hast Recht, dass eine logische Einteilung besser ist. Zwei Fragen bleiben mir noch:

1.
Gegen eine eigenen Main Klasse ist nix einzuwenden?

2.
Zitat: <"Ansonsten übergib ein Objekt der Mainklasse der anderen klasse und dann über normale Instanzaufrufe der methoden ist es möglich.">

Sorry, den Satz verstehe ich noch nicht ganz. Du meinst, ich soll es so machen, wie ich es eh schon machen? D.h. globale Variablen in der Main Klasse, und in einer der anderen Klassen in den Methoden mit mainKlasse.VarName aufrufen? Denke du meinst was anderes...
 
B

bygones

Gast
derToby hat gesagt.:
1. Gegen eine eigenen Main Klasse ist nix einzuwenden?
jein - es kommt halt immer drauf an, was in den Klassen zu finden ist. Man sollte seine Klassen logisch trennen...


derToby hat gesagt.:
2.
Zitat: <"Ansonsten übergib ein Objekt der Mainklasse der anderen klasse und dann über normale Instanzaufrufe der methoden ist es möglich.">

Sorry, den Satz verstehe ich noch nicht ganz. Du meinst, ich soll es so machen, wie ich es eh schon machen? D.h. globale Variablen in der Main Klasse, und in einer der anderen Klassen in den Methoden mit mainKlasse.VarName aufrufen? Denke du meinst was anderes...
nein - nicht über globale sonder über instanz-variablen / methoden

Code:
public class Main {
  private int foo
  private String bar

  public int getFoo() {
    return foo;
  }

  public static void main(String[] args) {
    Main mainClass = new Main();
    OtherClass c = new OtherClass(mainClass);
 }
}

public class OtherClass {
  private Main mainClass
  
  public OtherClass(Main m) {
    mainClass = m;
   
   System.out.println(mainClass.getFoo());
}
 
A

Andydreas

Gast
Wie kann ich denn in dem Fall wieder in der Main Klasse auf private Foo zugreifen?

Eigentlich müßte es doch gehen, private erlaubt ja den Zugriff innerhalb der Klasse.

Bekomme aber folgende Fehlermeldung:
...Main.java:12: non-static method getFoo() cannot be referenced from a static context

Aber die void Mainmethode muss doch static sein?!?
 
B

Beni

Gast
Ich bin so frei, und Verweise in die FAQ:

non-static etc.

Und ja, die Main-Methode muss static sein. Aber sie kann ein Objekt "x" erzeugen, und bei "x" nicht-statische Methoden aufrufen.

Auf "foo" kannst du nur Zugreiffen, wenn du ein Objekt der Main-Klasse besitzt. Die Methode "main" ist aber unabhängig von jedem Objekt (sie kann auch keinem Main-Objekt zugeordnet werden), deshalb gibt es den Fehler.
 
A

Andydreas

Gast
Ah, so funktioniert es. Ist doch korrekt, oder?
Erst ein Object erzeugt , mit dem Namen mainClass
und dann per Object auf das foo zugegriffen:


Main mainClass = new Main();
...
...
...
System.out.println(mainClass.foo);

Thx! Der FAQ Link war ne gute Hilfe!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
E Problem mit Arrays bei Benutzung einer GUI Java Basics - Anfänger-Themen 3
U Reflection Benutzung Java Basics - Anfänger-Themen 2
M HTMLDocument benutzung Java Basics - Anfänger-Themen 2
U Richtige Benutzung der API-Doku Java Basics - Anfänger-Themen 8
H benutzung von datenbank / installer Java Basics - Anfänger-Themen 3
X Benutzung von Threads Java Basics - Anfänger-Themen 13
X Benutzung von Mixer (Sound, nicht Küche!) Java Basics - Anfänger-Themen 2
I Problem bei der benutzung eines wertes aus 2 quelltexten Java Basics - Anfänger-Themen 3
M Benutzung von fremden Java-Code mit Eclipse Java Basics - Anfänger-Themen 3
S Benutzung von Thread -> Trennung GUI und Berechnungen &lt Java Basics - Anfänger-Themen 2
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
M Wert von globalen Variablen über eine Methode ändern Java Basics - Anfänger-Themen 8
Luk10 Frage zu globalen Konstanten Java Basics - Anfänger-Themen 11
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
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
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
S Variablen Flexible Variablen Namen Java Basics - Anfänger-Themen 3
R Erste Schritte 3 Variablen hochzählen lassen Java Basics - Anfänger-Themen 1
RowdyN Variablen Variablen beliebig benennen? Java Basics - Anfänger-Themen 6
S OOP Variablen zwischen mehreren Klassen Java Basics - Anfänger-Themen 11
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2
P Klassen Variablen von einer Klasse zur anderen Java Basics - Anfänger-Themen 5
H Objekt überschreibt Variablen vorheriger Objekte Java Basics - Anfänger-Themen 2
P Variablen in Excel speichern Java Basics - Anfänger-Themen 6
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
F Variablen unterschiedlicher Datentypen Java Basics - Anfänger-Themen 6
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
P Textfelder in Variablen speichern Java Basics - Anfänger-Themen 13
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
J Vererbung Variablen aus Superklasse übernehmen Java Basics - Anfänger-Themen 2
L Variablen aus TXT Datei auslesen und vergleichen. Java Basics - Anfänger-Themen 5
K Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen? Java Basics - Anfänger-Themen 4
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben