認識物件導向

2022-09-10 10:27:13 字數 2925 閱讀 2484

從語言方面出發:

什麼是面向過程的開發方式?

面向過程的開發方式主要的特點是:

面向過程有什麼缺點?(耦合度高,擴充套件力差。)

面向過程最主要是每一步與每一步的因果關係,其中a步驟因果關係到b步驟,a和b聯合起來形成乙個子模組,子模組和子模組之間又因為因果關係結合在一起,假設其中任何乙個因果關係出現問題(錯誤),此時整個系統的運轉都會出現問題。(**和**之間的耦合度太高,擴充套件力太差。)

螺栓螺母擰在一起:耦合度高嗎?這是耦合度低的,因為螺栓螺母可以再擰開。(它們之間是有介面的。)

螺栓螺母擰在一起之後,再用焊條焊接在一起,耦合度高嗎?這個耦合度就很高了。耦合度就是黏連程度。往往耦合度高的擴充套件力就差。

採用面向過程的方式開發一台計算機會是怎樣?這台計算機將沒有任何乙個部件,所有的都是融合在一起的。你的這台計算機是乙個實心兒的,沒有部件的。一體機。假設這台一體機的任何乙個「部位」出問題,整個計算機就不能用了,必須扔掉了。(沒有物件的概念。)

採用物件導向的方式開發一台計算機會是怎樣?記憶體條是乙個物件主機板是乙個物件cpu是乙個物件硬碟是乙個物件然後這些物件組裝在一起,形成一台計算機。假設其中cpu壞了,我們可以將cpu拆下來,換乙個新的。

面向過程有什麼優點?(快速開發)對於小型專案(功能),採用面向過程的方式進行開發,效率較高。不需要前期進行物件的提取,模型的建立,採用面向過程方式可以直接開始幹活。一上來直接寫**,編寫因果關係。從而實現功能。

什麼是物件導向的開發方式?

物件導向就是將現實世界分割成不同的單元,然後每乙個單元都實現成物件,然後給乙個環境驅動一下,讓各個物件之間協作起來形成乙個系統。

物件「張三」物件「香菸」物件「打火機」物件「吸菸的場所」然後將以上的4個物件組合在一起,就可以模擬乙個人的抽菸場景。其中「張三」物件可以更換為「李四」其中「香菸」也可以更換品牌。其中「打火機」也可以更換。其中「吸菸的場所」也可以更換。

採用物件導向的方式進行開發:耦合度低,擴充套件力強。

找乙個合適的案例。說明一下物件導向和面向過程的區別?蛋炒飯:雞蛋和公尺飯完全混合在一起。沒有獨立物件的概念。假設客戶提出新需求:我只想吃蛋炒飯中的公尺飯,怎麼辦?客戶提出需求,軟體開發者必須滿足這個需求,於是開始擴充套件,這個軟體的擴充套件是一場噩夢。(很難擴充套件,耦合度太高了。)

蓋飯:老闆,來乙份:魚香肉絲蓋飯魚香肉絲是一道菜,可以看成乙個獨立的物件。公尺飯可以看成乙個獨立的物件。兩個物件準備好之後,只要有乙個動作,叫做:「蓋」這樣兩個物件就組合在一起了。

假設客戶提出新需求:我不想吃魚香肉絲蓋飯,想吃西紅柿雞蛋蓋飯。這個擴充套件就很輕鬆了。直接把「魚香肉絲」物件換成「西紅柿雞蛋」物件。

面向過程主要關注的是:實現步驟以及整個過程。物件導向主要關注的是:物件a,物件b,物件c,然後物件abc組合,或者cba組合.....

任何乙個物件導向的程式語言都包括這三個特徵例如:python也有封裝 繼承 多型。j**a也有封裝 繼承 多型。

注意:j**a只是物件導向程式設計語言中的一種。除了j**a之外,還有其它很多很多的程式語言也是物件導向的。

物件導向當中最主要「一詞」是:物件。

什麼是類?類實際上在現實世界當中是不存在的,是乙個抽象的概念。是乙個模板。是我們人類大腦進行「思考、總結、抽象」的乙個結果。(主要是因為人類的大腦不一般才有了類的概念。)

類本質上是現實世界當中某些事物具有共同特徵,將這些共同特徵提取出來·形成的概念就是乙個「類」,「類」就是乙個模板。

明星是乙個類

什麼是物件?物件是實際存在的個體。(真實存在的個體)

宋小寶就是乙個物件姚明就是乙個物件劉德華就是乙個物件....

宋小寶、姚明、劉德華這3個物件都屬於「明星」這個類。

在j**a語言中,要想得到「物件」,必須先定義「類」,「物件」是通過「類」這個模板創造出來的。

這幾個術語你需要自己能夠闡述出來:類:不存在的,人類大腦思考總結乙個模板(這個模板當中描述了共同特徵。)物件:實際存在的個體。例項:物件還有另乙個名字叫做例項。例項化:通過類這個模板建立物件的過程,叫做:例項化。抽象:多個物件具有共同特徵,進行思考總結抽取共同特徵的過程。

類 --【例項化】--> 物件(例項)物件 --【抽象】--> 類

類是乙個模板,是描述共同特徵的乙個模板,那麼共同特徵包括什麼呢?

潘長江物件:名字:潘長江身高:165cm

打籃球:非專業的,自己玩兒呢,無所謂了學習:考試80分

姚明物件:名字:姚明身高:240cm打籃球:nba專業球員,打籃球非常棒學習:考試100分

共同特徵包括哪些?名字、身高都屬於名詞(狀態特徵)打籃球、學習都屬於動詞(動作特徵)

類 = 屬性 + 方法屬性**於:狀態方法**於:動作

public class 明星類

學習方法()

}

我們為什麼要做軟體開發?

軟體開發既然是為了解決現實世界當中的問題,那麼首先j**a軟體必須能夠模擬現實世界。

其實軟體是乙個虛擬的世界。這個虛擬的世界需要和現實世界一一對應,這才叫模擬。

6.1、怎麼定義乙個類,語法格式是什麼?[修飾符列表] class 類名

6.2、為什麼屬性是「以」變數的形式存在的?假設我們要描述乙個學生:學生包括哪些屬性:學號: 110姓名:"張三"性別:'男' (true/false)住址:"深圳寶安區"答案:是因為屬性對應的是「資料」,資料在程式中只能放到變數中。結論:屬性其實就是變數。

變數的分類還記得嗎?變數根據出現位置進行劃分:方法體當中宣告的變數:區域性變數。方法體外宣告的變數:成員變數。(這裡的成員變數就是「屬性」)

初次認識物件導向

抽象 把乙個具體問題抽象化 封裝 把屬性和方法封裝到類中 繼承 乙個類可以繼承另一類 多型 給不同的物件傳送同乙個訊息的時候,這些物件會根據這個訊息分別給出不同的反饋 類 js中的類本質還是乙個函式,是抽象的,不具體的。function person newperson 此時person是乙個類 p...

物件導向的認識

技巧介紹 1.常量轉變成常型別 常量例項 define level error error define level warning warning define level info info define level trace trace 常型別例項 class level 2.變數轉成屬性 ...

物件導向的基礎認識

物件導向程式設計 oop 是我們程式設計的一項基本技能,php5對oop提供了良好的支援。如何使用oop的思想來進行php的高階程式設計,對於提高php程式設計能力和規劃好web開發構架都是非常有意義的。1 什麼是類?具有相同屬性 特徵 和方法 行為 的一系列個體的集合,類是乙個抽象的概念。2 什麼...