hadaka: Vielfälltiger Klassenzugriff

Hey Leute,
ich beschäftige mich schon längere Zeit mit Java und habe hier mal eine allgemeine frage zu den Klassenverhältnissen und zugriffen.
Ich möchte folgendes Programmieren:

Ich hoffe die Grafik erklärt grobes falls nicht versuche ich es hier noch zu erläutern.
Ich habe 3 Klassen, die jeweils ein Objekt erzeugen. Okjekt 1 erzeugt sowohl Objekt 2 als auch 3.
Programmiert habe ich das mit : Objekt2 obj2 = new Objekt2();
...
Objekt3 obj3 = new Objekt3();
nun soll das Objekt 3 aber Funktionen von Objekt 1 ausführen können, die das von Objekt 1 erzeugte Objekt 2 bearbeiten. Wichtig ist, das Objekt 2 vor Objekt 3 erzeugt wurde.
Ich habe aber keine Ahnung wie ich das hinbekomme. wenn ich in Objekt 3 nun Objekt1 obj1 = new Objekt1(); mache, ist dies ja ein komplett neues Objekt und die schon verarbeiteten daten von dem alten Objekt 1 und 2 werden nicht bearbeitet.
Könnt ihr mir helfen ? wie kann ich das denn machen / programmieren?
ich hoffe ich habe mein Problem deutlich genug erklärt :/
MfG Hadaka

  1. Guten Morgen!

    [...]
    Ich habe aber keine Ahnung wie ich das hinbekomme. wenn ich in Objekt 3 nun Objekt1 obj1 = new Objekt1(); mache, ist dies ja ein komplett neues Objekt und die schon verarbeiteten daten von dem alten Objekt 1 und 2 werden nicht bearbeitet.

    Du musst der Instanz obj3 eine Referenz auf obj1 mitgeben. Also bei der Instanzierung von obj1 innerhalb von obj3:

    Objekt1 obj1 = new Objekt1();
    obj1.setObj3(this);

    Jetzt muss sich obj1 diese Referenz merken (z.B. in einer Membervariablen), und dann kann es bei Gelegenheit Methoden auf obj3 aufrufen. Interessant wäre noch, ob Dein Vorhaben aus softwarearchitektonischer Sicht Sinn macht, oder ob es eine bessere Variante gibt. Aber das finden wir nur heraus, wenn aus Objekt[1|2|3] sprechende Klassennamen werden und man den fachlichen Zusammenhang kennt.
    Du musst für diese Referenzübergabe natürlich keine set-Methode codieren, sondern kannst die Referenz auch im Konstruktor mitgeben:

    Objekt obj1 = new Objekt1(this);

    Auch hier muss Objekt1 natürlich den entsprechenden Konstruktor anbieten und sich die Referenz merken.

    Schöne Grüße,

    Peter