国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#基礎(chǔ)總復(fù)習(xí)03

2019-11-17 02:27:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C#基礎(chǔ)總復(fù)習(xí)03

繼續(xù)更新。。。接下來(lái)就是面向?qū)ο蟮闹R(shí)了

1、面向?qū)ο螅焊拍睿菏褂妹嫦驅(qū)ο蟮乃枷脒M(jìn)行編程可以讓的程序變得擴(kuò)展性更高,便于維護(hù);

我們?cè)诂F(xiàn)實(shí)生活中去描述一個(gè)人的時(shí)候,通過(guò)描述這個(gè)人的特征和行為。我們?cè)诰幊坍?dāng)中,去描述一個(gè)對(duì)象的時(shí)候,通過(guò)描述這個(gè)對(duì)象的屬性和方法。

對(duì)象時(shí)具體的,不是抽象的,一定是看得見(jiàn)摸得著的。

我們把一些具有相同屬性和方法的對(duì)象進(jìn)行進(jìn)一步的抽象,提取出了"類"這個(gè)概念。類就是模子,確定了對(duì)象將要擁有的屬性和方法。

2、類:

  語(yǔ)法:

 

[訪問(wèn)修飾符] class 類名{成員;......}訪問(wèn)修飾符:public,公開(kāi)的,公共的,在哪都可以訪問(wèn)class:是我們聲明類的關(guān)鍵字類名:要符合Pascal命名規(guī)范成員:字段、屬性、方法。

總結(jié):1)、我們?cè)趯?xiě)一個(gè)類的時(shí)候,需要在項(xiàng)目中新建一個(gè)類文件。2)、在類中,默認(rèn)的訪問(wèn)修飾符是PRivate,表示私有的,只能在當(dāng)前類的內(nèi)部訪問(wèn)。3)、在類中,我們現(xiàn)在可以寫(xiě)3種成員,字段,屬性和方法4)、我們寫(xiě)好了一個(gè)類之后,需要?jiǎng)?chuàng)建這個(gè)類的對(duì)象,叫做類的實(shí)例化5)、類是不占內(nèi)存的,但是對(duì)象時(shí)占內(nèi)存的。6)、自定義類,屬于引用類型,我們的對(duì)象存儲(chǔ)在內(nèi)存的堆中。

3、屬性:

1)、我們要求將類中所有的字段都標(biāo)記為private,但是標(biāo)記為private之后,類中的字段在外界沒(méi)有辦法被訪問(wèn)。2)、并沒(méi)有辦法對(duì)字段的非法值進(jìn)行處理屬性的出現(xiàn)解決了上面兩個(gè)問(wèn)題:語(yǔ)法:[訪問(wèn)修飾符] 屬性類型 屬性名{get{}set{}}屬性的出現(xiàn)了保護(hù)了字段,對(duì)字段的取值和設(shè)置進(jìn)行了限定。1)、在賦值的時(shí)候進(jìn)行判斷,也就是在set方法中2)、在取值的時(shí)候進(jìn)行判斷,也就是在get方法中屬性中既有g(shù)et也有set,我們叫做可讀可寫(xiě)屬性。只有g(shù)et叫做只讀屬性,意味著我們只能給屬性取值,而不能對(duì)屬性賦值。只有set叫做只寫(xiě)屬性,意味著我們只能給屬性賦值,但是不能對(duì)屬性取值。

4:關(guān)于this關(guān)鍵字的含義:

1)、代表當(dāng)前這個(gè)類的對(duì)象。2)、顯示的調(diào)用本類的構(gòu)造函數(shù)。

4.1:成員變量和局部變量

局部變量:方法中的成員都是局部變量。成員變量:類中的變量局部變量的作用域就是當(dāng)前方法,而成員變量的作用域當(dāng)前類。(上面的this很能說(shuō)明這個(gè))

小總結(jié):

字段:存儲(chǔ)數(shù)據(jù)屬性:保護(hù)字段,通過(guò)兩個(gè)方法 get、set方法:描述這個(gè)對(duì)象的行為字段跟屬性的關(guān)系:字段就是女人 屬性就是男人(男人一般在外打交道,女人嘛。。。你懂得)

