C#語言————第三章 使用屬性升級MyBank
********常見的訪問修飾符*********:
public :公共的,可以在其他類中訪問
private:私有的,只有在本類裡可以使用,其他的類無權訪問
類的預設訪問修飾符 internal(同一程式集中的檔案內才是可訪問的,後期講)
欄位和方法的預設訪問修飾符是:
**************值傳遞和引用傳遞*************
①:值傳遞:把引數的值傳到方法裡面,如果在被呼叫的方法中對引數的值進行了修改,在方法呼叫之後,不保留對引數的修改。
②:引用傳遞:引用傳遞的方式,如果在被呼叫的方法中對引數的值進行了修改,在方法呼叫之後,仍然保留對引數的修改。
按引用傳遞:
形參與實參同時加ref
定義方法
Swap(ref int num1,ref int num2);
呼叫方法
Swap(ref num1,ref num2);
*********this用法
this:表示當前物件,通過this可以訪問當前類中的成員
作用:當前變數與區域性變數同名的情況下,用於區分變數的(this訪問的是成員變數)
*******c#中的屬性*************
1:用方法保證資料的安全
Private int _age; //年齡
//通過方法訪問年齡的值
public int GetAge()
{
return this._age;
}
//對年齡的輸入加以限制
public void SetAge(int age)
{
if (age < 0 || age > 100)
{
this._age = 19;
}
else
{
this._age = age;
}
}
2:用屬性實現欄位的 (封裝隱藏內部細節避免不合理賦值)
①:屬性:如果要訪問類中的私有欄位,需要通過get和set訪問器實現,這種結合了欄位和方法的實現方式,稱之為屬性
②:屬性的語法:
private int _age;
public int Age
{
get{ return _age;}
set{ _age=value; }
}
對
public int Age
{
get
{
return _age;
}
set
{
if (value < 0 || value > 100)
{
_age = 19;
}
else
{
_age = value;
}
}
}
③:屬性的資料型別
定義類中的一個屬性時,屬性的資料型別(int Age)必須與他所訪問的欄位型別(int _age)一致。
④:屬性的訪問型別
get訪問器(只讀):訪問get訪問器
set訪問器(只寫):執行set訪問器
⑤:在編碼中快速的建立屬性
選中私有欄位 重構 封裝欄位(游標放在所封裝的欄位上,ctrl+R+E 生成屬性)
⑥:物件初始化器
Student student = new Student(){name="Tom",Age=20};
***********面向物件的封裝***************
封裝是將資料和操作方法儲存在一起的技術(安全)
實現:將成員變數、方法和屬性以類的方式進行封裝,在類或物件之間通過訊息傳遞進行相互交流,而傳遞的資訊是通過呼叫類公開的方法完成的
特點:隱藏內部實現,對外只暴露對類的基本操作,不影響其他物件對類的實現
欄位:類中的成員變數
屬性:封裝欄位,本質是方法
語法:
public 資料型別 屬性名
{
get{return 欄位;}
set{欄位 = value;}
}
屬性的資料型別與所封裝欄位的資料型別一致
屬性名與欄位名相同,但使用帕斯卡命名法