【Q】類和對象:游戲角色開發(角色介紹)


案例情景:某公司要開發新游戲,請用面向對象的思想設計英雄類、怪物類和武器類。

  編寫測試類,創建英雄對象、怪物對象和武器對象,並輸出各自的信息。

  其中設定分別如下:

  1.英雄類

    屬性:英雄名字、生命值。

    方法:輸出基本信息。

  2、怪物類

    屬性:怪物名字、生命值、類型。

    方法:輸出基本信息。

  3.武器類

    屬性:武器名字、攻擊力。

    方法:輸出基本信息。

一、創建實體類

  1.我們已經學過抽象類和繼承,所有我們可以從高一層的角度來設計實體類(首先根據各種角色所具有的共同的特征抽象出一個抽象類)

    抽象的角色類:

 1 /**
 2  * 游戲角色:抽象類
 3  * 
 4  * @author Administrator
 5  *
 6  */
 7 public abstract class Role {
 8     private String role;// 角色名稱
 9     private String name;// 角色姓名
10     // 封裝屬性
11 
12     public String getRole() {
13         return role;
14     }
15 
16     public void setRole(String role) {
17         this.role = role;
18     }
19 
20     public String getName() {
21         return name;
22     }
23 
24     public void setName(String name) {
25         this.name = name;
26     }
27 
28     // 介紹方法
29     public abstract void showInfo();
30 }

  2.繼承抽象類,創建三個具體的角色類

    (1)英雄類

 1 /**
 2  * 英雄類
 3  * 
 4  * @author Administrator
 5  *
 6  */
 7 public class Hero extends Role {
 8     private int health;// 健康值
 9 
10     public Hero() {
11         super();
12         this.setRole("英雄");
13         this.setName("李小俠");
14         this.setHealth(300);
15     }
16 
17     @Override
18     public void showInfo() {
19         System.out.println("我是" + this.getRole() + ",我的基本信息如下:\n姓名:" + this.getName() + ",生命值:" + this.getHealth());
20     }
21 
22     public int getHealth() {
23         return health;
24     }
25 
26     public void setHealth(int health) {
27         this.health = health;
28     }
29 
30 }

    (2)武器類

/**
 * 武器類
 * 
 * @author Administrator
 *
 */
public class Weapons extends Role {
    private int attack;// 攻擊力

    public Weapons() {
        super();
        this.setRole("武器");
        this.setName("死亡鐮刀");
        this.setAttack(12);
    }

    @Override
    public void showInfo() {
        System.out.println("我是" + this.getRole() + ",我的基本信息如下:\n武器名:" + this.getName() + ",攻擊力:" + this.getAttack());
    }

    public int getAttack() {
        return attack;
    }

    public void setAttack(int attack) {
        this.attack = attack;
    }

}

    (3)怪物類

/**
 * 怪物類
 * 
 * @author Administrator
 *
 */
public class Monster extends Role {
    private int health;// 健康值
    private String type;// 類型

    public Monster() {
        super();
        this.setRole("怪物");
        this.setName("小龜");
        this.setHealth(300);
        this.setType("潛水類");
    }

    public int getHealth() {
        return health;
    }

    public void setHealth(int health) {
        this.health = health;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Override
    public void showInfo() {
        System.out.println("我是" + this.getRole() + ",我的基本信息如下:\n姓名:" + this.getName() + ",生命值:" + this.getHealth()
                + ",類型:" + this.getType());

    }

}

二、創建測試類(主類:角色介紹)

  方法的調用:在主方法創建角色實例,用實力對象調用方法

/**
 * 游戲角色介紹測試類
 * 
 * @author Administrator
 *
 */
public class Main {

    public static void main(String[] args) {
        // 創建角色實例
        Hero hero = new Hero();
        Weapons weap = new Weapons();
        Monster monster = new Monster();
        // 角色介紹
        hero.showInfo();
        weap.showInfo();
        monster.showInfo();

    }

}

三、測試修改Bug最終展示

  效果如下圖:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM