Java中引用類型class的用法總結(jié)
實(shí)際的開發(fā)中,引用類型的使用非常重要,也是非常普遍的。我們可以在理解基本類型的使用方式基礎(chǔ)上,進(jìn)一步去掌握引用類型的使用方式?;绢愋涂梢宰鳛槌蓡T變量、作為方法的參數(shù)、作為方法的返回值,那么當(dāng)然引用類型也是可以的。
class作為成員變量
角色類
在定義一個(gè)類Role(游戲角色)時(shí),代碼如下:
class Role {
int id; // 角色id
int blood; // 生命值
String name; // 角色名稱
}使用int 類型表示 角色id和生命值,使用String 類型表示姓名。此時(shí), String 本身就是引用類型,由于使用的方式類似常量,所以往往忽略了它是引用類型的存在。如果我們繼續(xù)豐富這個(gè)類的定義,給Role 增加武器,穿戴裝備等屬性,我們將如何編寫呢?
武器類
提高進(jìn)攻能力,定義攻擊武器類,將增加攻擊能力:
class Weapon {
String name; // 武器名稱
int hurt; // 傷害值
}鎧甲類
提高防守能力定義穿戴盔甲類,將增加防御能力,也就是提升生命值:
class Armour {
String name;// 裝備名稱
int protect;// 防御值
}角色增強(qiáng)類
給角色類增加進(jìn)攻和防守屬性,角色類調(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()+"點(diǎn)傷害");
}
// 穿戴盔甲
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點(diǎn)傷害 穿上明光鎧甲??? ,生命值增加88888
類作為成員變量時(shí),對它進(jìn)行賦值的操作,實(shí)際上,是賦給它該類的一個(gè)對象。
到此這篇關(guān)于Java中引用類型class的用法總結(jié)的文章就介紹到這了,更多相關(guān)Java引用類型class內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot整合flyway實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)維護(hù)的示例代碼
本文主要介紹了spring boot整合flyway實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)維護(hù)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
基于序列化存取實(shí)現(xiàn)java對象深度克隆的方法詳解
本篇文章是對序列化存取實(shí)現(xiàn)java對象深度克隆的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Java 可視化垃圾回收_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Ben Evans是一名資深培訓(xùn)師兼顧問,他在演講可視化垃圾回收中從基礎(chǔ)談起討論了垃圾回收。以下是對其演講的簡短總結(jié)。感興趣的朋友一起學(xué)習(xí)吧2017-05-05
springboot實(shí)現(xiàn)全局異常處理及自定義異常類
這篇文章主要介紹了springboot實(shí)現(xiàn)全局異常處理及自定義異常類,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
webservice實(shí)現(xiàn)springboot項(xiàng)目間接口調(diào)用與對象傳遞示例
本文主要介紹了webservice實(shí)現(xiàn)springboot項(xiàng)目間接口調(diào)用與對象傳遞示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Mybatis通過攔截器實(shí)現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換
這篇文章主要為大家詳細(xì)介紹了Mybatis如何通過攔截器實(shí)現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

