0

私はこの学校の課題をやっています。ビンのパッキングの問題についてですが、トロリーについては少し修正されています。トロリー内に 2 つ以上のパイルが存在する場合があります。これまでに行ったことは、パーセル クラスとパイル クラスです。これには、従わなければならないルールがいくつかあります。そのうちの 1 つは、小包 (幅 3) をパイルの内側に置くと、小包 (幅 4) をその上に置くことができないということです。

はい、トロリークラス、パイルクラス、パーセルクラスがあります。

ここで私がやろうとしているのは、杭の幅をちょうど入れられた区画の幅に変更する関数を杭クラス内に作成することです。杭クラスから区画の幅にアクセスするにはどうすればよいですか? それはちょうど getW() ですか?大変助かりました。または、トロリークラス内でこれを行う必要がありますか? これを実装する方法が正確にはわかりません。

public class Parcel {
private int H;
private int W;
private int customer;

Parcel(int inH, int inW, int inCustomer){
    this.H = inH;
    this.W = inW;
    this.customer = inCustomer;
}

public int setH(){

    int x = (int )(Math.random() * 50 + 1);

    return x;
}

public int setW(){

    int y = (int )(Math.random() * 100 + 1);

    return y;
}

public int getW(){
    return W;
}

public int getH(){
    return H;
}
4

2 に答える 2

1

あなたのsetW()名前は間違っています。である必要がありますrandomizeWidth()。考慮すべきことは、上記のクラスに有効な幅セッター メソッドを与えることです。setWidth(int width)そのセットは W 変数です ( widthJava の命名規則に準拠するように名前を変更します。変数名は小文字で始める必要があります)。メソッドを呼び出して幅を設定します。

同様に、Pile には、その幅やその他のプロパティに対して有効なセッターとゲッターが必要です。その後、Pile は上記の Parcel メソッドを呼び出し、その情報を使用して幅を設定できます。Pile オブジェクトが Parcel オブジェクトを保持している場合、Pile が保持する Parcel オブジェクトの幅に基づいて独自の幅を設定する方がよいでしょう。したがって、私の提案は、パーセルがパイルの幅を設定しないことです。

于 2013-05-06T20:15:23.083 に答える