c#物件導向是相對於面向過程而言的,面向過程強調的是功能行為,完成任務由多個方法完成;物件導向將功能進行封裝,完成任務由物件來完成.物件導向不是取代面向過程的,而是思想的轉變.過去做事情總是"親力親為";事事具細,現在有了成績當老闆了,把事情交給手下去做.
1.什麼是類、
是一類事物的總稱,乙個模板;是虛構的;抽象的;不存在的.
2.什麼是物件
是實實在在的個體,是類的例項化.
3.如何例項化乙個物件
通過類產生物件,叫做宣告乙個物件;例項化乙個物件。語法:類名 例項名(變數名)=new 類名();比如person ps=new person();,這樣就完成乙個物件的宣告;注意=前面是宣告乙個物件名(變數名),後面的才是開闢一塊記憶體空間,真正例項化了,才說明ps在計算機中實實在在存在的。當然也必須是例項化之後.通過物件名.屬性名;物件名.方法名()呼叫類的屬性和方法.注意:類不佔系統記憶體,物件才佔記憶體.
4.靜態類的訪問
有static修飾的類,不需要例項化,直接類名.屬性名和類名.方法名即可訪問類的屬性和方法了.靜態類,不能被new的類就是靜態類,常用來實現函式庫
5.訪問修飾符
屬性和方法:public代表公有的,可以在任何地方被訪問;internal代表只能在本專案中被訪問;protected是受保護的意思,只能在本類和子類中被訪問;private指私有的,只能在本類中被訪問。預設是private修飾符。
類:public代表公有,可以在任何地方被訪問;protected是受保護的意思,只能在本類和子類中被訪問。internal代表是只能在專案中被訪問。預設是internal。
6.屬性
如果在方法中定義了乙個變數,這個變數有get或set方法,那麼這個變數就有對應的屬性,為什麼是說對應的?因為變數往往是由public修飾的,來保護乙個由private修飾的私有變數。這樣外界只能通過屬性來訪問,保護了那個私有變數。 比如:private int age; public int age ; set }。這個age就是屬性,外界可以訪問age,但無法訪問age,保護了age欄位。設定屬性可以通過「右擊字段」,然後選擇「重構」,「封裝字段」即可完成。ctrl+r,e快捷鍵功能.屬性分為讀寫(含get和set方法)、唯讀(只含get方法)和只寫(只含set方法),根據實際需要來設定相應的屬性即可.
7.自動屬性
屬性的本質就是方法;由get與set方法組成.所謂自動屬性,就是只有屬性沒有字段,這時系統會自動為我們生成乙個只有屬效能訪問的私有欄位.此時要注意get與set方法只能成對使用;如果只有get,就沒有辦法賦值,同樣的道理只有set;就沒辦法讀取,單單只有get,或只有set是沒有意義的.實際上這時系統會報錯.
8.構造方法
語法: [訪問修飾符public] 名(和類同名,沒有返加值){}.
作用:建立物件例項化物件,給類的成員賦初值.
好處:<1.可以對多個屬性或字段進行賦值;不需要重複寫例項名<2.保證使用者在建立物件時必須對指定的成員賦初值<3.可以對唯讀屬性進行賦值.
引數:系統自動生成的;預設的構造方法是無參的,當使用者自定義了建構函式;系統的預設的建構函式就會自動消失.為了保證不會出錯,我們可以手動新增乙個無參的方法.構造方法可以過載,就是說可以有多個引數的構造方法.
9.繼承(:)
定義類時不指定父類,則父類就是object類.object類是任何類直接或間接的父類.繼承都是單繼承,只能繼承自乙個類.
子類繼承父類的屬性和方法,也可以有自己的特定屬性與方法.在呼叫子類成員時;程式會先呼叫父類的構造方法給成員初始化,之後再執行子類的例項化方法.
10.索引器
定義索引器的方式:
string this[int index]set},string為索引器的型別;中是引數列表,用set方法通過value得到使用者給定的值;用get方法讀取值. 索引器的引數可以不止乙個,型別也不限於int;幾乎是任意型別.
11.params可變引數
在方法的型別前加params引數,就成為可變引數.呼叫時傳乙個或幾個相同型別的值後,這個方法會把值自動放入相同型別的陣列中.
如test( params int arry),但方法如果有多個相同型別引數時params所修飾的引數;必須放最後面.(如test(int age, params int arry))
12.命名空間
命名空間用於解決類的重名問題;可以看做類的「資料夾」(理解的意義),被使用的類如果在同一namespce命名空間下;則不需要引入.如果不在同一命名空間下則需要引入.有以下兩種方法:
<1.寫全稱(類名.方法名)
<2.先using引入命名空間,再呼叫.
13.析構函式
析構方法是用來手動清理記憶體資源的,不過c#中有垃圾**器會不定時清理記憶體資源。
注意點:析構函式只能定義在類中,不能在結構中定義使用析構方法.乙個類中只能有乙個析構方法,並且不允許過載;無法繼承或過載析構函式;無法呼叫析構函式;是自動被呼叫的,並且析構函式沒有修飾符、引數。比如 ~類名 {} ,這就是乙個析構函式。
14.字串
1.字串可以看做char的唯讀陣列,遍歷char陣列輸出字串內容;但不能直接通過下標修改字串內容,所以說它是唯讀的。
2.字串的乙個特性:不可變性.字串一旦宣告就不可改變.所以只能讀取;不能通過索引直接修改.
3.間接修改:
通過tochararray()方法複製得到新的char陣列,修改後呼叫new string(char)構造方法建立新的字串物件.
4.string是c#中的字串,而string是.net framwork中的字串,實際上是一樣的.
5.字串常用方法
<1.equals()比較兩個字串是否相同(==).
<2.split()字串分割,根據要求對字串分割;注意split()的第三個過載方法;第二個參string.splitstringoptions.rempveemptyentries是將分割之後的陣列中的空格刪除掉。
<3.substring()字串的載取.
<4.indexof()返回指定字元的索引。
<5.tolower()和toupper()得到字串的小寫或大寫形式,注意方法也不會改變字串原來的值,只是通過方法生成乙個新的字串.
<6.replace()替換指定的字元
<7.compare()比較兩個字串大小(按ascii順序比較),返回0則相等;返回-1第乙個字串小於第二個字串;返加1第乙個字串大於第二個字串
<8.contains()判斷字串是否存在,返加乙個true或false.
c 物件導向程式設計 物件導向
什麼是物件導向 是對現實世界理解和抽象的方法。物件導向程式設計的特點 易維護,易擴充套件,靈活性好,重用 類 對事物的抽象定義,即事物具有的共同特徵和行為。物件 即對類進行例項 類是抽象的,物件是具體的 類的定義 語法 訪問修飾符 class 類名類的成員 包括字段,屬性,方法,常量,事件和索引器等...
C 物件導向
它定義了類的物件包括了什麼屬性,以及可以執行哪些操作 呼叫函式 class box 關鍵字 public 確定了類成員的訪問屬性.在類物件作用域內,類的外部是可訪問的 也可以指定類的成員為 private 或 protected box box1 宣告物件 box1,型別為 box box box2...
c 物件導向
0,類變數的申明可以不賦初始值 int 型別的為0,引用型別預設值為null,bool型別為false 1.物件導向的三大特點 封裝 0增加安全 1 良好的封裝能夠減少耦合 2 類內部的實現可以自由地修改 3 類具有清晰的對外介面 繼承 子類是乙個物件,父類的成員只是子類的引用 在繼承時子類的訪問修...