Kommunikation zwischen Objekten



  • Hallo erstmal!

    Nach etwa 1.5 Jahren Programmierabstinenz brauche ich wohl wieder ein bisschen Hilfe um weitermachen zu können. Folgendes Problem:

    Ich habe zwei Klassen, A und B. Die Klasse A erzeugt ein Objekt der Klasse B. Gibt es nun eine Möglichkeit, vom Objekt B eine Methode der Klasse A aufzurufen? Wie löst man solche Probleme in Java am besten?

    Zweitens: Gibt es eine Möglichket Buttons wieder aus einem Java-applet zu entfernen, nachdem man sie mit der add()-methode hinzugefügt hat?

    Danke schon mal für eure Hilfe
    -elvis



  • Hi,

    zu deiner ersten Frage: Wenn du bei der Erzeugung des Objekts aus B 'this' mit als Parameter übergibst als quasi Parent, dann kann das Objekt aus B auch Methoden des Objekts aus A aufrufen.

    Mittels remove kannst du die Komponenten nachträglich entfernen.



  • Wenn du bei der Erzeugung des Objekts aus B 'this' mit als Parameter übergibst als quasi Parent, dann kann das Objekt aus B auch Methoden des Objekts aus A aufrufen.

    😕 😮
    Ich glaub dazu bin ich zu blöd. Kannst du das bitte noch mit einem klitzekleinen Beispiel versehen?

    danke
    -elvis



  • Klar ...

    public class A {
        B b=null;
    
        public A() {
            this.b = new B(this);
        }
        ...
    }
    
    public class B {
        private A myParent=null;
    
        public B(Object parent) {
            myParent = parent;
        }
    
        public void someMethod() {
            // call some specific methods from parent object
            if (myParent!=null)
                myParent.methodOfClassA();
        }
    }
    


  • Ist das nur bei mir so, oder ist die Anzeige vom Code-Tag fehlerhaft!?
    Bei mir wird unter dem eigentlich code-Block noch ein etwas kleineres Anhängsel angezeigt in dem noch mal ein bisschen schlecht formatierter code vom oberen Block steht.



  • Vielleicht solltest du diese Meldung mal in die Forentechnik mit Angabe des Browsers, OS etc. posten?



  • Da könntest du vielleicht recht haben! 😉



  • Danke CengizS!

    Genau das hab ich gesucht.

    -elvis


Anmelden zum Antworten