zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    
    
    

    程序执行结果:

    					高射炮增加成功
    					运输机增加成功
    					战斗机增加成功
    					武器数量达到上限!!!
    					高射炮在攻击
    					战斗机在攻击
    					运输机在移动
    					战斗机在移动
    
  • 相关阅读:
    【转】我该 不该学习VULKAN
    游戏开发内功秘籍记录
    VS 配置外部DLL的引用路径【可执行文件的环境路径】
    OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱
    C++风格与C风格文件读写效率测试-vs2015,vs2017
    【转】矩阵的几何解释
    android 线程间通信
    android 网络
    安卓 碎片 如何实现类似 活动 栈的 进栈 出栈
    安卓 内容提供者 观察者 解析器
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847956.html
Copyright © 2011-2022 走看看