面向對象編程

構造方法和析構方法


構造方法


類的構造方法

Woman類后面的“()”;其實指的就是構造方法。

只要你想要創建類或結構的實例,必須調用它的構

造方法。

構造方法負責對類里面的字段進行初始化。


1.構造方法必須類重名;

2.構造方法沒有返回值,但可以有參數;

3.構造方法可以有多個重載;

4.不帶參數的構造方法稱為默認構造;



1.構造方法的本質是一個構造器,是為了類的實例化而產生;

2.構造方法是一種特殊的方法,它沒有返回值,它必須與類重名,它只能在初始化的時候被系統自動執行,外部不能調用;

3.構造方法可以不顯示的寫,系統會默認的為你的類添加一個無參構造方法;

4.如果講構造函數設為private,則不能被外部實例化;

5.如果類里面有帶有參數的構造方法,想調默認構造時,必須把默認構造顯示的寫出來;


結構體的構造方法

public struct position{

????public int x;

????public int y;

//結構體的自定義構造

public position (int x , int y){

????this.x=x;

????this.y=y;

????}

}

默認構造方法不用寫默認構造顯示,也有默認構造。

析構方法


析構方法用于析構類的實例。

構造方法用戶實例化,分配內存空間,而析構方法正好與它相反,用于釋放內存空間。

一般在某個功能結束的時候,做某些事情。

class ?Car

{

????????????????????????~Car( )????????// destructor 寫在類名的前面

????????{

? ??????????????????????????// cleanup statements...

????????}

}


1.不能在結構中定義析構方法,只能對類使用析構方法。

2.一個類只能有一個析構方法。

3.無法繼承或重載析構方法。

4.無法調用析構方法。

5.它們是被自動調用的。

6.析構方法既沒有修飾符,也沒有參數。


面向對象

面向對象是把構成問題事務分解成各個對象,創建對象后用

對象調用各自方法以達到解決問題的目的;


面向對象特性:封裝、繼承、多態

OOP(面向對象編程)達到軟件工程的三個主要目標:

重用性、靈活性、擴展性


封裝

封裝是實現面向對象程序設計的第一步,封裝就是將數據或函數等集合在一個個的單元中(我們稱之為類)。

封裝的意義在于保護或者防止代碼(數據)被我們無意中破壞。

封裝就是對類成員的再次包裝,這樣寫更規范。


繼承


繼承用于創建可重用、擴展和修改在其他類中定義的行為的新類。 其成員被繼承的類稱為“基類”,繼承這些成員的類稱“派生類”。派生類只能有一個直接基類。 但是,繼承是可傳遞的。 如果 ClassB 派生出 ClassC,ClassA 派生出ClassB,則 ClassC 會繼承 ClassB 和 ClassA 中聲明的成員。

由繼承的關系我們知道,基類有的,派生類都有;

派生類有的,基類可能沒有。

即:派生類可以賦值給基類,而基類不能賦值給派生類。


指定基類的方法

通過在派生的類名后面追加冒號和基類名稱,可以指定基類。


1.派生類獲得基類的所有方法、字段、屬性和事件。

2.繼承具有傳遞性。

3.派生類可以賦值給基類,但是基類不能賦值給派生類。

多數情況 對象總是寫在子類里面,不會再基類里創建太多東西。

派生類寫構造需要把基類的內容也補充進去

例子:public classname(int a,int x,int y,long z): base ( x,y,z)//x,y,z是基類的內容。

this a=a;


里氏轉換

轉換原則一:子類對象可以直接賦值給父類對象。

作用:消除子類間的差異。把其類型轉換為統一的數據類型,這樣就可以寫出一套通用的代碼,這樣即可以最大限度的重用代碼,同時也提高了程序開發的效率;

轉換原則二:父類轉換成子類,這樣就可以調用子類里面的公有成員了。

is as關鍵字


?多態


當派生類從基類繼承時,它會獲得基類的所有方法、字段、 屬性和事件。 派生類可以選擇:

?? 繼承最接近的基類方法而不重寫它

?? 重寫基類中的虛擬成員。?

? 定義隱藏基類實現的成員的新非虛實現?

方法替換

當派生類繼承基類后,可以定義隱藏基類實現的成員的新非虛實現。通常,我們稱這為“方法替換”。

關鍵字:new


虛函數 重寫

相對比于方法替換

關鍵字 virtual修飾方法

override重寫子類里的方法


當采用虛方法重寫后,子類方法不會再含有父類方法的特征,如果需要調用原本父類的特征,就需要一個新的關鍵字

base?

用法:重寫時

pubic class A{

? ??????????public virtual void Aff{


? ??????????}

}



public class A:B

{

? ??????public override void Add(){

? ? ? ? ? ? ? ? base.Aff();

? ? ? ? ? ? ? ? //聲明附加的方法

? ??????}

}

重寫就是多態的表現形式

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容