2

SiloManager両方のオブジェクトのメソッドにアクセスできるように、1つのクラスに Silo クラスの 2 つのオブジェクトを作成しようとしています。SiloManagerしかし、コンストラクターを機能させることも、クラスを適切にインスタンス化することもできないようです。(私はJavaの初心者です)。これが私のコードです:

public class GrainSiloManager {

    public GrainSilo silo1 = new GrainSilo(100);
    public GrainSilo silo2 = new GrainSilo(50);


    public GrainSiloManager(GrainSilo silo1, GrainSilo silo2) {
        this.silo1 = silo1;
        this.silo2 = silo2;
    }

    private void showStatus() {
        System.out.println("The current grain in silo1 is: " + silo1.getGrain());
        System.out.println("The current grain in silo2 is: " + silo2.getGrain());
    }

}

私が言うように、私は初心者なので、簡単に行ってください。助けてくれてありがとう。

4

2 に答える 2

0

あなたのコンストラクターは「public!」を置き換えます。渡されたものを含む silo1 および silo2 オブジェクト。次のようにコンストラクターを変更できます。

 public GrainSiloManager() {
    super();
 }

またはさらに短い(ただし同等)

 public GrainSiloManager() {
 }

そして、このように呼び出します

 new GrainSiloManager().showStatus();

または、既存のアプローチを使用できます (コンストラクターの GrainSoloManager.silo1 と GrainSoloManager.silo2 を置き換えます)。

 GrainSilo silo1 = new GrainSilo(100);
 GrainSilo silo2 = new GrainSilo(50);
 new GrainSiloManager(silo1, silo2).showStatus();
于 2013-11-11T21:13:34.553 に答える