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.隱藏從父類那里繼承過來的同名成員。
隱藏的后果就是子類調用不到父類的成員
繼承
繼承的構造函數
值類型和引用類型
字符串的不可變性
、