天天看點

面向對象概念面向對象概念

文章目錄

  • 面向對象概念
    • 語言分類
    • 面向對象
    • 類class
    • 面向對象三要素

面向對象概念

語言分類

  1. 語言的分類
  • 面向機器
    • 抽象成機器指令,機器容易了解
    • 代表:彙編語言
  • 面向過程
    • 問題規模小,可以步驟化,按步驟順序處理。
    • 例如:做一件事情,排出個步驟,第一步幹什麼,第二步幹什麼,如果出現情況A,做什麼處理,如果出現了情況B,做 什麼處理。
    • 代表:c語言
  • 面向對象OOP
    • 随着計算機需要解決的問題的規模擴大,情況越來越複雜。需要很多人、很多部門協作,面向過程程式設計不太适合 了。
    • 代表:C++,java,Python,C#等

面向對象

  • 面向對象是一種認識世界、分析世界的方法論。将萬事萬物抽象為各種對象。

類class

  • 類是抽象的概念,是萬事萬物的抽象,是一類事物的共同特征的集合。
  • 用計算機語言來描述類,是屬性和方法的集合。

    舉例:

  1. 你吃魚
  • 你,就是對象;魚,也是對象;吃就是動作
  • 你是具體的人,是具體的對象。你屬于人類,人類是個抽象的概念,是無數具體的人的個體的抽象。
  • 魚,也是具體的對象,就是你吃的這一條具體的魚。這條魚屬于魚類,魚類是無數的魚抽象出來的概念。
  • 吃,是動作,也是操作,也是方法,這個吃是你的動作,也就是人類具有的方法。如果反過來,魚吃人。吃就是魚 類的動作了。
  • 吃,這個動作,很多動物都具有的動作,人類和魚類都屬于動物類,而動物類是抽象的概念,是動物都有吃的動 作,但是吃法不同而已。
  • 你駕駛車,這個車也是車類的具體的對象(執行個體),駕駛這個動作是魚類不具有的,是人類具有的方法。
  • 屬性:它是對象狀态的抽象,用資料結構來描述。
  • 操作:它是對象行為的抽象,用操作名和實作該操作的方法來描述。
    • 每個人都是人類的一個單獨的執行個體,都有自己的名字、身高、體重等資訊,這些資訊是個人的屬性,但是,這些信 息不能儲存在人類中,因為它是抽象的概念,不能保留具體的值。
    • 而人類的執行個體,是具體的人,他可以存儲這些具體的屬性,而且可以不同人有不同的屬性。

      哲學

  • 一切皆對象
  • 對象是資料和操作的封裝
  • 對象是獨立的,但是對象之間可以互相作用
  • 目前OOP是接近人類認知的程式設計範式

面向對象三要素

  1. 封裝
    • 組裝:将資料和操作組裝到一起。
    • 隐藏資料:對外隻暴露一些接口,通過接口通路對象。
      • 比如:駕駛員使用汽車,不需要了解汽車的構造細 節,隻需要知道使用什麼部件怎麼駕駛就行,踩了油門就能跑,可以不了解其中的機動原理。
  2. 繼承
    • 多複用,繼承來的就不用自己寫了
    • 多繼承少修改,OCP(Open-closed Principle),使用繼承來改變,來展現個性
  3. 多态
    • 面向對象程式設計靈活的地方,動态綁定

人類就是封裝:

  • 人類繼承自動物類,孩子繼承父母特征。分為單一繼承、多繼承;
  • 多态,繼承自動物類的人類、貓類的操作”吃“不同。

繼續閱讀