5、構(gòu)造函數(shù):構(gòu)造函數(shù)其實(shí)就是一個(gè)特殊的方法,用來(lái)初始化對(duì)象。

eg:[public] class Person

{

}

[public] Person()

{

}

特殊有二:1)、構(gòu)造函數(shù)的名稱跟類名一樣。2)、構(gòu)造函數(shù)沒(méi)有返回值。連void都沒(méi)有。

注:

在類中,如果你不指定其他的構(gòu)造函數(shù),則會(huì)默認(rèn)有一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)。當(dāng)你寫(xiě)了一個(gè)新的構(gòu)造函數(shù)后。不管這個(gè)新寫(xiě)的構(gòu)造函數(shù)有參數(shù)還是沒(méi)有參數(shù),都會(huì)把原來(lái)那個(gè)默認(rèn)的無(wú)參數(shù)的構(gòu)造函數(shù)干掉。

5.1關(guān)于new關(guān)鍵字的含義:

1)、在堆中開(kāi)辟空間2)、在開(kāi)辟的堆空間中創(chuàng)建對(duì)象3)、調(diào)用對(duì)象的構(gòu)造函數(shù)進(jìn)行初始化

4)、隱藏父類的成員

6、靜態(tài)和非靜態(tài)的區(qū)別

1)、被static標(biāo)記的成員叫做靜態(tài)成員,沒(méi)有被static標(biāo)記的成員叫做實(shí)例成員或者非靜態(tài)成員。2)、在一個(gè)非靜態(tài)類中,既能出現(xiàn)靜態(tài)成員,也能出現(xiàn)非靜態(tài)成員。3)、非靜態(tài)成員需要使用對(duì)象去調(diào)用,而靜態(tài)成員需要使用類名去調(diào)用。4)、為什么對(duì)象不能去調(diào)用靜態(tài)成員?靜態(tài)成員是隨著程序的加載,就已經(jīng)在內(nèi)存中開(kāi)辟空間的。5)、靜態(tài)方法中只允許使用靜態(tài)成員,但是非靜態(tài)方法中既可以使用靜態(tài)成員也可以使用非靜態(tài)成員。6)、靜態(tài)類中所有的成員都必須是靜態(tài)成員。7)、靜態(tài)類不允許被創(chuàng)建對(duì)象,因?yàn)闆](méi)有實(shí)際意義

6.1:為什么要使用靜態(tài)類?

1)、當(dāng)這個(gè)類被用作工具類的時(shí)候,可以考慮寫(xiě)成靜態(tài)類。Console con=new Console();con.WriteLine();Console.WriteLine();2)、靜態(tài)成員在整個(gè)項(xiàng)目中是資源共享的。

7、訪問(wèn)修飾符

public:公開(kāi)的公共的,在哪都可以訪問(wèn)。private:私有的,只能在當(dāng)前類的內(nèi)部訪問(wèn),出了這個(gè)類就訪問(wèn)不到了internal:表示只能在當(dāng)前項(xiàng)目的內(nèi)部進(jìn)行訪問(wèn),出了這個(gè)項(xiàng)目就訪問(wèn)不到了。

(總和5個(gè)訪問(wèn)修飾符 基本上用這3個(gè)就夠了)

8、特殊的字符串

字符串對(duì)于我們而言是一個(gè)非常特殊的類型,特殊原因有二:1)、字符串不可變性,我們每次對(duì)字符串重新賦值、拼接等操作,都會(huì)在內(nèi)存中產(chǎn)生一個(gè)新的實(shí)例。string s1="張三";s1="李四";2)、字符串可以看做是char類型的只讀數(shù)組8.1:字符串常用的方法:ToCharArray():將字符串轉(zhuǎn)換為char數(shù)組new string(char[]):將char數(shù)組轉(zhuǎn)換為字符串Length:獲得字符串的字符個(gè)數(shù)ToUpper():將字符串轉(zhuǎn)換為大寫(xiě)形式ToLower():將字符串轉(zhuǎn)換為小寫(xiě)形式Equals():比較字符串,可以忽略字符串的大小寫(xiě)Split():可以把我們?cè)谧址胁幌胍淖址记懈畛鋈?/p>

