Inheritance 使用addLiquid()和pourLiquid()方法;“转让”;物体中的液体

Inheritance 使用addLiquid()和pourLiquid()方法;“转让”;物体中的液体,inheritance,methods,constructor,Inheritance,Methods,Constructor,我想不出更好的名字来形容我的问题。然而,我将为我所面临的问题提供一些背景 基本上,我正在努力使用pourLiquid()和addLiquid()方法将所有液体从Glass2对象添加到Glass1对象。代码如下: *注: -GLcap是玻璃容量 -GLliq是玻璃液体 -GLcol是玻璃色 package glass; public class Glass { private int GLcap; private int GLliq; private String GLco

我想不出更好的名字来形容我的问题。然而,我将为我所面临的问题提供一些背景

基本上,我正在努力使用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");

}
}


如果问题仍然含糊不清,请让我知道。

分离关注点并确定参与者;您应该创建一个Pourer类-负责将液体从一个玻璃杯转移到另一个玻璃杯的对象/人员

大概是这样的:

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


如果向您的倾倒/添加液体方法传递的液体过多,则应抛出异常。

感谢您的回答!
new Pourer().pour(glass1, glass2, amount);