使用addLiquid()和pourLiquid()方法从对象“转移”液体

时间:2018-07-30 23:42:26

标签: inheritance methods constructor

我想不出一个更好的名字来描述我的问题。但是,我将为所面临的问题提供一些背景信息。

本质上,我正在努力使用pourLiquid()和addLiquid()方法将我Glass2对象中的所有液体添加到我的Glass1对象中。这是代码:

*注意:  -GLcap是玻璃容量  -GLliq是玻璃液体  -GLcol是玻璃色

package glass;
public class Glass
{
    private int GLcap;
    private int GLliq;
    private String GLcol;
    public int getGLcap()
{
    return GLcap;
}
public void setGLcap(int cap)
{
    GLcap = cap;
}
public int getGLliq()
{
    return GLliq;
}
public void setGLliq(int liq)
{
    GLliq = liq;
}
public String getGLcol()
{
    return GLcol;
}
public void setGLcol(String col)
{
    GLcol = col;
}


public Glass(int cap)
{
    GLcap = 0;
}

public Glass(int cap, int liq, String col)
{
    GLcap = cap;
    GLliq = liq;
    GLcol = col;  
}

public void addLiquid(int liq)
{
    GLliq = GLliq + liq;
}


public void pourLiquid(int liq)
{
    GLliq = GLliq - liq;
}

}

这是我的继承人

package glass;
public class HW7 extends Glass{
     public HW7 (int cap, int liq, String col)
     {
         super(cap, liq, col);
     }
public static void main(String[] args)
{
    HW7 Glass1 = new HW7 (750, 0, "Transparent");
    HW7 Glass2 = new HW7 (1000, 900, "Pink");

}

}

如果问题仍然不清楚,请告诉我。

1 个答案:

答案 0 :(得分:0)

分离问题并确定<演员> ;您应该创建一个Pourer类-负责将液体从一种玻璃杯转移到另一种玻璃杯的东西。

类似这样的东西:

class Pourer {
    public void pour(Glass from, Glass to, int liq) {
        from.pourLiquid(liq);
        to.addLiquid(liq);
    }
}

然后:

new Pourer().pour(glass1, glass2, amount);

如果将过多的液体传递给它们,则您的倾倒/添加液体方法应引发异常。