Java中引用類型class的用法總結(jié)
實際的開發(fā)中,引用類型的使用非常重要,也是非常普遍的。我們可以在理解基本類型的使用方式基礎(chǔ)上,進一步去掌握引用類型的使用方式。基本類型可以作為成員變量、作為方法的參數(shù)、作為方法的返回值,那么當(dāng)然引用類型也是可以的。
class作為成員變量
角色類
在定義一個類Role(游戲角色)時,代碼如下:
class Role { int id; // 角色id int blood; // 生命值 String name; // 角色名稱 }
使用int 類型表示 角色id和生命值,使用String 類型表示姓名。此時, String 本身就是引用類型,由于使用的方式類似常量,所以往往忽略了它是引用類型的存在。如果我們繼續(xù)豐富這個類的定義,給Role 增加武器,穿戴裝備等屬性,我們將如何編寫呢?
武器類
提高進攻能力,定義攻擊武器類,將增加攻擊能力:
class Weapon { String name; // 武器名稱 int hurt; // 傷害值 }
鎧甲類
提高防守能力定義穿戴盔甲類,將增加防御能力,也就是提升生命值:
class Armour { String name;// 裝備名稱 int protect;// 防御值 }
角色增強類
給角色類增加進攻和防守屬性,角色類調(diào)整成如下:
class Role { int id; int blood; String name; // 添加武器屬性 Weapon wp; // 添加盔甲屬性 Armour ar; // 提供get/set方法 public Weapon getWp() { return wp; } public void setWeapon(Weapon wp) { this.wp = wp; } public Armour getArmour() { return ar; } public void setArmour(Armour ar) { this.ar = ar; } // 攻擊方法 public void attack(){ System.out.println("使用"+ wp.getName() +", 造成"+wp.getHurt()+"點傷害"); } // 穿戴盔甲 public void wear(){ // 增加防御,就是增加blood值 this.blood += ar.getProtect(); System.out.println("穿上"+ar.getName()+", 生命值增加"+ar.getProtect()); } }
測試類
public class Test { public static void main(String[] args) { // 創(chuàng)建Weapon 對象 Weapon wp = new Weapon("倚天劍???" , 999999); // 創(chuàng)建Armour 對象 Armour ar = new Armour("明光鎧甲???",88888); // 創(chuàng)建Role 對象 Role r = new Role(); // 設(shè)置武器屬性 r.setWeapon(wp); // 設(shè)置盔甲屬性 r.setArmour(ar); // 攻擊 r.attack(); // 穿戴盔甲 r.wear(); } }
輸出結(jié)果:
使用倚天劍???,造成999999點傷害 穿上明光鎧甲??? ,生命值增加88888
類作為成員變量時,對它進行賦值的操作,實際上,是賦給它該類的一個對象。
到此這篇關(guān)于Java中引用類型class的用法總結(jié)的文章就介紹到這了,更多相關(guān)Java引用類型class內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
新手小白入門必學(xué)JAVA面向?qū)ο笾鄳B(tài)
說到多態(tài),一定離不開其它兩大特性:封裝和繼承,下面這篇文章主要給大家介紹了關(guān)于新手小白入門必學(xué)JAVA面向?qū)ο笾鄳B(tài)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-02-02Spring?Boot?整合持久層之Spring Data JPA
在介紹Spring Data JPA的時候,我們首先認識下Hibernate。Hibernate是數(shù)據(jù)訪問解決技術(shù)的絕對霸主,使用O/R映射技術(shù)實現(xiàn)數(shù)據(jù)訪問,O/R映射即將領(lǐng)域模型類和數(shù)據(jù)庫的表進行映射,通過程序操作對象而實現(xiàn)表數(shù)據(jù)操作的能力,讓數(shù)據(jù)訪問操作無須關(guān)注數(shù)據(jù)庫相關(guān)的技術(shù)2022-08-08SpringBoot+Docker+IDEA實現(xiàn)一鍵構(gòu)建+推送、運行、同鏡像多容器啟動
這篇文章主要介紹了SpringBoot+Docker+IDEA實現(xiàn)一鍵構(gòu)建+推送、運行、同鏡像多容器啟動,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04使用springboot整合mybatis-plus實現(xiàn)數(shù)據(jù)庫的增刪查改示例
這篇文章主要介紹了使用springboot整合mybatis-plus實現(xiàn)數(shù)據(jù)庫的增刪查改示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04教你通過B+Tree平衡多叉樹理解InnoDB引擎的聚集和非聚集索引
大家都知道B+Tree是從二叉樹演化而來,在這之前我們來先了解二叉樹、平衡二叉樹、平衡多叉樹,這篇文章主要介紹了通過B+Tree平衡多叉樹理解InnoDB引擎的聚集和非聚集索引,需要的朋友可以參考下2022-01-01Java序列化和反序列化_動力節(jié)點Java學(xué)院整理
把對象轉(zhuǎn)換為字節(jié)序列的過程稱為對象的序列化,把字節(jié)序列恢復(fù)為對象的過程稱為對象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧2017-05-05springboot創(chuàng)建監(jiān)聽和處理事件的操作方法
這篇文章主要介紹了springboot創(chuàng)建監(jiān)聽和處理事件的操作方法,使用Spring Boot的事件機制來監(jiān)聽和處理事件有多種優(yōu)勢,本文給大家介紹的非常詳細,需要的朋友參考下吧2024-07-07