C#基礎第九天(面向對象)

1、命名空間

可以認為類是屬于命名空間的。

如果在當前項目中沒有這個類的命名空間,需要我們手動導入這個類所在的命名空間。

1.用鼠標去點

2.alt+shift+f10

3.記住命名空間,手動的去引用

2、在一個項目中引用另一個項目的類

1.添加飲用

2.引用命名空間

3、值類型和引用類型

區(qū)別:

1.值類型和引用類型在內存上存儲的地方不一樣。

2.在傳遞值類型和引用類型的時候,傳遞方式不一樣。

值類型我們稱之為值傳遞,引用類型稱為引用傳遞。

我們學的值類型和引用類型

值類型:int.double.bool.char.decimal.struct.enum

引用類型:string.自定義類.數組

存儲

值類型的存儲在內存棧中

引用類型存儲在內存的堆中

3、字符串

1.字符串的不可變性

當你給一個字符串重新賦值之后,老值并沒有銷毀,而是重新開辟一塊空間存儲新值。

當程序結束后,gc掃描整個內存,如果發(fā)現(xiàn)有的空間沒有被指向,則立即把它銷毀。

2.我們可以講字符串看做是插入類型的一個只讀數組。

tochararray();將字符串轉換為char數組

new string(char[]chs):能夠將char數組轉換為字符串

4、字符串提供各種方法

1.length:獲得當前字符串中字符的個數

2.toupper():將字符串轉換成大寫

3.tolower():將字符串轉換成小寫

4.equals(lessontwo,stringcomparison。ordinalignorecase):比較兩字符串,忽略大小寫

5.split()分割字符串,返回字符串類型的數組

6.substring():解決字符串,在截取的時候包含要截取的那個位置

7.indexof():判斷某個字符串中第一次出現(xiàn)的位置,如果沒有返回值-1.值類型和引用類型在內存上存儲的地方不一樣

8.LastIndexOf():判斷某個字符串在字符串中最后一次出現(xiàn)的位置,如果沒有同樣返回-1

9.StartsWith():判斷以....開始

10.EndsWith():判斷以...結束

11.Replace():將字符串中某個字符串替換成一個新的字符串

12.Contains():判斷某個字符串是否包含指定的字符串

13.Trim():去掉字符串中前后的空格

14.TrimEnd():去掉字符串中結尾的空格

15.TrimStart():去掉字符串中前面的空格

16.string.IsNullOrEmpty():判斷一個字符串是否為空或者為null

17.string.Join():將數組按照指定的字符串連接,返回一個字符串

5、繼承

我們可能會在一些類中寫一些重復成員,我們可以將這些服用成員單獨封裝到一個類中,作為這些類的父類。

student.teacher.diver. ? ? ? ? ? ? ? ? ? 子類 ?派生類

person ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?父類 ? 基類

子類繼承父類,那么子類從父類那里繼承過來了什么

首先,子類繼承了父類的屬性和方法,但是子類并沒有繼承父類的私有字段

問題:子類有么有繼承父類的構造函數

答:子類并沒有繼承父類答構造函數,但是子類默人會調用無參的構造函數,

創(chuàng)建父類對象,讓子類可以使用父類中的成員

所以,如果在父類中重新寫一個有參數的構造函數之后,那個無參數的就被干掉了

子類久調用不到,所以子類會報錯。

解決辦法

1.在父類中重新寫一個無參的構造函數

2.在子類中顯示的調用父類的構造函數,使用關鍵字 ?base()

6、繼承的特性

1.繼承的單根性:一個子類只有一個父類

2.繼承的傳遞性

7、查看類圖

8、object是所有類的基類

9、new關鍵字

1.創(chuàng)建對象

2.隱藏從父類那里繼承過來的同名成員。

隱藏的后果就是子類調用不到父類的成員

繼承

繼承的構造函數



值類型和引用類型

字符串的不可變性

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容