DESKTOP-TEACTL5_20200826-曾越

问题1:break的作用对象

break只在两个地方起作用,分别是

1、switch里的case、default后;

2、循环语句中,可以跳出循环。

在其他的地方使用会报错。

问题2:在8.25的关于接口的练习题中,在Aircraft类中实例化了一个对象,并且在该类的实例方法中使用该对象来对energy字段进行操作,按照题目逻辑编写完代码后在测试类Main中实例化Aircraft对象并运行,结果不能按照以下正常情况输出:

不执行任何操作
飞行一次,能量剩余75
不执行任何操作
陆地行驶,能量剩余65
不执行任何操作
飞行一次,能量剩余40
不执行任何操作
陆地行驶,能量剩余30
飞行一次,能量剩余5
剩余能量为5

而是只输出其中的一行(输出情况按随机数产生情况而定);最后发现问题出在Aircraft类里,因为在Aircraft类中的几个实例方法中的返回值是void,不能將修改后的值传给energy字段,在Aircraft类中的对象操作字段时其初始值始终为100从而导致在Main类中的执行结果出错。修改后的Aircraft类应该如下(注释掉的内容为修改前引起错误的原因):

package metalslug4;

public class Aircraft extends Machine implements Voyageable, Roadable ,Flyable {

//Aircraft a=new Aircraft();

public Aircraft() {
    super(100);
}

public Aircraft(int energy) {
    super(100);

}

@Override
public void fly() {
    //Aircraft a=new Aircraft();
    int x=getEnergy()-25;
    setEnergy(x);
    System.out.println("飞行一次,能量剩余"+x);
}

@Override
public void run() {
    //Aircraft a=new Aircraft();
    int x=getEnergy()-10;
    setEnergy(x);
    System.out.println("陆地行驶,能量剩余"+x);
}

@Override
public void voyage() {
    //Aircraft a=new Aircraft();
    int x=getEnergy()-15;
    setEnergy(x);
    System.out.println("水里航行,能量剩余"+x);
}

}

吐槽:

坐我右边的两个老哥辣是针滴牛皮

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1