91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中引用類型的使用方法

發布時間:2020-06-21 20:00:17 來源:億速云 閱讀:269 作者:鴿子 欄目:編程語言

一、class作為成員變量

在定義一個類Role(游戲角色)時,代碼如下:

java中引用類型的使用方法

使用 int 類型表示角色id和生命值,使用String類型表示姓名。此時,String 本身就是引用類型,由于使用的方式類似常量,所以往往忽略了它是引用類型的存在。如果我們繼續豐富這個類的定義,給Role戴裝備等屬性,我們將如何編寫呢?

定義武器類,將增加攻擊能力:

java中引用類型的使用方法

定義穿戴盔甲類,將增加防御能力,也就是提升生命值:

java中引用類型的使用方法

定義角色類:

java中引用類型的使用方法

測試類:

public class Test {
    public static void main(String[] args) {
        // 創建Weapon 對象
        Weapon wp = new Weapon("屠龍刀", 999999);
        // 創建Armour 對象
        Armour ar = new Armour("麒麟甲", 10000);
        // 創建Role 對象
        Role r = new Role();

        // 設置武器屬性
        r.setWeapon(wp);

        // 設置盔甲屬性
        r.setArmour(ar);

        // 攻 擊
        r.attack();
        // 穿戴盔甲
        r.wear();
    }
}
輸出結果:
使用屠龍刀,造成999999點傷害
穿上麒麟甲 ,生命值增加10000

提示:類作為成員變量時,對它進行賦值的操作,實際上,是賦給它該類的一個對象。

二、interface作為成員變量

接口是對方法的封裝,對應游戲當中,可以看作是擴展游戲角色的技能。所以,如果想擴展更強大技能,我們在Role中,可以增加接口作為成員變量,來設置不同的技能。

定義接口:

定義角色類:

定義測試類:

public class Test {
    public static void main(String[] args) {
        // 創建游戲角色
        Role role = new Role();
        // 設置角色法術技能
        role.setFaShuSkill(new FaShuSkill() {

            @Override
            public void faShuAttack() { System.out.println("縱橫天下");
            }
        });

        // 發動法術攻擊
        role.faShuSkillAttack();

        // 更換技能
        role.setFaShuSkill(new FaShuSkill() {
            @Override
            public void faShuAttack() { System.out.println("逆轉乾坤");
        }
        });
        // 發動法術攻擊
        role.faShuSkillAttack();
    }
}
輸出結果:
發動法術攻擊:縱橫天下攻擊完畢
發動法術攻擊:逆轉乾坤攻擊完畢

提示:我們使用一個接口,作為成員變量,以便隨時更換技能,這樣的設計更為靈活,增強了程序的擴展性。 接口作為成員變量時,對它進行賦值的操作,實際上,是賦給它該接口的一個子類對象。

三、interface作為方法參數和返回值類型

當接口作為方法的參數時,需要傳遞什么呢?當接口作為方法的返回值類型時,需要返回什么呢?對,其實都是它的子類對象。

ArrayList 類我們并不陌生,查看API我們發現,實際上,它是 java.util.List 接口的實現類。所以,當我們看見 List 接口作為參數或者返回值類型時,當然可以將 ArrayList 的對象進行傳遞或返回。

請觀察如下方法:獲取某集合中所有的偶數。

定義方法:

public static List<Integer> getEvenNum(List<Integer> list) {
     // 創建保存偶數的集合
     ArrayList<Integer> evenList = new ArrayList<>();
     // 遍歷集合list,判斷元素為偶數,就添加到evenList中
     for (int i = 0; i < list.size(); i++) { Integer integer = list.get(i);
         if (integer % 2 == 0) { evenList.add(integer);
         }
     }
     /*
     返回偶數集合因為getEvenNum方法的返回值類型是List,而ArrayList是List的子類, 所以evenList可以返回
     */
     return evenList;
}

調用方法:

提示:接口作為參數時,傳遞它的子類對象。接口作為返回值類型時,返回它的子類對象。

以上就是java中引用類型的用法總結的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

准格尔旗| 高淳县| 顺昌县| 镇宁| 望谟县| 贺兰县| 乐山市| 徐汇区| 襄汾县| 庄浪县| 平远县| 宁海县| 易门县| 喀喇沁旗| 石棉县| 平定县| 乐清市| 平度市| 通渭县| 东乌| 廊坊市| 桃源县| 彰武县| 龙南县| 资兴市| 岳西县| 鹤岗市| 乡宁县| 黔西| 常宁市| 松江区| 青海省| 民丰县| 邵东县| 白山市| 洛隆县| 宁阳县| 南华县| 旌德县| 贡嘎县| 昭苏县|