C#的几个学习要点
初學C#,對很多概念都弄不清楚,特地寫此總結:
面向對象:
- 找個對象幫你做事;
- 把出現在每個過程中事物,對象一般是被動的那個;
- 屏蔽所有人的差異,寫出通用的代碼;
對象:一定是經過實例化之后的具體事物,看得見,摸得著。
?
面向對象的基礎為抽象類,類的基本組成有:字段、屬性、方法。
字段(Field):用于保存類中的數據,字段命名應該以下劃線開頭;
屬性(Properties):保護、限定字段,對字段的賦值和取值進行限定;
方法(Method):類的作用、方法,執行的操作;
屬性的本質就是兩個方法:對象具有的各種特征,只是一個中間變量,本身并不保存任何數據,在對外輸出時,應該使用屬性;
- set():用于控制賦值
- get():用于控制取值
類:把多個對象共同具有的屬性和方法抽象出來,進行封裝,類就是模子,確定了對象應該具有的屬性和方法。
?
靜態類與非靜態類
使用
方法中才有小括號,創建完對象,先執行構造函數;
類的初始化:創建類,并對類的各個屬性進行賦值的過程;
類中的構造函數,用來創建對象,并且可以在構造函數中對對象進行初始化(給對象的每個屬性依次進行賦值)
- 構造函數是用來創建對象的特殊方法,方法名和類名一樣,沒有返回值,連void都不用;
- 構造函數可以有參數,new對象的時候傳遞參數即可;
- 如果不指定構造函數,則類中有一個默認的無參構造函數;
- 如果制定了構造函數,則不再有默認的無參構造函數,如果需要無參構造函數,則需要自己來寫;
- 構造函數可以重載,也就是多個參數不同的構造函數(一樣的函數名字,但是參數的個數不一樣);
- 認識類圖
?
關鍵字:new
- 在內存中開辟一塊空間;
- 在開辟的空間中創建對象;
- 調用對象的構造函數進行初始化對象(要求構造函數的修飾符必須為public);
關鍵字:this
- 代表當前的類
- 在類當中顯示的調用本類的構造函數 :this
關鍵字:base
- 父類的構造函數要優先于子類的構造函數;
- 調用基類上已經被其他方法重寫的方法;
- 指定創建派生類實例時應調用的基類構造函數;
- 基類訪問只能在構造函數、實例方法或實例屬性訪問器中進行;
- 靜態方法中使用base關鍵字是錯誤的
?
?
析構函數
- 析構函數(destructor)與構造函數相反,當對象脫離其作用域時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數往往用來做“清理善后”的工作(例如在建立對象時用new開辟了一片空間,應該退出前在析構函數中用delete釋放)。
- 析構函數名也應該與類名相同,只是在函數名前面加一個波浪符~,例如~stu(),以區別構造函數。它不能帶任何參數,也沒有返回值(包括void類型)。一個類只能有一個析構函數,不能重載。如果用戶沒有編寫析構函數,編譯系統會自動生成一個缺省的析構函數,它也不進行任何操作。所以許多簡單的類中沒有用顯示的析構函數。
- 在C#中使用解構器需要記住如下幾點:
?
對一個類的字段進行限制可以從set/get/構造函數進行;
?
在類的方法中輸出屬性時,應該加上this,因為可能會受到局部變量的影響;
?
快速引用命名空間:ALT+SHIFT+F10
?
疑問:
- 重新賦值的一個過程吧?
轉載于:https://www.cnblogs.com/shuichangdong/p/8215748.html
總結
- 上一篇: 关于博客更新说明
- 下一篇: K:hash(哈希)碰撞攻击