-1

どうすればいいですか: たとえば、メインクラスでオブジェクトを作成するとき

public class Blabla {
    public static void main(String[] args) {
        Whatever w = new Whatever(100, 200, 400);
        Whatever w2 = new Whatever(500, 600, 700);
    }
}

たとえば、別のクラスの配列に自動的に追加されます

public class Pilipili {
    private Whatever[] tabW = new Whatever[20];
}

私の質問が十分に明確であることを願っています!

4

5 に答える 5

2

WhatEverあなたの質問について私が理解していることから、達成したいことは、メソッドでクラスのインスタンスを作成するたびにmain、新しいインスタンスをクラスの配列に自動的に追加することです。この新しいインスタンスを追加するPilipiliために明示的にメソッドを呼び出したくありません。main

これを行うために、コードに置き換えることができるコメントを使用して、アプローチの全体的な構造を示します。クラスにaddWhateverObjectメソッドが必要です。Pilipili

public void addWhateverObject(WhatEver w){   
  // Add the object w to the array tabW 
}

次に、WhatEverクラスのコンストラクター内で、addWhateverObjectメソッドを呼び出して参照を渡す必要がありthisます。

public WhatEver(int arg0, int arg1, int arg2){
  // Initialize the instance
  // Create an instance of Pilipili class
  // Call "addWhateverObject" method with "this" as the argument
}
于 2013-03-12T04:18:18.893 に答える
1

この方法でクラスをバインドすることはできないと思います。オブジェクトが作成されるたびに、配列または使用しているデータ構造に自動的に渡されます。オブジェクトの作成時に明示的に呼び出すことができるメソッドを作成する必要があります。

于 2013-03-12T03:51:52.870 に答える
1

X 値を他のクラス コンストラクターに渡すか、次のように他のクラスでメソッドを作成できます。

class AnotherClass {

    X[] xArray = new X[20]

    void setXArrayItem(X x, int index) {
       xArray[index] = x;
    } 

}
于 2013-03-12T03:48:46.183 に答える
1

このようなものが欲しいですか...

public class Blabla {
    public static void main(String[] args) {
        Whatever w = new Whatever(100, 200, 400);
        Whatever w2 = new Whatever(500, 600, 700);
    }
}

public class Whatever{
    public Whatever(){int i, int j, int k){
        // some code
        Pilipili.addTabW(this);
    }
}

public class Pilipili {
    private static List<Whatever> tabW = new ArrayList<Whatever>();
    public static void addTabW(Whatever w){
        tabW.add(w);
    }
}
于 2013-03-12T04:11:18.390 に答える