日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JAVA进阶开发之(数组练习题)

發布時間:2024/7/23 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA进阶开发之(数组练习题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、題目:

  • 寫一個Army類,代表一支軍隊
  • 這個類有一個屬性,Weapon[ ]? w? 數組,用來存儲該軍隊所有武器
  • Army類提供一個構造方法,構造方法里面通過傳遞一個int類型的參數來限定該類所能擁有的最大武器數量,并用這一大小來初始化數組 w
  • Army類提供一個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[] w=new Weapon[count];this.w = w;}/*** 將武器加入數組* @param weapon*/public void addWeapon(Weapon weapon) throws WeaponIndexOutOfBoundException {for (int i = 0; i <w.length; i++) {if(null==w[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 army=new Army(4);//創建武器DaPao daPao=new DaPao();DaPao daPao2=new DaPao();Fighter fighter=new Fighter();Tank tank=new Tank();WuZiFly wuZiFly=new 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.jar=3649:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\bin" -Dfile.encoding=UTF-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.DaPao@1540e19d武器添加成功
com.lbj.javase.array.homework.Fighter@677327b6武器添加成功
com.lbj.javase.array.homework.Tank@14ae5a5武器添加成功
com.lbj.javase.array.homework.WuZiFly@7f31245a武器添加成功
武器數量已經超過武器數組長度
飛機起飛
坦克移動
物資飛機起飛
大炮射擊
飛機射擊
坦克射擊

Process finished with exit code 0
?

總結

以上是生活随笔為你收集整理的JAVA进阶开发之(数组练习题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。