bitte schnelle hilfe (es gebt um instanzierung)



  • wie geht sowas???

    zuerst wird b dann c aufgerufen(ja also die methode die es jetzt nicht gibt)

    class a{
    TextField txta[] = new TextField[6];
    }
    class b{
    //textfield dinge wie bg, oder text einstellen, aber um das gehts nicht, 
    //sondern ich muss
    // einfach auf txta zugreifen wollen
    }
    class c{
    //hier aber auch zugreifen auf txta , zum bsp. getText();
    }
    

    thx bye donay



  • Kannst du das nochmal im Klartest umformulieren, was genau du machen willst?



  • Auch wenn deine Frage ziemlich wirr war, versuche ich sie zu beantworten:

    Also wenn du in Klasse c auf txta von Klasse a zugreifen willst und Klasse b das auch können soll, dann probier mal folgendes:

    class a {

    TextField[] txta = new TextField[6];
    }

    class b {

    a fields;

    public b(a param) {
    fields = param;
    }
    }

    class c {

    a fields;

    public c(a param) {
    fields = param;
    }
    }

    So und nun kannst du in deinen anderen Klassen auf die Datenfelder von a zugreifen...
    Natürlich sollte Das TextField-Array dann sein.



  • hi.

    danke für die antwort.
    du hast erraten was ich wollte, komme aber nicht draus bei deiner erklärung:

    was muss ich als param übergeben???
    und irgendwo müssen die txts ja noch intialiesiert werden...

    ich raffs jetzt nich.

    wäre dankbar um erklärung.

    bye donay



  • Einfach über:

    a myA = new a();
    b myB = new b(myA);
    c myB = new c(myA);
    

    btw.: Klassennamen sollten in Java _immer_ mit einem großgeschriebenen Buchstaben beginnen.



  • aha, danke, jetzt raff ichs.

    aber wieso muss ich das auf diese "umständliche" Weise machen, und kann nicht einach von jeder class drauf zugreifen???

    könnt ich auch:

    class b {
    public b(){
    a hello = new a();
    hello.txt[].//....

    }}

    ginge sowas auch?



  • Jein. Du musst dir dafür statische Variablen und ihre Eigenschaften anschauen.
    z.B.: in Kapitel 8.3 im Handbuch der Java-Programmierung (http://www.javabuch.de)



  • aha,ja, ok begiffen!

    dann geht sowas

    static TextField txt = new TextField();

    bye donay



  • Du könntest die Klasse b und c auch als inner classes erstellen. Dann hätten die beiden Klassen beliebigen Zugriff auf allen Datenfelder von a:

    class a {

    TextField[] txta;
    ...

    class b {
    }

    class c {
    }
    }



  • thx @ all.
    jetzt gehts, ich habs jetz mit static gemacht, und weiss nun auch wieso das es vorher nicht ging:
    wenn ich instanziere dann werden ja auch die variablen, objekete neu gemacht, und dann hatte ich ja irgendwie 2 txt[].
    ja danke
    bye donay


Anmelden zum Antworten