1、物件初始化器:class1 p1 = new class1() ; 2、
屬性封裝了字段。方法的多個引數封裝成乙個物件。將一堆**封裝到乙個方法中。將一些功能封裝到幾個類中。將一些具有相同功能的**封裝到了乙個程式集中,並且對外提供統一的訪問介面。
3、繼承的好處:一、**重用。二、多型。 4、
繼承的單根性:乙個類只能繼承自乙個父類,不能繼承多個父類。c#中任何乙個類都是繼承自object類。如果乙個類沒有顯示繼承自任何類,則預設繼承自object類。繼承的傳遞性:如果顯示的指定了當前類繼承自某個類,則將覆蓋預設繼承的object類。superman繼承了object類,這時superman中就有了object類中的4個方法(tostring();gettype(),gethashcode(),equals()),然後person又繼承了superman,這時person會將superman中的那四個方法再繼承下來,相當於person類間接從object中繼承下來。
5、繼承時建構函式的問題:繼承的時候建構函式不能被繼承;子類的建構函式,會預設去呼叫父類中無引數的建構函式。修改錯誤方法:1在父類中加乙個無參的建構函式;2不修改父類,而是在子類的建構函式後面通過:base(),顯示的去呼叫父類的某個建構函式。
6、base作用:1在子類中呼叫父類的建構函式。this作用:在當前類的建構函式後面通過:this()來呼叫當前類自己的建構函式。
7、 集合初始化器: listlist = new list() ;
物件初始化器: person p = new person() ;
8、在一般情況下,如果子類繼承了父類的成員,那麼在子類中,通過this.成員或者base.成員都是訪問的是一樣的。除非父類中的成員子類繼承後又重寫了。
9、訪問修飾符:
private:私有訪問修飾符,只能在當前類內部來訪問。
protected:受保護的訪問修飾符,只能在當前類內部,以及當前類的所有子類內部訪問得到。
internal:internal訪問修飾符,表示只能在當前程式集內部訪問。
public:在任何地方都可以訪問得到。
protected internal:相當於同時具有protected和internal的許可權。
protected與internal沒有可比性。假如不在同乙個程式集中,但是依然存在繼承關係,那麼protected訪問修飾符型別依然可以訪問。
類的訪問修飾符只有是這兩種:public,internal。
10、關於繼承中的「私有成員」是否被繼承的問題:趙老師觀點,私有成員沒有被繼承。1雖然子類繼承父類後,在建立子類物件的時候,父類的那些私有成員也被分配了記憶體。2繼承只是物件導向中的乙個概念,目的是為了子類使用(多型,**重用),私有成員即使繼承了,子類也不能訪問,所以在物件導向中,繼承了但不能訪問,沒有意義。
11、可訪問性不一致,子類的訪問修飾符不能比父類高。類中屬性或字段的訪問級別不能比對應的型別的訪問級別高。方法的訪問級別不能比方法的引數和返回值的訪問級別高。
12、對擴充套件開放,對修改關閉——開放封閉原則。
13、將父類中的show()方法標記為virtual;2當乙個方法是虛方法時候,那麼這個方法在子類中就可以用override被重寫了。子類繼承父類之後,可以直接使用該方法,也可以不重寫該方法;3子類如果要重寫父類的方法,則需要在子類show方法前加乙個override關鍵字。子類重寫父類的方法,必須並且只能用override關鍵字。
14、靜態成員,靜態類。1呼叫靜態方法的時候必須通過類名直接來呼叫,不能通過物件來呼叫。也就是說使用靜態成員不需要例項化物件。2靜態成員會在整個應用程式退出時候才釋放資源,所以可以在整個應用程式中共享資料。3靜態類不能被例項化,不能被繼承。4由於靜態成員會在退出時候才釋放資源,所以盡量避免寫靜態欄位和靜態屬性,最好只寫靜態方法。5當給乙個普通類新增靜態欄位後,系統會預設為該類生成乙個靜態建構函式(靜態建構函式不能有訪問修飾符,並且不能帶引數。)6靜態建構函式,只會在第一次使用靜態類之前,執行一次,並且只會執行一次。 15
、什麼情況下要將乙個類標記為靜態類?一般情況是,當這個類是個工具類,裡面都是方法,為了讓使用者呼叫的時候方便,不需要例項化物件,這時候可以將該類標記為靜態類,此時該類中只能包含靜態成員,不能包含例項成員。比如convert,math,file。
16、什麼情況下組要在乙個普通類中編寫乙個靜態成員,而這個類不能標記為static? 當這個類需要被例項化的時候,如果這個類中有乙個成員是所有物件都共享的資料,這時候可以將該類中的這個成員標記為靜態的,但是該類還是乙個例項類。
17、靜態類不能被其他類繼承,靜態類只能繼承自object類(靜態類不能繼承自其他類)。靜態類不能實現任何的介面,因為介面中的成員都是例項成員。
18、sealed:密封類,不能被繼承。sealed關鍵字表示類不能被繼承。靜態類的本質abstract+sealed。靜態類不能被例項化:abstract;靜態類不能被繼承:sealed。禁止子類重寫父類的方法。
19、 繼承(多型)、靜態本身就是相反的 。
20、如何把乙個字串轉換成乙個列舉型別:(自己定義的列舉型別)(enum.parse(typeof(自己定義的列舉型別),"待轉換的字串")。比如:(gender)(enum.parse(typeof(gender),"待轉換的字串")
10月29日10月30日
蜷縮著,蜷縮著,便是四年。丟去的是光陰,丟不去的是你。接連幾天看了一部網路 很久沒這樣看網路 了,原因是室友在看網路 的網劇 實在無聊就去翻了翻 結果 後面 癮就來了 3w 的txt檔案一天晚上看到了3點 第二天起來 搬工作室 頭也沒洗 任自己邋遢 狂躁 第二天晚上看到了1點 早上起來接著看 終於 ...
12月30日 多雲
年末了,還有1天多就跨入2007年。今年才有這種感覺 從11月底開始,就會有很多 不幸 的事情發生。不知道 不幸 這兩個詞是否準確,是不是新年到了就要把去年的 賬 結掉。或許是冬天特別的冷,過不了冬的始終過不了冬。有事沒事都不開心,因為痛苦經常被思緒不經意的觸碰。這幾天一直是後弦的那幾首歌在陪我 東...
11月30日總結
python 直譯器可以作為乙個簡單的計算器,您可以在直譯器裡輸入乙個表示式,它將輸出表示式的值。表示式的語法很直白 和 和其它語言 如pascal或c 裡一樣。例如 2 24 50 5 620 50 5 6 45.0 8 5 總是返回乙個浮點數1.6 注意 在不同的機器上浮點運算的結果可能會不一樣...