9、面向?qū)ο蟮?大特征:

9.1、封裝:把程序當(dāng)中重復(fù)出現(xiàn)的代碼封裝成了方法。(這個(gè)不用多說(shuō)想必大家都已明白)

9.2、繼承:繼承可以解決類與類之間的冗余代碼。

我們把類當(dāng)中,所共有的成員,單獨(dú)的封裝一個(gè)類。 讓其他類來(lái)繼承這個(gè)類。

例如寫(xiě)了 Person 和 Student 2個(gè)類 ,Student類繼承了Person類,那么我們管Student類稱之為子類或者派生類。管Person類叫做父類或者基類。

子類繼承了父類的屬性和方法,并沒(méi)有繼承父類的私有字段。

注:子類并沒(méi)有繼承父類的構(gòu)造函數(shù),但是,子類會(huì)默認(rèn)的調(diào)用父類無(wú)參數(shù)的構(gòu)造函數(shù)。

為什么子類要去調(diào)用父類無(wú)參數(shù)的構(gòu)造函數(shù)?1)、我們可能會(huì)在父類無(wú)參數(shù)的構(gòu)造函數(shù)當(dāng)中對(duì)父類成員進(jìn)行初始化2)、因?yàn)樽宇愋枰褂酶割惖某蓡T,需要?jiǎng)?chuàng)建父類的對(duì)象。

(如果我們?cè)诟割愔行聦?xiě)了一個(gè)構(gòu)造函數(shù),這個(gè)時(shí)候會(huì)干掉父類那個(gè)默認(rèn)的無(wú)參數(shù)的構(gòu)造函數(shù))解決辦法:

1)、在父類中重新寫(xiě)一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)2)、顯示的調(diào)用父類有參數(shù)的構(gòu)造函數(shù)。使用關(guān)鍵字base

base跟this不一樣:base代表父類的引用;this代表的是該類的對(duì)象。

注:子類可以使用父類的成員,但是父類永遠(yuǎn)只能使用自己的成員。

9.3、繼承的兩大特性:

1)、單根性:一個(gè)子類只能繼承自一個(gè)父類。2)、傳遞性:父類中的成員,可以一代一代的向下傳遞。

10、里氏轉(zhuǎn)換:

兩句話:

1、子類可以賦值給父類(如果有一個(gè)地方需要一個(gè)父類作為參數(shù)我們可以傳遞一個(gè)子類)

eg:

class Person { public void PersonSayHello() { Console.WriteLine("我是父類"); } }

class Student : Person { public void StudentSayHello() { Console.WriteLine("我是學(xué)生"); } }

class Teacher : Person { public void TeacherSayHello() { Console.WriteLine("我是老師"); } }

Student s = new Student();

Person p = new Student();

2、如果父類中裝的是子類對(duì)象,那么可以將這個(gè)父類強(qiáng)值轉(zhuǎn)換為對(duì)應(yīng)的子類對(duì)象

eg:

Student s = (Student)p;

s.StudentSayHello();

10.1、is和as:is 和 as都表示類型轉(zhuǎn)換。

is:如果轉(zhuǎn)換成功,返回true,否則返回false

eg:

Person p = new Student();

if (p is Student)

{

  (Student)p).StudentSayHello();

}

else{  Console.WriteLine("轉(zhuǎn)換失敗");}

as:如果轉(zhuǎn)換成功,則返回對(duì)應(yīng)的對(duì)象,否則返回null

eg:

Person p = new Student();

Student s = p as Student; s.StudentSayHello(); Console.ReadKey();


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 闽清县| 曲靖市| 沂南县| 石狮市| 韶山市| 乌鲁木齐市| 和政县| 湖州市| 阿克苏市| 宜城市| 天水市| 远安县| 两当县| 祁阳县| 南岸区| 华蓥市| 浪卡子县| 游戏| 大厂| 溧阳市| 永安市| 三原县| 开封县| 博客| 马尔康县| 赤壁市| 景宁| 朝阳市| 婺源县| 西青区| 榆中县| 普安县| 枣庄市| 比如县| 临颍县| 庆元县| 江津市| 札达县| 五家渠市| 辛集市| 怀仁县|