黑馬程式設計師 四 物件導向

2021-06-20 04:09:37 字數 2864 閱讀 6629

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! -----------------------

人們解決現實中問題的一種思維模式,思想

萬物皆物件

日後開發:當你想完成乙個功能的時候,找有沒有可以完成這個功能的物件

如果有的話,就建立這個物件,指揮這個物件做事情

如果沒有,就自己建立物件,指揮這個物件做事情。

想要更好的理解物件導向,首先要了解什麼是類?什麼是物件?以及類與物件之間的關聯關係!

是描述現實中物件的抽象,類就是描述物件的。

比如:動物、人、筆。。。。都是一些類,是不具體的,抽象化的

物件就是現實生活中,確確實實存在的那個個體

比如:狗,小明,鋼筆。。。。這些都是一些具體的東西。

而物件都有自己的屬性和行為(方法),比如人:具有:姓名、年齡、性別等屬性,

具有:睡覺、吃飯、學習等行為。

比如:建築物的圖紙和建築物實物的關係,通過乙個類可以建立多個物件。

其實物件導向就是採用「現實模擬」的方法和開發程式,物件導向技術利用「物件導向的思想」去描述物件導向的

世界,實現啦虛擬世界與現實世界的一致性,非常符合人們的思維習慣,使得客戶和軟體開發人員之間內部

交流更加順暢,同時還帶來了**重用性高、可靠性高等優點,大大提高了軟體尤其是大型軟體的設計和開

發效率。

物件導向的核心設計是封裝啦屬性和方法(行為)的類,以資料為中心,實現啦類級別的**重用,物件導向

因為採用了類,具有繼承和多型特性,可以進一步重用**和簡化程式設計,而面向過程中沒有繼承和多型特性。

面向過程的主要核心概念是函式,以功能為中心,實現啦函式級別的**重用。

物件導向設計程式:

物件導向設計的過程就是抽象的過程。

第一步:發現類

第二步:發現類的屬性

第三步:發現類的方法

就是將類的狀態資訊隱藏在類的內部,不允許被外部的程式直接訪問,

而是必須通過該類對外提供的方法來實現對隱藏資訊的操作和訪問。

封裝類的具體步驟:

1.修改類屬性的可見性來限制對屬性的訪問。

2.為每個屬性,建立一對對外公開的(getter)和(setter)方法

3.在getter和setter方法內部還可以加入對屬性的控制語句

提到封裝,必須想到方法間的訪問修飾符,用來限定屬性和方法的訪問範圍。它們之間的區別如下:

private :成員方法和成員變數只能在本類內方訪問,具有類可見性

預設:    成員方法和成員變數只能被同乙個包裡面的類訪問,具有包可見性

protected:可以被同乙個包中的類訪問,被同乙個專案不同包中的子類訪問。

public :    可以被同乙個專案中的所有類訪問,具有專案可見性,這是最大的訪問許可權

二、繼承(inheritance):

多個類中存在相同屬性和行為時,將這些內容抽取到 單獨乙個類中,

那麼多個類無需再定義這些屬性和行 為,只要繼承單獨的那個類即可。

子類繼承父類,通過extends

語法格式:

[修飾符] class 類名 extends 父類名

繼承的好處

1. 繼承的出現提高了**的復用性。

2.繼承的出現讓類與類之間產生了關係,提供了多型的前提。

定義:某一類事物的多種存在形態,是具有表現多種形態的能力的特徵,更加專業的說法就是,同乙個實現介面,使用不同的例項而執行不同的操作。

體現:

父類或者介面的引用指向或者接收自己的子類物件。

作用:

多型的存在提高了程式的擴充套件性和後期可維護性

前提:1.需要存在繼承或者實現關係

2. 要有覆蓋操作

子類到父類的轉換(向上轉型)

1.講乙個父類的引用指向子類物件,成為向上轉型。自動進行型別轉換。

2.此時通過父類的引用變數呼叫的方法時子類覆蓋的或者繼承的父類的方法,而不是父類的方法。

3.此時通過父類引用變數無法呼叫子類特有的方法。

父類到子類的轉換(向下轉型)

講乙個子類的物件的父類引用賦給乙個子類的引用,稱之為向下轉型。這時候必須進行強制型別轉換。

向下轉型後,可以呼叫子類特有的方法。

介面

介面和類、抽象類是乙個層次的概念,命名規則都相同。

小細節

介面中所有的方法都是抽象的

所有的成員必須公共的,預設的訪問修飾符也是共有的

介面中沒有構造方法,故不能建立物件

介面中的變數都是常量

繼承和實現有區別

類與類之間單繼承

類與介面之間多實現  class d extends c implements a,b

繼承父類後,父類中的非抽象方法,子類可以直接使用啊

實現後,必須覆蓋所有抽象方法

多實現,避免了單繼承的侷限性

抽象類和介面的區別

----------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

黑馬程式設計師 物件導向

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

黑馬程式設計師 物件導向

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

黑馬程式設計師 物件導向思想

物件導向的思想 誰有資料,誰就對外提供操作這些資料的方法。例子1 人在黑板畫圓 public class circle private int radius 1 public circle circlecenter,radius public void draw int circlecenter,i...