![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
|
![]() |
#1 |
Jr. Member
![]() |
![]() Hi,
Ich bin grade dabei Java zu lernen und hab eins noch nicht gecheckt: Wie kann ich zwischen Klassen kommunizieren? Genauer gesagt, in einer Hierarchie von Vererbung und Instanzierung ist ja klar wie die Infos ausgetauscht werden. Aber das geschieht ausschließlich wenn eine übergeordnete Klasse eine Methode der unteren aufruft. Was macht man aber, wenn von der unteren Klasse etwas an die übergeordnete zu einem unbekannten Zeitpunkt mitgeteilt werden sollte? Ist die einzige Möglichkeit das Observer Pattern? weil ja blöderweise nur von einer Klasse geerbt werden kann, wäre es doch ziemlich unangenehm diese Fähigkeit für den Observer herzugeben. Konkret wärs eine GUI die in einer Hauptklasse instanziert wird und Befehle dorthin übermitteln soll. Danke schonmal fürs lesen dieses Gemurksls ![]() lg Manuel
____________________________________
MFG Mystic |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Versteh deine Frage nicht ganz. Aber ich versuchs mal...
Pseudocode: Code:
public class HauptFenster { public HauptFenster() { } // Unterfenster oeffnen, akt. Instanz des Hauptfenster uebergeben public void openUnterFenster() { UnterFenster unter = new UnterFenster(this); // irgendwas mit Fenster tun } public void exit() { // tu irgendwas ... } } public class UnterFenster { private HauptFenster haupt; // Im Konstruktor wird das Hauptfenster uebergeben public UnterFenster(Hauptfenster haupt) { this.haupt = haupt; } // beim Klicken auf Button123 wird die Exit Funktion im Hauptfenster aufgerufen private button123Click() { haupt.exit(); } } |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() |
![]() Ich versteh die Fragestellung ebenso wenig.
pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|