《瘋狂Java講義》學習筆記(二)理解面向對象

1、面向對象

  • 三種基本特徵:繼承、封裝和多態
  • Java完全以對象爲中心,最小程序單位是類,程序由一個一個的類組成
  • 面向對象三部分:面向對象分析(OOA)、面向對象設計(OOD)和麪向對象編程(OOP)
  • 面向對象相對於結構化開發(面向過程)可以提供更好的可重用性、可擴展性和可維護性
  • 結構化編程:採用結構化方式設計的軟件系統,整個軟件系統就由一個個函數組成,這個軟件運行入口往往由一個“主函數”代表,而主函數負責把系統中的所有函數“串起來”。特點:設計不夠直觀,與人類思維習慣不一致,開發者需要將客觀世界模型分解成一個個功能適應性差,可擴展性不強,由於是自頂向下的設計,發生需求改變時,維護成本就相當高
  • 三種循環:
    • 順序結構:自上而下執行
    • 選擇結構:單選擇、雙選擇和多選擇,也就是if…else…
    • 循環結構:當型結構(for、while)和直到型結構(do…while)
  • 面向對象程序設計
    • 面向對象的基本思想是使用類、對象、繼承、封裝、消息等基本概念進行程序設計,從現實世界中客觀存在的事物(對象)出發來構造軟件系統,把對象抽象地表示爲系統的類,使得軟件系統的組建可以直接映像到客觀世界中。
  • 開發者希望直接對客觀世界進行模擬:定義一個類,對應客觀世界的哪種事物;業務需要關心這個事物的哪些狀態,程序就爲這些狀態定義成員變量;業務需要關心這個事物的哪些行爲,程序就爲這些行爲定義方法。
  • 面向過程:吃(豬八戒,西瓜);面向對象:豬八戒.吃(西瓜);
  • 封裝:將對象的實現細節隱藏起來,通過一些公用方法來暴露該對象的功能
  • 繼承:是面向對象實現軟件複用的重要手段,當子類繼承父類後,子類作爲一種特殊的父類,將直接獲得父類的屬性和方法
  • 多態:子類對象可以直接賦給父類變量,但運行時依然表現出子類的行爲特徵,這意味着同一個類型的對象在執行同一個方法時,可能表現出多種行爲特徵;Person person = new Girl();
  • 抽象:忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面,抽象並不打算了解全部問題,而只是考慮部分問題
  • 判斷一門語言是否面向對象可以使用繼承和多態來加以判斷;“面向對象”和“基於對象”都實現了封裝的概念,但“面向對象”實現了繼承和多態,而“基於對象”則沒有

2、UML(統一建模語言)介紹

  • UML是一種定義良好、易於表達、功能強大且普遍使用的建模語言,它的作用域不限於支持面向對象的分析與設計,還支持從需求分析開始的關鍵開發全過程
  • 常用UML圖包括:用例圖、類圖、組件圖、順序圖、活動圖和狀態圖等
  • 類和對象:
    • 類:具有相同或相似性質的一組對象的抽象,類是對一類事物的描述,是抽象的、概念上的定義
    • 對象:實際存在的該類事物的個體,也稱爲實例
    • 對象的抽象化是類,類的具體化就是對象(也叫實例)
    • 類(class)用來描述一系列對象,概述每個對象應包括的數據和行爲特徵
發佈了73 篇原創文章 · 獲贊 11 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章