0

我正在做这件学校作业。它与垃圾箱包装问题有关,但对手推车进行了一些修改。手推车内可以有两堆或更多堆。到目前为止我所做的是做了一个包裹类和桩类。我需要遵循的规则很少。其中之一是当我将包裹(宽度 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 变量(将其重命名width以符合 Java 命名约定——变量名应以小写字母开头),以便外部类可以调用该方法并设置宽度。

Pile 的宽度和其他属性也应该具有有效的 setter 和 getter。然后,Pile 可以调用上面的 Parcel 方法并使用该信息来设置其宽度。如果 Pile 对象包含 Parcel 对象,那么 Pile 最好根据它所包含的 Parcel 对象的宽度设置自己的宽度。所以我的建议是包裹设置桩的宽度。

于 2013-05-06T20:15:23.083 回答
1

假设 pile 有一个 parcel 类型的字段,你可以调用 getter。

public class Pile
{

    Parcel parcel;
    public Pile()
    {
        //instanciate parcel here;
    }


    public void someMethod
    {
        int w = this.parcel.getW();
    }
}
于 2013-05-06T20:18:33.033 回答