05 物件導向的解析

2021-08-17 03:46:39 字數 1339 閱讀 6810

1程式語言的發展

1.1面向機器的語言:計算機在設計之初就要確定好每一條指令對應的線路邏輯,即需要針對不同的機器編寫不同的指令(例如01011100的指令),這樣的語言是不利於編寫和閱讀的。後來出現的組合語言,本質上還是屬於機器語言,只是組合語言用易於記憶的的符號來代替二進位制指令,但還是要根據不同的機器來編寫不同的**。我們習慣上把這兩種歸納為機器語言,這屬於低階語言。

1.2面向過程的語言:20世紀60年代出現了面向過程的語言,入c語言、fortan語言等,這類語言把**和組織成被稱為過程或函式的塊。每過塊的目標是為了完成某個任務。在使用這些語言編寫的**指令時,不必考慮機器的細節,只要按照該語言規定的語法要求去編寫**。但隨著軟體工程的發展,面向過程的語言也逐漸暴露了自身的不足,人們嚮往能夠編寫出易於維護,易於擴充套件和重複易用,以及符合人類的邏輯思想的程式**,由於以上種種所以出現了物件導向的語言。面向過程語言和物件導向語言本質上的不同在於「物件」這一概念,在現實生活中,行為往往歸納於某個具體的「主體」所擁有,即「物件」。

1.3物件導向的語言:隨著計算機硬體裝置的提高,使得人們可以忽略基於物件導向語言所需消耗的記憶體和對cpu的要求。基於物件的程式設計更加符合人的思維模式(物件的概念),編寫的出易於維護,易於擴充套件和易復用的程式**。

2     物件導向語言的特點:

2.1封裝性:一種將抽象性函式的實作細節部分包裝、隱藏起來的方法。物件導向的核心思想之一就是將資料(屬性)和對資料的操作(方法)封裝在一起,通過抽象,即從具體的例項中抽取共同的性質形成一般的概念,比如類(抽取某類事物所擁有的特點,封裝在乙個類裡)的概念。例如乙個手機具有螢幕、cpu、電池等等,我們把其抽出來作為屬性;手機具有上網,打**的行為,我們把其抽取出來作為方法。

2.2繼承性:繼承體現了一種先進的程式設計模式,子類可以繼承父類的屬性和功能,既繼承了父類所具有的資料和對資料上的操作,同時又可以增添了子類所獨有的資料和對資料上的操作。即繼承可以使得子類別具有父類別的各種屬性和方法,而不需要再次編寫相同的**。在令子類別繼承父類別的同時,可以重新定義某些屬性,並重寫某些方法,即覆蓋父類別的原有屬性和方法,使其獲得與父類別不同的功能。

2.3多型:物件導向有兩種意義上的多型,其一是操作名稱的多型,即有多個操作具有相同的名字,但這些操作所接收的訊息型別必須不同。所謂操作名稱的多型性,是指可以象操作傳遞不同的訊息,一邊讓物件根據相應的訊息來產生一定的行為。其二與繼承有個的多型,是指同乙個操作被不同型別的物件呼叫時可能產生不同的行為。一種叫聲,如果是貓則發出喵喵喵的叫聲;如果是狗,則會發出汪汪汪的叫聲。

Python物件導向05 物件導向封裝案例 II

封裝 封裝是物件導向程式設計的一大特點 物件導向程式設計的第一步 將屬性和方法封裝到乙個抽象的類中 外界使用類建立物件,然後讓物件呼叫方法物件方法的細節都被封裝在類的內部乙個物件的屬性可以是另外乙個類建立的物件 需求 士兵許三多有一把ak47士兵可以 槍能夠發射子彈 槍裝填裝填子彈 增加子彈數量sh...

javase 05 物件導向

一.建構函式的定義與作用 1.函式的名次與類同名 2.沒有返回值型別 3.不能使用retrun 關鍵字來返回乙個值 注意 沒有返回值型別宣告不等同於 void void也是一種返回值的宣告 如果寫上了void,那就是乙個普通的方法啦!二.建構函式的具體應用 1.建構函式也一般的函式一樣,都是可以被過...

物件導向ooday05

1 超型別的引用指向派生類的物件 2 能點出來什麼,看引用的型別 1 發生在父子類中,方法名相同,引數列表相同,方法體不同 2 重寫方法被呼叫時,看物件的型別 1 重寫 發生在父子類中,方法名相同,引數列表相同,方法體不同 執行期 繫結,看物件的型別 2 過載 發生在同一類中,方法名相同,引數列表不...