中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

沅陵县| 定安县| 报价| 周宁县| 宣武区| 赤水市| 临泽县| 静安区| 庆阳市| 来安县| 高州市| 博湖县| 长丰县| 平果县| 民勤县| 通州市| 肇庆市| 南岸区| 大新县| 武鸣县| 三门峡市| 台山市| 湖南省| 桂东县| 尤溪县| 磐石市| 微博| 烟台市| 盘锦市| 深泽县| 自贡市| 阳信县| 涞源县| 秭归县| 漾濞| 丰都县| 乌兰浩特市| 仪陇县| 新营市| 栖霞市| 息烽县|