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();
        }
    }
    
    
    

    程序执行结果:

    					高射炮增加成功
    					运输机增加成功
    					战斗机增加成功
    					武器数量达到上限!!!
    					高射炮在攻击
    					战斗机在攻击
    					运输机在移动
    					战斗机在移动
    
  • 相关阅读:
    给router-link 标签添加事件@click 、@mouseover等无效
    elementUI的导航栏在刷新页面的时候选中状态消失的解决
    查看mysql数据库中的所有用户
    已经安装了客户端,但是cmd输入sqlcmd报错:Sqlcmd:Error:Connection failure.SQL Native Client is not installed correctly
    在运行bat文件时,报错发生系统错误123,文件名,目录名或卷标语法不正确
    数据库表空间文件被删除后,再删除表空间时报错
    oracle在exp导出时报错PLS-00201: identifier 'EXFSYS.DBMS_EXPFIL_DEPASEXP' must be declared
    oracle compile 编译无效对象
    Oracle 导出错误 EXP-00000~EXP-00107
    修改oralce数据库用户名和密码
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847956.html
Copyright © 2011-2022 走看看