設計模式——面向對象基礎

這篇博客的意義就是複習一下面向對象的一些基礎內容,以幫助我更好的學習設計模式。

概念

面向對象(Object Oriented)是軟件開發方法。面向對象的概念和應用已超越了程序設計和軟件開發,擴展到如數據庫系統、交互式界面、應用結構、應用平臺、分佈式系統、網絡管理結構、CAD技術、人工智能等領域。面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。

類與實例

對象(Object)是一個自包含的實體,用一組可識別的特性和行爲來標識。

類是具有相同的屬性和功能的對象的抽象的集合。
實例就是一個真實的對象。實例化就是創建對象的過程,使用new關鍵字來創建。

舉個例子來說吧:動物是一個大類,而狗就是它的一個對象;一個銀行帳戶(Account)是一個class的話,可以把他的利息設爲類變量(static float interest),而持有人是實例變量(String name), 這樣只要改變 Account.interest就可以把所有人的利息都該了,而持有人的姓名則是屬於單獨的帳戶的。

在類中需要注意:

       1.類名稱的首字母要大寫,多個單詞則各個首字母大寫;

       2.對外公開的方法需要用‘public’修飾符。

構造方法與方法重載

構造方法又稱構造函數,其實就是對類進行初始化。構造方法與類同名,無返回值,也不需要void,在new時候調用。

方法重載提供了創建同名的多個方法的能力,但這些方法需使用不同的參數類型。

方法重載時需要注意:

    1.兩個方法必須要方法名相同,但參數類型或個數必須要有所不同;
    2.方法重載可在不改變原方法的基礎上,新增功能。

封裝

每個對象都包含它能進行操作所需要的所有信息,這個特性稱爲封裝。比如一臺電視機、風扇……的能夠完成所有操作的東西。
優點:

       1.良好的封裝能夠減少耦合;

       2.類內部的實現可以自由的修改;

       3.類具有清晰的對外接口。

繼承

對象的繼承代表了一種‘is-a’的關係,如果兩個對象A和B,可以描述爲‘B是A’,則表明B可以繼承A。還可以理解爲是對被繼承者的特殊化,因爲它除了具備被繼承者的特性外,還具備自己獨有的個性。

其實我認爲這部分內容是很好理解的,比如人與教師、車與轎車、魚與比目魚……,這些例子都是說明了繼承的關係。

多態

多態是指同樣的信息被不同類型的對象接收時導致完全不同的行爲,表示不同的對象可以執行相同的動作,但要通過它們自己的實現代碼來執行。

特點:

       1.子類以父類的身份出現;

       2.子類在工作時以自己的方式來實現;

       3.子類以父類的身份出現時,子類特有的屬性和方法不可以使用;

       4.父類必須將該成員聲明爲虛擬的(這是爲了使子類的實例完全接替來自父類的類成員);

       5.子類可以選擇使用override關鍵字,將父類實現替換爲它自己的實現。

接口

接口是把隱式公共方法和屬性組合起來,以封裝特定功能的一個集合。一旦類實現了接口,類就可以支持接口所指定的所有屬性和成員。比如燈的開關就是一個接口,它讓燈與外界連接起來。

特點:

    1.聲明接口在語法上與聲明抽象類完全相同;

    2.實現接口的類就必須要實現接口中所有的方法和屬性;

    3.一個類可以支持多個接口,多個類也可以支持相同的接口。
規範:

    接口的命名,前面要加一個大寫字母”I",這是規範。
注意:

    接口要用interface聲明,而不是class,接口名稱前要加“I",接口中的方法或屬性前面不能

    有修飾符、方法沒有方法體。 
學無止境,你需要不斷地練習實踐纔可能真正成爲優秀的軟件工程師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章