(一)Python入門-6面向對象編程:01面向對象和麪向過程區別-對象的進化

面向對象:

  面向對象(Object oriented Programming,OOP)編程的思想主要是針對大型 軟件設計而來的。面向對象編程使程序的擴展性更強、可讀性更好,使的編程能夠像搭 積木同樣簡單。編程

  面向對象編程將數據和操做數據相關的方法封裝到對象中,組織代碼和數據的方式 更加接近人的思惟,從而大大提升了編程的效率。數組

  Python徹底採用了面向對象的思想,是真正面向對象的編程語言,徹底支持面向 對象的基本功能,例如:繼承、多態、封裝等。數據結構

  Python中,一切皆對象。咱們在前面學習的數據類型、函數等,都是對象。編程語言

  注:Python支持面向過程、面向對象、函數式編程等多種編程範式。函數式編程

一:面向對象和麪向過程區別

 面向過程(Procedure Oriented)思惟函數

  面向過程編程更加關注的是「程序的邏輯流程」,是一種「執行者」思惟,適合編寫小 規模的程序。 面向過程思想思考問題時,咱們首先思考「怎麼按步驟實現?」並將步驟對應成方法, 一步一步,最終完成。 這個適合簡單任務,不須要過多協做的狀況下。好比,如何開車? 咱們很容易就列出實現步驟:學習

    1. 發動車 2. 掛擋 3.踩油門 4. 走你設計

  面向過程適合簡單、不須要協做的事務。 可是當咱們思考比較複雜的問題,好比「如何造車?」,就會發現列出1234 這樣的步驟,是不可能的。那是由於,造車太複雜,須要不少協做才能完成。此時面向對象思想就應運而生了。對象

 面向對象(Object Oriented)思惟blog

  面向對象更加關注的是「軟件中對象之間的關係」,是一種「設計者」思惟,適合編寫 大規模的程序。 面向對象(Object)思想更契合人的思惟模式。咱們首先思考的是「怎麼設計這個事物?」 好比思考造車,咱們就會先思考「車怎麼設計?」,而不是「怎麼按步驟造車的問題」。這就是思惟方式的轉變。面向對象方式思考造車,發現車由以下對象組成:

    1. 輪胎 2. 發動機 3. 車殼 4. 座椅 5. 擋風玻璃

  爲了便於協做,咱們找輪胎廠完成製造輪胎的步驟,發動機廠完成製造發動機的步驟; 這樣,發現你們能夠同時進行車的製造,最終進行組裝,大大提升了效率。可是,具體到輪 胎廠的一個流水線操做,仍然是有步驟的,仍是離不開面向過程思想!

  所以,面向對象能夠幫助咱們從宏觀上把握、從總體上分析整個系統。 但具體到 實現部分的微觀操做(就是一個個方法),仍然須要面向過程的思路去處理。

  咱們千萬不要把面向過程和麪向對象對立起來。他們是相輔相成的。面向對象離不開面 向過程!

  面向對象思考方式:

    遇到複雜問題,先從問題中找名詞(面向過程更多的是找動詞),而後確立這些名詞哪 些能夠做爲類,再根據問題需求肯定的類的屬性和方法,肯定類之間的關係。

  面向對象和麪向過程的總結:

    都是解決問題的思惟方式,都是代碼組織的方式。 

    解決簡單問題可使用面向過程 

    解決複雜問題:宏觀上使用面向對象把握,微觀處理上仍然是面向過程。

二:對象的進化

  隨着編程面臨的問題愈來愈複雜,編程語言自己也在進化,從主要處理簡單數據開始, 隨着數據變多進化「數組」; 數據類型變複雜,進化出了「結構體」; 處理數據的方式和邏輯變複雜,進化出了「對象」。

  1. 簡單數據

    像 30,40,50.4 等這些數字,能夠看作是簡單數據。最初的計算機編程,都是像這樣 的數字。

  2. 數組

    將同類型的數據放到一塊兒。好比:整數數組[20,30,40],浮點數數組[10.2,11.3, 12.4], 字符串數組:[「aa」,」bb」,」cc」]

  3. 結構體

    將不一樣類型的數據放到一塊兒,是 C語言中的數據結構。好比:

      struct resume{

            int age;

            char name[10];

            double salary;

            };

  4. 對象

    將不一樣類型的數據、方法(即函數)放到一塊兒,就是對象。好比:

      

    注:前面學習的數字也是對象。好比:整數9,就是一個包含了加法、乘法等方法的對象。

相關文章
相關標籤/搜索