从B类访问A类

时间:2013-05-06 20:12:51

标签: java

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

2 个答案:

答案 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();
    }
}