【问题标题】:unexpected output is occurred [closed]发生意外的输出[关闭]
【发布时间】:2016-02-15 05:20:39
【问题描述】:

代码的预期输出应该是:“Everything (else) is ok”

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

Bad StratusCloud::rain(意外) 坏积云::雨(意外) 不好的平均高度:预期 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);
}
}

被覆盖的 Cloud 子类:

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;
}
}

【问题讨论】:

  • 这不会编译。您不能将类名放在引号中:class "name" 是错误的。请向我们展示产生输出的实际代码。
  • 编译器错误令牌“名称”上的语法错误,需要标识符。
  • 我相信 OP 表示有两个相同的类,它们仅在“名称”上有所不同(CumulusCloudStratusCloud)。

标签: java arraylist


【解决方案1】:

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

下雨

但是在Sky类

下雨

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多