Get Set 常用於處理額外情況,不讓系統出現BUG
是封裝的一種,他有private的效果
當只有 get 沒有set的時候,變成唯讀,不能做任何處裡
using System; //要用到main()就會用到
public class Program
{
private int coin1=1,coin5=2,coin10=3; //1元1個 5元2個 10元3個
public int Money
{
get{
return coin1*1+coin5*5+coin10*10; //你呼叫 Money 自動幫你算好
}
}
public void Main()
{
user nuser = new user("jack","1234"); //新增一個使用者class 帳號馬
nuser.hurt(10); //傷害的方法
nuser.hurt(10);
nuser.hurt(10);
nuser.HP += -10; //直接扣
Console.WriteLine (nuser.HP); //取得 公開的HP
Console.WriteLine (Money);//取的公開的錢
}
}
class user //user系統
{
private string username,password; //系統裡的帳號密碼 不能給玩家或別人知道使用
private int _hp; //系統裡的HP 不能給玩家或別人知道使用 最小值只能到0
public int HP{
get{return _hp;} //呼叫HP時,會叫系統裡的_hp 但先經過set 才到get確保回傳值沒問題
set{
if(value>100) //value = 傳入HP裡的值
_hp = 100; //最大血量只能到 100
else if(value>0) //當系統的_hp 不小於於0時
_hp=value;
else //當小於0
_hp=0; //系統_hp 變成負值時不合常理 ,所以要設為0
}
}
public void hurt(int damage) //傷害HP的方法
{
HP = HP - damage; //HP 沒有實際的值,實際上是用_hp來扣的
//_hp = _hp - damage; 錯誤用法,不能直接改,會跳過HP set處理程序 會出錯
}
public user(string username,string password) //初始化必用,新增user class時,會先行運行這行代碼
{
this.username =username; //使用者註冊的帳號密碼 設到user系統裡
this.password =password;
this._hp = 20; //初始化設定系統腳色生命值
}
}
@copyright MRcodingRoom
觀看更多文章請點MRcoding筆記
觀看更多文章請點MRcoding筆記