网站 错误代码,国家住房和城乡建设部官方网站,网站备案 固定电话,怎么注册英文网站域名1、题目#xff1a;
写一个Army类#xff0c;代表一支军队这个类有一个属性#xff0c;Weapon[ ] w 数组#xff0c;用来存储该军队所有武器Army类提供一个构造方法#xff0c;构造方法里面通过传递一个int类型的参数来限定该类所能拥有的最大武器数量#xff0c;并用…1、题目
写一个Army类代表一支军队这个类有一个属性Weapon[ ] w 数组用来存储该军队所有武器Army类提供一个构造方法构造方法里面通过传递一个int类型的参数来限定该类所能拥有的最大武器数量并用这一大小来初始化数组 wArmy类提供一个addWeapon(Weapon wa)方法表示把参数wa 所代表的武器加入到数组w中在这个类中还定义两个方法attrackAll让w 数组中的所有武器攻击以及moevAll( ) 让w 数组中的所有可移动的武器移动写一个主方法进行测试提示 Weapon是一个父类应该有很多子武器这些子武器应该有一些是可以移动的有一些是可以攻击的 代码演示
创建武器类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:49* Copyright 公司* 武器类*/
public class Weapon {}创建移动的接口和射击的接口
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:45* Copyright 公司* 可移动的接口*/
public interface Moveable {/*** 可移动的行为*/public void move();
}package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:47* Copyright 公司*/
public interface Shootable {/*** 射击行为*/public void shoot();
}创建大炮类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:52* Copyright 公司* 大炮不可移动可射击*/
public class DaPao extends Weapon implements Shootable{Overridepublic void shoot() {System.out.println(大炮射击);}
}创建飞机类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:54* Copyright 公司* 战斗机可移动可开炮*/
public class Fighter extends Weapon implements Moveable,Shootable{Overridepublic void move() {System.out.println(飞机起飞);}Overridepublic void shoot() {System.out.println(飞机射击);}
}创建坦克类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:49* Copyright 公司* 坦克可移动可射击*/
public class Tank extends Weapon implements Moveable,Shootable{Overridepublic void move() {System.out.println(坦克移动);}Overridepublic void shoot() {System.out.println(坦克射击);}
}创建物资飞机类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:55* Copyright 公司* 物资飞机可移动不可射击*/
public class WuZiFly extends Weapon implements Moveable{Overridepublic void move() {System.out.println(物资飞机起飞);}
}创建异常类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 21:22* Copyright 公司*/
public class WeaponIndexOutOfBoundException extends Exception{public WeaponIndexOutOfBoundException() {}public WeaponIndexOutOfBoundException(String message) {super(message);}
}创建武器类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 20:57* Copyright 公司* 军队*/
public class Army {/*** 武器数组*/private Weapon[] w;/*** 创建军队的方法* param count 武器数量*/public Army(int count) {//动态初始化数组Weapon[] wnew Weapon[count];this.w w;}/*** 将武器加入数组* param weapon*/public void addWeapon(Weapon weapon) throws WeaponIndexOutOfBoundException {for (int i 0; i w.length; i) {if(nullw[i]){w[i]weapon;System.out.println(weapon武器添加成功);return;}}// 程序如果执行到此处说明武器没有添加成功throw new WeaponIndexOutOfBoundException(武器数量已经超过武器数组长度);}/*** 所有可攻击的武器攻击*/public void attackAll(){//其实就是遍历数组for (int i 0; i w.length; i) {if (w[i] instanceof Shootable){//调用子类中特有的方法向下转型//类在转成某个接口的时候不需要有继承关系Shootable shootable(Shootable) w[i];shootable.shoot();}}}/*** 所有可移动的武器移动*/public void moveAll(){for (int i 0; i w.length; i) {if (w[i] instanceof Moveable){//调用子类中特有的方法向下转型//类在强制 类型转换的过程中如果是类转换成接口类型不需要有继承关系Moveable moveable (Moveable) w[i];moveable.move();}}}}创建测试类
package com.lbj.javase.array.homework;/*** author LBJ* version V1.0* Package com.lbj.javase.array.homework* date 2021/3/26 22:36* Copyright 公司*/
public class Test {public static void main(String[] args) {//创建一个军队Army armynew Army(4);//创建武器DaPao daPaonew DaPao();DaPao daPao2new DaPao();Fighter fighternew Fighter();Tank tanknew Tank();WuZiFly wuZiFlynew WuZiFly();//军队中加入武器try {army.addWeapon(daPao);army.addWeapon(fighter);army.addWeapon(tank);army.addWeapon(wuZiFly);army.addWeapon(daPao2);} catch (WeaponIndexOutOfBoundException e) {System.out.println(e.getMessage());}//让所有可移动的移动army.moveAll();//让所有可射击的射击army.attackAll();}}结果
C:\Program Files\Java\jdk1.8.0_181\bin\java.exe -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\lib\idea_rt.jar3649:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\bin -Dfile.encodingUTF-8 -classpath C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;D:\test01-2021-1-20\out\production\test01-2021-1-20;C:\Users\14811\.m2\repository\junit\junit\3.8.2\junit-3.8.2.jar com.lbj.javase.array.homework.Test com.lbj.javase.array.homework.DaPao1540e19d武器添加成功 com.lbj.javase.array.homework.Fighter677327b6武器添加成功 com.lbj.javase.array.homework.Tank14ae5a5武器添加成功 com.lbj.javase.array.homework.WuZiFly7f31245a武器添加成功 武器数量已经超过武器数组长度 飞机起飞 坦克移动 物资飞机起飞 大炮射击 飞机射击 坦克射击
Process finished with exit code 0