Java 微世界大战

package Fight;

public class Test {
    public static void main(String[] args) {//main方法不要忘记写
        Army army = new Army(4);
        Tank tank= new Tank();
        WuZhiJi  wuZhiJi = new WuZhiJi();
        GaoShePao gaoShePao =new GaoShePao();
        ZhanDouJi zhanDouJi = new ZhanDouJi();
        ZhanDouJi zhanDouJi1 = new ZhanDouJi();
        ZhanDouJi zhanDouJi2 = new ZhanDouJi();

        try {
            army.AddWuQi(tank);
            army.AddWuQi(wuZhiJi);
            army.AddWuQi(gaoShePao);
            army.AddWuQi(zhanDouJi);
            army.AddWuQi(zhanDouJi1);
            army.AddWuQi(zhanDouJi2);
        } catch (AddWuQiException e) {
            System.out.println(e.getMessage());
        }
        army.move();
        army.attack();
    }
}

package Fight;

public class Wuqi {
}

package Fight;

public interface Move {
    void move();
}

package Fight;

public interface Attack {
    void attack();
}

package Fight;

public class Tank extends Wuqi implements Move,Attack {
    @Override
    public void attack() {
        System.out.println("Tank就位,等待命令开炮");
    }

    @Override
    public void move() {
        System.out.println("Tank就位,准备向目的地出发");
    }

    @Override
    public String toString() {
        return "Tank";
    }
}

package Fight;

public class GaoShePao extends Wuqi implements Attack{

    @Override
    public void attack() {
        System.out.println("高射炮就位,等待命令准备开炮");
    }

    @Override
    public String toString() {
        return "GaoShePao";
    }
}

package Fight;

public class ZhanDouJi extends Wuqi implements Attack,Move{
    @Override
    public void attack() {
        System.out.println("战斗机就位,等待命令准备开炮");
    }

    @Override
    public void move() {
        System.out.println("战斗机就位,正在向目的地进军");
    }

    @Override
    public String toString() {
        return "ZhanDouJi";
    }
}

package Fight;

public class WuZhiJi extends Wuqi implements Move {


    @Override
    public void move() {
        System.out.println("物资机就位,正在向目的地出发");
    }

    @Override
    public String toString() {
        return "WuZhiJi";
    }
}

package Fight;

public class Army {
    Wuqi[] wuqis;
    public Army(int a) {
         wuqis=new Wuqi[a];
    }
    public void AddWuQi(Wuqi wuqi) throws AddWuQiException {
        for(int j=0;j< wuqis.length;j++){
            if(null==wuqis[j]){
                wuqis[j]=wuqi;
                System.out.println(wuqi+"添加成功");
                break;
            }
            if(j== wuqis.length-1){
                throw new AddWuQiException("武器已达到上限,无法添加更多的武器");
            }
        }

    }
    public void move(){
        for(int i=0;i<wuqis.length;i++){
            if(wuqis[i] instanceof Move){
                Move move =(Move) wuqis[i];
                move.move();
            }
        }
    }
    public void attack(){
        for(int i=0;i<wuqis.length;i++){
            if(wuqis[i] instanceof Attack){
                Attack attack = (Attack) wuqis[i];
                attack.attack();
            }
        }
    }
}

package Fight;

public class AddWuQiException extends Exception {
    public AddWuQiException() {
    }

    public AddWuQiException(String message) {
        super(message);
    }
}

上一篇:一文看懂npm、yarn、pnpm之间的区别


下一篇:package 与 package-lock文件的区别