[黑马程序员二]:C#面向对象基础
?
1.類是對象的類型,對象是類的實例,類是不占內存的,對象才占內存。
2.類的定義:
[訪問修飾符] class類名//訪問修飾符:public,private,internal,protected,缺省時認為private
{
成員;//字段,屬性,方法等
……
}
Public:可以在任意地方被訪問
Private:只能在本類中被訪問
Internal:只能在本項目中被訪問
Protected:只能在本類和子類中被訪問
?
3.類的實例化
類名 實例名=new 類名();//例如Persontom=new Person();
New關鍵字:實例化類,并在內存中給實例分配空間。
?
4.字段和屬性:
?
private intage;//字段,常為private,防止類外部直接操作變量 public int Age//屬性,定義一個public的具有set/get方法的變量,用于將private字段封裝(進行變量初始化控制),用于類外部訪問變量 {set{//value關鍵字就是存儲用戶賦的那個值if (value > 0)age = value;elseage = 0;}get{return age;} } ??
5.構造函數和析構函數:
用來創建對象的特殊方法,方法名和類名一樣,沒有返回值,連void也不需。如果不指定構造函數,則編譯器會加一個無參的構造函數,如果自定義構造函數,則編譯器不會在自動生成構造函數。構造函數定義:[訪問修飾符]方法名(參數){}
?
?
方法重載(overload):
方法名必須相同,返回類型、參數必須不同(參數個數,參數類型)
析構函數(C#基本上不用):~方法名(){}
不能在結構中定義析構函數,只能對類使用析構函數;一個類只能有一個析構函數;無法繼承和重載析構函數;無法調用析構函數,它是自動被調用的(最后一個被調用的函數,用于垃圾回收);析構函數既沒有修飾符,也沒有參數。
?
6.參數修飾符
無修飾符:默認按值傳遞,方法收到原始數據的副本。
Ref:按引用傳遞,參數在傳遞前被初始化,必須將參數作為ref 參數顯式傳遞到方法。
Out:按引用傳遞,參數在返回前被初始化,必須將參數作為out 參數顯式傳遞到方法。
Params:參數數組,實現了參數數目可變。當一個方法聲明了一個Params參數后,其后就不允許再有參數,但是其前可以有其他參數。
?
7.命名空間(namespace):
用于解決類重名問題,可以看做“類的文件夾”;命名空間可以嵌套命名空間;system是.net的根命名空間;在不同命名空間下類的調用方法:1、寫全稱:命名空間.類名;2、先using應用命名空間,在直接調用類
?
8.字符串(String,SringBuilder):
String類是一種傳統的修改字符串的方式,它可以完成把一個字符串添加到另一個字符串上的工作,但是在.Net 框架下,這個操作實在是劃不來.因為系統先是把兩個字符串寫入內存,接著刪除原來的String對象,然后再創建一個String對象,并讀取內存中的數據賦給該對象.這一來二去的,耗費資源和時間。
StringBuilder 類(位于System.Text命名空間下)提供的Append方法,能夠在已有對象的基礎上進行字符串的修改,簡單而且直接。String在進行運算時(如賦值、拼接等)會產生一個新的實例,而StringBuilder則不會,因此進行大量的字符串拼接或頻繁對某一字符串操作時最好使用StringBuilder。
轉載于:https://www.cnblogs.com/zhang-z-qiang/archive/2013/04/01/2994207.html
總結
以上是生活随笔為你收集整理的[黑马程序员二]:C#面向对象基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP session值控制
- 下一篇: C#:如何去掉groupbox的边框线