封裝講簡單點就是不對外公開
只允許自己使用
主要是防止一些錯誤的事情發生
在這先講解公開及私有的修飾詞
Public (公開) 可以給任何人存取使用
Private (私有) 只有自己能存取使用
封裝 |
public class PlayerData
{
// 名字
public string Name { get; private set; }
// 錢
public int Money;
// 私房錢
private int MyMoney;
}
public void Start()
{
// 定義一個玩家資料
PlayerData playerData = new PlayerData();
playerData.Name = "Weight"; // 錯誤 (屬性存是私有
playerData.Money = 1000; // 正確
playerData.MyMoney = 50; // 錯誤 (私有
}
|
這邊用個簡單的範例來講解
NickName 是你的名字 大家都可以知道 但是不能去修改你的名稱
Money 男生結婚了 你的錢就是家裡的了.... (汗
MyMoney 你的私房錢 當然只有你知道
那封裝主要講的就是私有
不讓除了自己以外的人使用 防止一些錯誤的事情發生
就像你的名字 如果你的朋友可以隨意改是不是很奇怪呢...
因為名字別人可以知道 所以在這邊就用屬性的方式表示
如果你的私房錢可以給人使用 那還叫私房錢嗎!?
那這些被封裝的怎麼辦呢
修改成用建構函式的方式 |
public class PlayerData
{
// 建構初始化
public PlayerData(string m, int m, int mm)
{
Name = m;
Money = m;
MyMoney = mm;
}
// 名字
public string Name { get; private set; }
// 錢
public int Money;
// 私房錢
private int MyMoney;
}
public void Start()
{
// 定義一個玩家資料 建構初始化 傳參數
PlayerData playerData = new PlayerData("Weight", 1000, 50);
}
|
你也可以用Function的方式來呈現 |
public class PlayerData
{
// 名字
public string Name { get; private set; }
// 錢
public int Money;
// 私房錢
private int MyMoney;
// 設定名字
public void SetName(string m)
{
Name = m;
}
//設定私房錢
public void SetMyMoney(int mm)
{
MyMoney = mm;
}
}
public void Start()
{
// 定義一個玩家資料
PlayerData playerData = new PlayerData();
playerData.SetName("Weight");
playerData.SetMyMoney(50);
}
|
多練習幾次就會知道什麼情況下要使用什麼樣的方式
留言列表