黑馬程式設計師 物件導向的三個特徵

2021-07-04 10:34:09 字數 2567 閱讀 2979

封裝

•是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。

好處:•隱藏實現細節,提供公共的訪問方式

•提高了**的復用性

•提高安全性。

封裝原則:

•將不需要對外提供的內容都隱藏起來。

•把屬性隱藏,提供公共方法對其訪問。

比如如下乙個person類

class person 

public person(string name, int age)

//重寫tostring方法

public string tostring()

//提供公共的訪問方式get/set方法

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

}

繼承 繼承的由來:

當很多類有重複的屬性或者方法,那麼我們就把重複的部分抽取出來,封裝為乙個類,讓很多類來繼承這個單獨的類,重複的部分就不用寫了.

繼承的格式:

class b  extends  a  

class c  extends  a   

繼承的特點:

1.單繼承 

2.多層繼承 --構成了繼承體系  

如果描述這個體系,共性的屬性或者功能,看頂層 

如果使用這個體系的屬性和功能,使用 最低層  

繼承的注意事項:

1.父類中private修飾的成員,子類不能使用. 

private只能本類訪問

2.父類中構造方法,子類不能使用

構造方法名字跟類名一致

3.不要為了部分的功能去繼承

產品經理管程式設計師叫爹(不合適) 

繼承實現了類與類的關係

類中:成員變數:

變數名字不同:父類有的子類可以直接用 

變數名字相同:子類使用的時候自己的 

子類還想使用父類的成員,怎麼辦? 使用super  

super.成員 表示的是父類的成員 

this 和super的區別:

this:當前物件的引用 (建立物件)

super:父類儲存空間的標識 (理解為父類的引用)

區域性變數 成員變數 父類成員變數 使用順序?

區域性變數:num =10; 

成員變數: this.成員

父類成員: super.成員 

就近原則去找  

構造方法:不能繼承,但是我們可以呼叫父類的構造方法 

子類的構造方法預設呼叫 父類的無參構造.

因為構造方法是給類初始化資料的,子類如果想使用父類的成員變數的值,那麼必須用父類的先構造初始化.

注意事項:

1.父類中的成員變數被private修飾了,還得對外提供乙個公共的訪問方式.構造方法就是public的,那麼子類想構造,就可以直接呼叫父類的構造方法了!

2.父類中沒有無參構造 

方式一:使用super中的有參構造

方式二:使用this中的有參構造,前提是有參構造也得訪問到父類super有參構造中

3. super和this 必須在第一行,並且只能有乙個 

成員方法 : 都是可以被繼承的 

get()/set() 

show()/ call()

如果子類中寫了跟父類同名的方法,子類方法覆蓋父類方法,這叫方法重寫.

重寫和過載的區別:

重寫:子類和父類,方法宣告一模一樣,子類覆蓋父類方法

過載:本類中,方法名一樣,引數列表不同

重寫的應用:

子類可以增強父類的方法,通過 super.父類方法名增強. 

關鍵字:

final:被final修飾的東西,不能被改變.

可以修飾類 變數 方法  

多型某乙個事物,在不同時刻表現出來的不同狀態。

舉例:貓可以是貓的型別。貓 m = new 貓();

同時貓也是動物的一種,也可以把貓稱為動物。

動物 d = new 貓();

多型前提和體現

有繼承關係 

有方法重寫 

有父類引用指向子類物件

成員訪問特點

成員變數

編譯看左邊,執行看左邊

成員方法

編譯看左邊,執行看右邊

靜態方法

編譯看左邊,執行看左邊

所以前面說靜態方法不能算方法的重寫

多型的好處

提高了程式的維護性(由繼承保證)

提高了程式的擴充套件性(由多型保證)

多型的弊端

不能訪問子類特有功能

可以將型別強制轉換為子類型別,然後使用子類方法

**演示

class animaltest

}class animal

public static void sleep()

}class cat extends animal

public static void sleep()

}

黑馬程式設計師 物件導向(三)

1 多型概念 定義 某一類事物的多種表現形式。可以理解為事物存在的多種體現形態。2 多型 擴充套件性 多型的體現 父類的引用指向了自己的子類物件。父類的引用也可以接受自己的子類物件。如 father father new sun 多型的好處 多型的出現大大的提高了程式的擴充套件性。多型的前提 必須是...

黑馬程式設計師 物件導向

物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...

黑馬程式設計師 物件導向

物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。類的訪問修飾符有public和final。而成員的修飾符有public private protected static 成員變數和區域...