......... // 宣告變數(通常是 public)
{
get { .... } // 希望變數讀取時執行的程式碼
set { .... } // 希望數值存入時執行的程式碼
}
Class User
主程式
結果
主程式
結果
Class User
主程式
結果
假設只有get沒有set那麼HP就會變成唯讀不能進行存入的動作
結語:這次的get、set存取器花了一些時間來理解,如果有誤請告知小弟我會趕快修正的
你現在是一位遊戲公司的設計師,這次受命完成玩家類別的部分程式碼
其中必須要完成以下兩項工作:
以下是玩家的部分程式碼:
class Player
{
//目標 1.欠缺計算總值的程式碼(TotalValue)2.欠缺存取飢餓度(HungerRate) 的程式碼
//property
private int CountGold; // 擁有的金子數目,每個金子值 50
private int CountSilver; // 擁有的銀子數目,每個銀子值 25
private int CountCopper; // 擁有的銅的數目,每個銅值 10
private int TotalValue;
public int totalValue
{
get
{
TotalValue = 50 * CountGold + 25 * CountSilver + 10 *CountCopper;
return TotalValue;
}
}
//get 、set
private int HungerRate; // 飢餓度,必須介於 0~100 之間
public int hungerRate
{
get { return HungerRate; }
set
{
if (value >= 100)
HungerRate = 100;
else if (value <= 0)
HungerRate = 0;
else
HungerRate = value;
}
}
//constructor
public Player()
{
this.CountGold = 0;
this.CountSilver = 0;
this.CountCopper = 0;
this.HungerRate = 80;
}
public void PickAGold()
{
CountGold++;
}
public void PickASilver()
{
CountSilver++;
}
public void PickACopper()
{
CountCopper++;
}
}
private void Button1_Click(object sender, EventArgs e)
{
Player player = new Player();
player.PickAGold();
player.hungerRate += 10; // 餓了,飢餓度上升
player.PickASilver();
player.hungerRate += 10; // 餓了,飢餓度上升
player.PickASilver();
player.hungerRate += 10; // 餓了,飢餓度上升
MessageBox.Show("飢餓度:" + player.hungerRate + ",身上物品總值:" + player.totalValue);
player.PickACopper();
player.hungerRate -= 60; // 吃了一個可以減少 60 飢餓度的東西
player.PickAGold();
player.hungerRate -= 60; // 吃了一個可以減少 60 飢餓度的東西
MessageBox.Show("飢餓度:" + player.hungerRate + ",身上物品總值:" + player.totalValue);
}
當你按下按鈕執行後,應該要得到兩個對話框如下: