我正在做这件学校的工作。它关于垃圾箱包装问题,但它有点修改关于手推车。小车内可以有两个或更多个桩。到目前为止我所做的是一个包裹类和桩类。我需要遵循的规则很少。其中一个是当我把包裹(宽度3)放在堆里时,我不能把包裹(宽度4)放在它上面。
是的,我将有推车类,桩类和包裹类。
我在这里尝试做的是在桩类中创建一个函数,它将桩的宽度更改为刚刚放入的Parcel的宽度。如何从桩类中访问宗地宽度?会不会是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;
}
答案 0 :(得分:1)
您的setW()
名字错误。它应该是randomizeWidth()
。你应该考虑做的是给上面的类一个有效的宽度setter方法,setWidth(int width)
设置W变量(将它重命名为width
以符合Java命名约定 - 变量名应该以a开头小写字母)以便外部类可以调用方法并设置宽度。
桩的宽度和其他属性同样应该有有效的setter和getter。然后,桩可以调用上面的Parcel方法并使用该信息来设置其宽度。如果Pile对象包含Parcel对象,那么Pile可能更好地根据它所包含的Parcel对象的宽度设置自己的宽度。所以我的建议是Parcel 不 设置桩的宽度。
答案 1 :(得分:1)
假设桩有一个parcel类型的字段,你可以调用getter。
public class Pile
{
Parcel parcel;
public Pile()
{
//instanciate parcel here;
}
public void someMethod
{
int w = this.parcel.getW();
}
}