前言:面向?qū)ο缶幊淌乾F(xiàn)如今編程的大環(huán)境,所以再次回顧面向?qū)ο蟮闹R是非常有必要的。
一:類與對象
1:軟件系統(tǒng)
輸入{用戶界面} 運算{業(yè)務(wù)邏輯}
存儲{數(shù)據(jù)庫} 輸出{界面或其他文件}
2:對象的了解
對象是身邊的一些常見的事物,主要了解對象之間區(qū)別;
對象區(qū)分的重要因素:
靜態(tài)特征(屬性,表示對象“什么樣子”)
動態(tài)特征(方法,表示對象“能干什么”)
3:面向過程和面向?qū)ο?/font>
面向過程:就是比較注重做每一件事情的過程,步奏,流程。關(guān)注點為小的細節(jié)
面向?qū)ο螅菏蔷哂幸恍┨匦院蛣幼鞯臇|西,關(guān)注點為最后的結(jié)果。
4:理解面向?qū)ο缶幊?/font>
*它的核心是對象
*對象為現(xiàn)實世界的實體,而面向?qū)ο缶幊叹褪菍⑦@些實體模擬到計算機程序中,實現(xiàn)相關(guān)的功能。
*根據(jù)需要編寫各種對象,并將其對象建立一定的關(guān)系;
5:封裝的概念
*就是將一些小的對象放在一起,然后以一個新的對象呈現(xiàn)出來,封裝使得一個對象的內(nèi)部變得隱藏,從而更加安全;
*將屬性和方法放在一個類里面,類就可以看做是一個黑箱,只能在外面看到一些公共的方法和屬性。<模塊化和數(shù)據(jù)隱藏>
*定義用操作方法把數(shù)據(jù)封閉到類中,形成以數(shù)據(jù)為核心,方法為外殼的類。
6:類的概念
*對象是類中的一個實例,將對象的共同特征抽取出來,這些共同的屬性和方法被組織在一個單元中,就被就做類;
*類是具有相同屬性和共同方法(行為)的一組對象的集合
*類的屬性:對象或?qū)嶓w所擁有的靜態(tài)特征,在類中表示稱為類的屬性;
*類的方法:對象或?qū)嶓w所擁有的動態(tài)特征,在類中表示為類的方法;
7:類與對象的區(qū)別 <自行車和設(shè)計自行車圖紙的關(guān)系>
*類是一個概念模型,在這個模型中,規(guī)定對象的屬性和方法;
*對象是一個實體;
8:類模版的定義
訪問修飾符 class 類名
{
定義字段;
定義屬性部分;
定義方法部分;
}
*定義類名:名詞,首字母大寫Passal命名法;
*編寫類的字段,屬性;*編寫類的方法,接口;【獨立完成某個功能的單元模版】(學(xué)會理解類的組成,并且在這其中要學(xué)會應(yīng)用)
9:字段:叫做成員變量(全局變量);
{字段和屬性都是用來描述類的靜態(tài)特征}方法中定義的變量叫做局部變量;二者的作用域不同;
10:對象的創(chuàng)建過程
Static void Main(string []ardes) { //定義字段 PRivate int studentId; Private string studentName; //定義屬性Public int StudentID{ get{return studentId;} Set{studentId=value;}}Public string StudentName {get{return studentName;}set{studentName=value}}//獲取信息{定義方法}Public string GetStudent(){String info=string.format(“姓名:{0},學(xué)號:{1}”,studentName,studentId);Return info;}}
11:關(guān)于對象的調(diào)用
//創(chuàng)建對象Student objStudent=new Student();//給對象屬性賦值objStudent.StudentId=1001;objStudent.StudentName=”阿輝”;//顯示對象的屬性(調(diào)用方法)String info=objStudent.Getstudent(); //類名.方法名Console.writeline(info);Console.readline();
二:字段與屬性
1:訪問修飾符
作用:限制對象的屬性或方法可訪問的范圍(作用于類的內(nèi)部和外部)
類型:
private(私有的:外部不可見,不可訪問,只在本類可以訪問,默認的)
Public(公有的:外部可見,外界可以訪問)
Protect(受保護的:只在本類和子類中被訪問)
Intemal(只在本項目中被訪問)
2:在方法中如果去掉public,則系統(tǒng)自動變?yōu)閜rivate,對于private修飾符外界不可訪問,如果訪問會報錯,而且通過(.運算)不可自動出現(xiàn);
3:字段(類的成員變量)
字段一般用private來修飾(是我們的私有財產(chǎn)),通常只供類的內(nèi)部的不同方法使用;
4:屬性(描述靜態(tài)特征){是什么,具有什么特有的屬性}
字段私有化,屬性是公有化;其中有g(shù)et();set();通過value將外部值賦私有字段;
屬性是外界訪問私有字段的入口,屬性本身不保存任何數(shù)據(jù);屬性中的get,set;
Get為讀取時返回字段的值,set外部來賦值;
5:使用屬性避免非法數(shù)據(jù){在get,set中加入if,,else進行判斷}
6:可以將屬性設(shè)置為只讀;{無set方法,無法為其賦值}
7:沒有對應(yīng)私有字段的屬性,屬性內(nèi)部可以添加如何需要的業(yè)務(wù)代碼,如方法的調(diào)用;{其屬性處理屬性的能力超強}
8:字段與屬性比較
字段(成員變量)為類的內(nèi)部做數(shù)據(jù)交互,字段一般是private(私有的)的;可以為其賦值,也可以獲取字段的值,當(dāng)需要為外部提供數(shù)據(jù)時,請將字段封裝為屬性,不要去使用共有的字段;
屬性一般向外界提供數(shù)據(jù),主要描述數(shù)據(jù)對象的靜態(tài)特征,一般用public,可設(shè)置為只讀,只寫屬性,提高數(shù)據(jù)的安全性。也可以在內(nèi)部添加業(yè)務(wù)邏輯,避免非法數(shù)據(jù);
三:類的方法和構(gòu)造方法
1:方法表示一個類或?qū)ο竽軌驅(qū)崿F(xiàn)的操作,即對象的動態(tài)特征。一個類中主要是通過方法把字段和屬性的值傳遞出去;
分類:實例方法,靜態(tài)方法,構(gòu)造方法,抽象方法,虛方法;
2:方法的作用
*規(guī)定了類主要實現(xiàn)的功能;
*方法封裝在類里面,外界調(diào)用時不需要了解內(nèi)部細節(jié),體現(xiàn)了其“高內(nèi)聚”“低耦合”特性;
3:書寫類中方法的錯誤集合
*忘記返回值,提示并非所有路徑代碼都有返回值;
*返回值定義的類型與返回值數(shù)據(jù)的類型不同;
*變量在使用中超出作用域
4:構(gòu)造方法的調(diào)用優(yōu)先與其他的方法,其中參數(shù)的傳遞和一般的方法傳遞一樣;
這里的調(diào)用是因為我們每一次使用對象的時候都會New一下,這里就調(diào)用了類中默認的構(gòu)造方法,這里可以進行重載的實現(xiàn),當(dāng)你想為其進行初始化時。
5:構(gòu)造方法可以進行初始化,使用有參數(shù)的構(gòu)造方法可以避免用戶單個初始化對象屬性的麻煩;在構(gòu)造方法中統(tǒng)一初始化就可以使程序變得更加美觀;
6:構(gòu)造多個構(gòu)造方法
構(gòu)造方法自身調(diào)用時用{:this(stuld,stuName)}完成自身方法的調(diào)用;
7:構(gòu)造方法與實例方法的區(qū)別
構(gòu)造方法:
*用于對象的初始化,一個類中至少有一個構(gòu)造方法;
*不能顯示調(diào)用,只能在創(chuàng)建對象時使用new來調(diào)用;
*無返回值;無括號包裹;
*構(gòu)造方法名稱必須與類名一樣;
實例方法:
*用于表示對象能夠干什么,一個類中可以沒有任何實例方法;對象的動態(tài)特征;
*只能顯示調(diào)用:對象名.方法名。
*可以有返回值,沒有時必須以void表示;
*方法的命名要有意義,不能與類名相同;
8:對象初始化器
中間的語句塊,必須以“,”分隔;
*只能初始化屬性值;
*只能在調(diào)用者中使用,而構(gòu)造方法初始化必須寫在類中;<CTOR>
9:方法的重新定義(三種)
10:this關(guān)鍵字
*this表示當(dāng)前類的對象,用于訪問該類成員變量或方法;
*當(dāng)成員變量和局部變量重名時使用this區(qū)分;
這里還有個base關(guān)鍵字,當(dāng)我們的類繼承字別的類時,我們通過base來直接使用父類。
新聞熱點
疑難解答