意外输出

时间:2016-02-15 05:20:39

标签: java arraylist

代码的预期输出应为:"一切(否则)都可以"

但是当我运行我的天空类:实际输出如下:

Bad StratusCloud :: rain(意外) Bad CumulusCloud ::雨(意外) 平均高度差:预计1800,锯-1800.0(意外) 一切(其他)都可以(预期)

以下是我的代码:

package weather;
import java.util.ArrayList;

public class Sky {
    private ArrayList<Cloud> clouds;
public Sky(){
    clouds = new ArrayList<Cloud>(100);
}

public boolean add(Cloud c){

    clouds.add(c);
    return true;
}


public float getMeanHeight()
{
float mean = 0;
float sum = 0;
for (Cloud c:clouds){
    sum  = sum +c.getHeight(); 
    mean = sum/(clouds.size());
}
return mean;
}
public static void main(String[] args)
{
StratusCloud strat = new StratusCloud(100, 1000);
if (!strat.rain().startsWith("It is raining"))
System.out.println("Bad StratusCloud::rain");
CumulusCloud cumu = new CumulusCloud(200, 2000);
if (!cumu.rain().startsWith("It is raining"))
System.out.println("Bad CumulusCloud::rain");
CirrusCloud cirr = new CirrusCloud(300, 3000);
if (!cirr.rain().startsWith("I cannot make"))
System.out.println("Bad CirrusCloud::rain");
Sky sky = new Sky();
sky.add(strat);
sky.add(cumu);
sky.add(cirr);
float mean = sky.getMeanHeight();
if (mean < 1799 || mean > 1801)
System.out.println("Bad mean height: expected 1800, saw " + mean);
System.out.println("Everything (else) is ok");
}
}

超级云:

   package weather;

public class Cloud 
{
    private float top;
    private float bottom;


    public Cloud(float top, float bottom)
    {
        this.top = top;
        this.bottom = bottom;
    }

    public float getHeight()
    {
        float height = top - bottom;
        return height;
    }

    public String rain()
    {
        String raining = "It is rainning";
        return raining;
    }
}

以下是Cloud的子类:( 2个类的名称:CumulusCloud,StratusCloud)

package weather;

public class "name" extends Cloud 
{
public "name"(float top,float bottom)
{
    super(top,bottom);
}
}

覆盖的云的子类:

package weather;

public class CirrusCloud extends Cloud{
    public CirrusCloud(float top, float bottom)
    {
        super(top,bottom);
    }
public String rain(){
    super.rain();
    String raining ="I cannot make rain";
    return raining;
}
}

1 个答案:

答案 0 :(得分:1)

检查拼写。在您的Cloud类中,它是

  

rainning

但在Sky课程中

  

下雨