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);
}
}
吐槽:
坐我右边的两个老哥辣是针滴牛皮
点赞