Hi liebe Community,
hier gleich mal frisch mein erster Beitrag, und natürlich gleich eine Frage..
Zwar habe ich schon hier und da was mit Java geschrieben, verstehe mich aber eher im Entwerfen von Methoden. Da ich bis heute nur in Gruppen Teilarbeiten leisten konnte, habe ich zwar ne ziemlich schöne "Idee" wie Java funktioniert, aber bin total unerfahren wenn es mal über die Größe eines Consolen-Programmes hinaus geht.
Ich muss zugeben, dass mein Anliegen irgendwie ziemlich trivial und blöde klingt, bitte nehmt es dennoch ernst.
Mein Problem sind die Zugriffe mehrere Klassen, Threads etc. auf bestimmte Ressourcen/Werte.
Um das ganze mal greifbarer zu machen hier das komplette Anliegen:
Ich möchte zum Üben gerne ein simples Tamagotchi programmieren, dazu habe ich
- eine Main-Klasse (in welche sich die Werte wie Hunger etc. befinden)
- eine Werte-Klasse, welche die Methoden zur Veränderung der Werte hat
- eine Timer-Klasse, welche als separater Thread läuft und zeitbestimmende Events startet, wie z.B. den Hunger steigern
- eine GUI-Klasse, welche die Werte ausgibt und per Buttons Aktionen ermöglicht
und genau hier hört meine Fähigkeit auf. Mir ist klar wie man ne GUI zusammen zimmert, auch die Methoden für das Verändern der Werte sind klar, selbst wie man nen Thread erstellt und startet (mehr oder minder),
ABER:
Wie schaffe ich es, dass der Timer-Thread und die GUI beide auf die Werte der Main, erstellt aus der Werte-Klasse, zugreifen können?
Ich dachte spontan daran ihnen einfach die Werte zu übergeben, frei nach:
Aber dann versperrt Eclipse sich, verlangt final etc. (Außerdem übergebe ich ja dann nur Kopien der echten Daten, oder?)
Kann ich denn überhaupt den ActionListener XY aus der GUI auf eine Methode der Main, zB:
zugreifen lassen, auf die auch der Timer zugreifen können soll?
In Assembler ist das irgendwie „schöner“, da lagere ich alle Werte explizit auf Register aus und kann mit jeder Methode auch darauf zugreifen (zugegeben das Semaphore hier schön wären)
Ich habe echt keine Idee. Es ist wahrscheinlich einfachstes Grundwissen in Java, darum ist mir die Anfrage ja so peinlich
Edit1:
Leider haben mir google und andere Inet-Seite nur wenig geholfen,
bei meinen Anfragen komme ich immer wieder auf Tutorials wie man ne GUI oder n Thread erstellt,
Das Buch 'Java ist auch eine Insel' steht zwar neben mir, aber auch hier konnte ich nichts finden was mir weiter half (Zugegeben, ich habe das Buch noch nicht gänzlich durch!)
hier gleich mal frisch mein erster Beitrag, und natürlich gleich eine Frage..
Zwar habe ich schon hier und da was mit Java geschrieben, verstehe mich aber eher im Entwerfen von Methoden. Da ich bis heute nur in Gruppen Teilarbeiten leisten konnte, habe ich zwar ne ziemlich schöne "Idee" wie Java funktioniert, aber bin total unerfahren wenn es mal über die Größe eines Consolen-Programmes hinaus geht.
Ich muss zugeben, dass mein Anliegen irgendwie ziemlich trivial und blöde klingt, bitte nehmt es dennoch ernst.
Mein Problem sind die Zugriffe mehrere Klassen, Threads etc. auf bestimmte Ressourcen/Werte.
Um das ganze mal greifbarer zu machen hier das komplette Anliegen:
Ich möchte zum Üben gerne ein simples Tamagotchi programmieren, dazu habe ich
- eine Main-Klasse (in welche sich die Werte wie Hunger etc. befinden)
- eine Werte-Klasse, welche die Methoden zur Veränderung der Werte hat
- eine Timer-Klasse, welche als separater Thread läuft und zeitbestimmende Events startet, wie z.B. den Hunger steigern
- eine GUI-Klasse, welche die Werte ausgibt und per Buttons Aktionen ermöglicht
und genau hier hört meine Fähigkeit auf. Mir ist klar wie man ne GUI zusammen zimmert, auch die Methoden für das Verändern der Werte sind klar, selbst wie man nen Thread erstellt und startet (mehr oder minder),
ABER:
Wie schaffe ich es, dass der Timer-Thread und die GUI beide auf die Werte der Main, erstellt aus der Werte-Klasse, zugreifen können?
Ich dachte spontan daran ihnen einfach die Werte zu übergeben, frei nach:
Java:
class Main...
…
Werte values;
Timer timer;
GUI gui
…
private void init(){
values = new Werte();
timer = new Timer(values);
gui = new GUI(values);
….
Aber dann versperrt Eclipse sich, verlangt final etc. (Außerdem übergebe ich ja dann nur Kopien der echten Daten, oder?)
Kann ich denn überhaupt den ActionListener XY aus der GUI auf eine Methode der Main, zB:
Java:
//
public void decHunger(int dec){
main.values.hunger = main.values.hunger – dec;
}
In Assembler ist das irgendwie „schöner“, da lagere ich alle Werte explizit auf Register aus und kann mit jeder Methode auch darauf zugreifen (zugegeben das Semaphore hier schön wären)
Ich habe echt keine Idee. Es ist wahrscheinlich einfachstes Grundwissen in Java, darum ist mir die Anfrage ja so peinlich
Edit1:
Leider haben mir google und andere Inet-Seite nur wenig geholfen,
bei meinen Anfragen komme ich immer wieder auf Tutorials wie man ne GUI oder n Thread erstellt,
Das Buch 'Java ist auch eine Insel' steht zwar neben mir, aber auch hier konnte ich nichts finden was mir weiter half (Zugegeben, ich habe das Buch noch nicht gänzlich durch!)