1. 定義:
屬性結(jié)合了字段和方法的多個(gè)方面。 對于對象的用戶,屬性顯示為字段活箕,訪問該屬性需要相同的語法。 對于類的實(shí)現(xiàn)者可款,屬性是一個(gè)或兩個(gè)代碼塊育韩,表示一個(gè) get
訪問器和/或一個(gè) set
訪問器。
當(dāng)讀取屬性時(shí)闺鲸,執(zhí)行 get 訪問器的代碼塊筋讨;當(dāng)向?qū)傩苑峙湟粋€(gè)新值時(shí),執(zhí)行 set 訪問器的代碼塊摸恍。
不具有set訪問器的屬性被視為只讀屬性悉罕。
不具有 get訪問器的屬性被視為只寫屬性。 同時(shí)具有這兩個(gè)訪問器的屬性是讀寫屬性立镶。
2. 用途
屬性具有多種用法:
- 它們可在允許更改前驗(yàn)證數(shù)據(jù)壁袄;
- 當(dāng)數(shù)據(jù)被更改時(shí),它們可采取行動(dòng)谜慌,例如引發(fā)事件或更改其他字段的值然想。
3. 語法
public class Date
{
private int month;
public int Month
{
get
{
return month;
}
set
{
if ((value > 0) && (value < 13))
{
month = value; //value是外界賦的值
}
}
}
}
4. 注意點(diǎn)
屬性可以只寫get塊或set塊。
如果只寫get不寫set欣范,那么就不能再外面賦值了变泄。 如果只寫set不寫get令哟,那么就不能在外界讀取了。
可以給set或者get設(shè)置訪問修飾符妨蛹,來限制調(diào)用范圍屏富。
5. 屬性的簡寫方式
public class Date
{
public int Month{get;set;} // 編譯器會(huì)自動(dòng)加上一個(gè)month的字段。
}
6 蛙卤、 練習(xí)題
用面向?qū)ο蟮乃季S去完成下面的題
游戲中狠半,有玩家,每個(gè)玩家有昵稱颤难,ID神年,游戲職業(yè)(法師、戰(zhàn)士行嗤、射手已日。。栅屏。)飘千,血量,物攻栈雳,法傷护奈,物抗,法抗哥纫,霉旗。
游戲中,還有裝備磺箕,裝備有物理防御奖慌、法術(shù)防御、物理攻擊力松靡,法術(shù)攻擊力简僧,血量。 玩家擁有裝備后雕欺,可以提升自己的能力岛马。
游戲中,還有多個(gè)怪物屠列,怪物有血量啦逆,物攻,法傷笛洛,物抗夏志,法抗,Boss的法傷苛让,物攻和物抗沟蔑,法抗湿诊,血量比較高,小兵的比較低瘦材。
玩家打怪物厅须,怪物打玩家。
血量減少的值等于被攻擊的值減去自身的抗性食棕。
如: 玩家1的物理攻擊是800,法術(shù)攻擊是300朗和,怪物的物理防御是600,法術(shù)防御是500簿晓, 玩家打怪物一下眶拉,怪物的血量減少200.
玩家打怪物兩下,怪物打玩家一下憔儿,可以多個(gè)玩家打一個(gè)怪物镀层。
無論是玩家還是怪物,當(dāng)血量為0的時(shí)候則 死亡皿曲。
要求游戲職業(yè)定義為枚舉、還要用到構(gòu)造函數(shù)吴侦。