搜尋
首頁JavaJava基礎java中引用類型的用法總結

java中引用類型的用法總結

Nov 30, 2019 pm 03:31 PM
java引用類型用法

java中引用類型的用法總結

一、class作為成員變數

#在定義一個類別Role(遊戲角色)時,程式碼如下:

java中引用類型的用法總結

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

免費影片教學推薦:java免費影片教學

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

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中,可以增加介面作為成員變量,來設定不同的技能。

定義介面:

java中引用類型的用法總結

# 定義角色類別:

java中引用類型的用法總結

定義測試類別:

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中引用類型的用法總結

#提示:介面作為參數時,傳遞它的子類別物件。介面作為傳回值類型時,傳回它的子類別物件。

java相關文章教學推薦:java入門教學

以上是java中引用類型的用法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。