Python程式設計思想__面向物件&面向過程
面向物件&面向過程
什麼是面向過程?
自上而下順序執行,逐步求精;
其程式結構是按功能劃分為若干個基本模組,這些模組形成一個樹狀結構;
各模組之間的關係儘可能簡單,在功能上相對獨立;
每一模組內部均是由順序、選擇和迴圈三種基本結構組成;
其模組化實現的具體方法是使用子程式。
程式流程在寫程式時就已決定。
什麼是面向物件?
把資料及對資料的操作方法放在一起,作為一個相互依存的整體——物件。
對同類物件抽象出其共性,形成類。
類中的大多數資料,只能用本類的方法進行處理。
類通過一個簡單的外部介面與外界發生關係,物件與物件之間通過訊息進行通訊
程式流程由使用者在使用中決定。
理解面向物件
面向物件是相對面向過程而言
面向物件和麵向過程都是一種程式設計思想
面向過程
1. 強調的是功能行為
2. 關注的是解決問題需要哪些步驟
面向物件
1. 將功能封裝進物件,強調具備了功能的物件
2.關注的是解決問題需要哪些物件
理解面向物件-把大象裝進冰箱
面向物件:把一個人看成一個物件,這個人 可以開啟冰箱,可以把大象裝進冰箱,可以關冰箱面向物件更加符合人的思考習慣,從執行者變成了指揮者
面向過程和麵向物件
面向過程:
就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以了。
面向物件:
是把構成問題的事務分解成各個物件,每個物件都有自己獨立的屬性和行為, 物件可以將整個問題事務進行分工, 不同的物件做不同的事情, 這種面向物件的程式設計思想由於更加貼近實際生活, 所以被計算機語言廣泛應用。
面向過程和麵向物件-設計五子棋遊戲
面向過程的設計思路:
分析問題的步驟:
開始遊戲 --> 黑子先走 --> 繪製畫面 --> 判斷輸贏 --> 輪到白子 --> 繪製畫面 --> 判斷輸贏 --> 返回步驟2到7、最後輸出輸贏的結果。把上面每個步驟用分別的函式來實現,問題就解決了.
面向物件的設計則是:從另外的思路來解決問題: 整個五子棋可以分為 1、黑白雙方(這兩方的行為是一模一樣的),2、棋盤系統(負責繪製畫面),3、規則系統(負責判定諸如犯規、輸贏等). 第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子佈局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類物件(規則系統)來對棋局進行判定.
面向過程和麵向物件-設計五子棋遊戲
兩種不同的思路都可以實現相同的功能, 但是面向物件的實現方式更加貼近人類生活 (比如: 公司的各個部門, 學校的各個院校等). 在程式的程式設計中我們把專案中的每個不同的個體看成整體功能的每一個物件, 物件中再包含其屬性和方法, 讓物件對其屬性和方法進行封裝, 這樣也更加利於後期擴充套件和維護. 現在幾乎所有的語言都支援面向物件的程式設計思想.
面向物件的程式語言
面向過程的語言: C語言等.
面向物件的語言: C++, java, C#, OC, JS, Swift等.面向物件的基本特徵
面向物件程式設計(OOP)的3個基本特徵是:封裝、繼承、多型
封裝:將屬性和方法(資料和功能)封裝在一起;
繼承:繼承是指這樣一種能力:它可以使用現有類的功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。
多型:允許讓父類的指標分別指向不同的子類, 呼叫不同子類的同一個方法, 會有不同的執行效果
面向物件的屬性和方法
物件的組成
屬性(物件的屬性) ——變數:狀態、靜態的
方法(物件的行為) ——函式:過程、動態的
面向物件-小狗吃食
示例: 小狗吃食(聞一聞smell、舔一舔lick、咬一咬bite)
分別採用面向過程和麵向物件來分析
面向過程 : 先聞一聞, 然後再舔一舔, 最後再咬一咬 (注重過程)
面向物件 : 小狗是一個物件, 它可以聞一聞食物, 可以舔一舔食物, 可以咬一咬食物. (不注重過程, 注重物件)
知識整理不易,喜歡就點贊支援鼓勵一下,感謝。