• java作业 (武器数组)


    在这里插入图片描述
    两个接口 一个实现移动 一个实现攻击:

    package com.Test.Demo.WuQiShuZu;
    
    public interface GongJi {
        public void gongJi();
    }
    
    
    
    package com.Test.Demo.WuQiShuZu;
    
    public interface YiDong {
        public void yiDong();
    }
    
    

    一个武器类:

    package com.Test.Demo.WuQiShuZu;
    
    public class WuQi {
        private String name;
        public WuQi(String name){
            this.name=name;
        }
        public String getName(){
            return this.name;
        }
    
    }
    
    

    三个武器子类,分别实现不同的接口:

    package com.Test.Demo.WuQiShuZu;
    
    public class YunShuJi extends WuQi implements YiDong {
        public YunShuJi(){
            super("运输机");
        }
        public void yiDong(){
            System.out.println("运输机在移动");
        }
        @Override
        public String toString() {
            return this.getName();
        }
    }
    
    
    package com.Test.Demo.WuQiShuZu;
    
    public class ZhanDouJi extends WuQi implements YiDong ,GongJi {
        public ZhanDouJi(){
            super("战斗机");
        }
        public void gongJi(){
            System.out.println("战斗机在攻击");
        }
        public void yiDong(){
            System.out.println("战斗机在移动");
        }
        @Override
        public String toString() {
            return this.getName();
        }
    }
    
    
    package com.Test.Demo.WuQiShuZu;
    
    public class GaoShePao extends WuQi implements GongJi{
    
        public GaoShePao(){
            super("高射炮");
        }
        public void gongJi() {
            System.out.println("高射炮在攻击");
        }
    
        @Override
        public String toString() {
            return this.getName();
        }
    }
    
    

    一个军队类:

    package com.Test.Demo.WuQiShuZu;
    
    public class JunDui {
        private int len;
        private int cnt;
        private WuQi[] wuQi;
        public JunDui(int len){
            this.len=len;
            this.wuQi=new WuQi[len];
        }
        public void addWuQi(WuQi wuQi)throws Exception{
            if(cnt==this.len){
                throw new AddWuex("武器数量达到上限!!!");
            }
            System.out.println(wuQi+"增加成功");
            this.wuQi[cnt++]=wuQi;
        }
        public void ggg(){
            for(int i=0;i<this.cnt;i++){
                if(this.wuQi[i] instanceof GongJi){ 
                    GongJi pao=(GongJi) this.wuQi[i];//此处把类强转为了接口!
                    pao.gongJi();
                }
            }
        }
        public void yyy(){
            for(int i=0;i<this.cnt;i++){
                if(this.wuQi[i] instanceof YiDong){
                    YiDong pao=(YiDong) this.wuQi[i];//此处把类强转为了接口!
                    pao.yiDong();
                }
            }
        }
    }
    
    

    一个自定义的异常,用于增加武器时抛出:

    package com.Test.Demo.WuQiShuZu;
    
    public class AddWuex extends Exception{//自定义的异常类
        public AddWuex(){
    
        }
        public AddWuex(String tt){
        super(tt);
        }
    }
    
    

    一个测试类:

    package com.Test.Demo.WuQiShuZu;
    
    public class Test {
        public static void main(String args[]){
            JunDui junDui =new JunDui(3);
            try{
                junDui.addWuQi(new GaoShePao());
                junDui.addWuQi(new YunShuJi());
                junDui.addWuQi(new ZhanDouJi());
                junDui.addWuQi(new ZhanDouJi());
            }catch (Exception e){
                System.out.println(e.getMessage());
            }
            junDui.ggg();
            junDui.yyy();
        }
    }
    
    
    

    程序执行结果:

    					高射炮增加成功
    					运输机增加成功
    					战斗机增加成功
    					武器数量达到上限!!!
    					高射炮在攻击
    					战斗机在攻击
    					运输机在移动
    					战斗机在移动
    
  • 相关阅读:
    缓存穿透、缓存并发和缓存雪崩笔记
    PHP递归的三种方式
    Yii2 rules 自定义规则
    Yii redis hash散列的使用
    Yii redis set集合的使用
    手动安装 yii2-redis 扩展
    PHP添加redis扩展(windows环境)
    Yii redis list列表的使用
    用hextoraw解决update、delete语句执行慢
    Oracle查看SQL执行计划,分析SQL性能
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847956.html
Copyright © 2020-2023  润新知