1. 定義:
屬性結(jié)合了字段和方法的多個(gè)方面勘天。 對(duì)于對(duì)象的用戶,屬性顯示為字段右蕊,訪問(wèn)該屬性需要相同的語(yǔ)法琼稻。 對(duì)于類的實(shí)現(xiàn)者,屬性是一個(gè)或兩個(gè)代碼塊尤泽,表示一個(gè) get
訪問(wèn)器和/或一個(gè) set
訪問(wèn)器欣簇。
當(dāng)讀取屬性時(shí),執(zhí)行 get 訪問(wèn)器的代碼塊坯约;當(dāng)向?qū)傩苑峙湟粋€(gè)新值時(shí)熊咽,執(zhí)行 set 訪問(wèn)器的代碼塊。
不具有set訪問(wèn)器的屬性被視為只讀屬性闹丐。
不具有 get訪問(wèn)器的屬性被視為只寫(xiě)屬性横殴。 同時(shí)具有這兩個(gè)訪問(wèn)器的屬性是讀寫(xiě)屬性。
2. 用途
屬性具有多種用法:
- 它們可在允許更改前驗(yàn)證數(shù)據(jù)卿拴;
- 當(dāng)數(shù)據(jù)被更改時(shí)衫仑,它們可采取行動(dòng),例如引發(fā)事件或更改其他字段的值堕花。
3. 語(yǔ)法
public class Date
{
private int month;
public int Month
{
get
{
return month;
}
set
{
if ((value > 0) && (value < 13))
{
month = value; //value是外界賦的值
}
}
}
}
4. 注意點(diǎn)
屬性可以只寫(xiě)get塊或set塊文狱。
如果只寫(xiě)get不寫(xiě)set,那么就不能再外面賦值了缘挽。 如果只寫(xiě)set不寫(xiě)get瞄崇,那么就不能在外界讀取了。
可以給set或者get設(shè)置訪問(wèn)修飾符壕曼,來(lái)限制調(diào)用范圍苏研。
5. 屬性的簡(jiǎn)寫(xiě)方式
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è)怪物骗爆。
無(wú)論是玩家還是怪物,當(dāng)血量為0的時(shí)候則 死亡蔽介。
要求游戲職業(yè)定義為枚舉摘投、還要用到構(gòu)造函數(shù)。