我正在做这件功课。它关于垃圾箱的包装问题,但对手推车做了一些修改。手推车内可以有两个或多个桩。到目前为止,我所做的是制作包裹类和桩类。我需要遵循的规则很少。其中之一是,当我将包裹(宽度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;
}

最佳答案

您的setW()命名错误。它应该是randomizeWidth()。您应该考虑做的是为上述类提供一个有效的宽度设置器方法,即setWidth(int width),它设置了W变量(将其重命名为width以符合Java命名约定-变量名应以小写字母开头),以便外部类可以调用该方法并设置宽度。

同样,桩的宽度和其他属性也应具有有效的设定器和吸收器。然后桩可以调用上面的宗地方法,并使用该信息设置其宽度。如果桩对象保存了宗地对象,那么桩更好地根据其持有的宗地对象的宽度设置自己的宽度。所以我的建议是,包裹不要设置桩的宽度。

10-08 11:43