天天看點

面向對象 第一章 筆記(ing)提示一、介紹二、

筆記目錄

  • 提示
  • 一、介紹
    • 1.1 介紹面向對象技術
      • (1) 面向過程程式設計
      • (2) 面向對象程式設計(OOP)
        • 1)對象 Object
        • 2)方法 method
        • 3)type 或 class
        • 4)優點
      • (3) 基本概念
        • 1)Object 對象
        • 2)Class 類
        • 4)Message 消息
        • 5)Abstraction 抽象
        • 6)Encapsulation 封裝
        • 7)Inheritance 繼承
        • 8)Polymorphism 多态
    • 1.2 介紹UML
    • 1.3 軟體開發過程和OOA&D
    • 1.4 元件和CBSD
    • 1.5 模式和體系結構
  • 二、

提示

主要是記載學習面向對象分析與設計課程的筆記總結

一、介紹

1.1 介紹面向對象技術

(1) 面向過程程式設計

  • 這種程式設計範式本質上是機器/彙編語言的抽象;
  • 程式設計是圍繞過程進行的;
  • 專注于資料結構、算法和步驟的排序。

面向過程程式的主要内容就是算法和資料結構

面向對象 第一章 筆記(ing)提示一、介紹二、

算法:一組用于解決問題的指令。

資料結構:用于以特定方式組織資料的構造。

缺點:

  • 将程式與資料分割過于清晰
    面向對象 第一章 筆記(ing)提示一、介紹二、
  • 分析與程式設計設計之間存在代溝
    面向對象 第一章 筆記(ing)提示一、介紹二、
  • 分析結果與具體落實需要進行轉化;
  • 設計的模型需要很多的步驟實作;
  • 一個完成的程式很難二次利用;
  • 面向過程程式設計的項目很難進行拓展和維護。

(2) 面向對象程式設計(OOP)

OOP:Object-Oriented Programming

面向對象程式設計:程式設計是圍繞對象進行的,是指導軟體建構的一組原則,以及支援這些原則的語言、資料庫和其他工具。

1)對象 Object

  • 對象是在軟體運作時才會存在的概念,軟體運作時等價于生成了一個世界,世界裡的萬物都可為對象。一個對象可以是一個人、地方、事件;
  • 對象包括資料和方法;
  • 相同類的對象具有相同的資料和方法;
  • 對象之間通過互相調用實作資訊的接受和發送。

2)方法 method

由一個對象執行的操作,即方法。

3)type 或 class

  • type 是型,相對于class,型的外延更加寬泛,型是來限制對象的行為的,比如 int 類型對象,隻可進行 int 類型的操作;
  • class,個人了解就是類,是生成對象的模型,由同一個模型生成對象,具有相同的方法和資料。

4)優點

  • 單一模式:使用者、分析人員、設計人員和實作者使用的程式設計語言單一;
  • 體系結構和代碼便于重用;
  • 程式設計模型更加接近于現實世界:更加準确的描述了現實世界的實體、基于自然區分而切分體系、易于了解和維護;
  • 穩定性更好:需求中的一個小變化并不意味着開發中的系統的巨大變化;
  • 對于變化的自适應能力強。

(3) 基本概念

1)Object 對象

定義: 對象是具有定義良好的邊界和辨別的實體,它封裝了狀态和行為。

  • 狀态:由屬性和關系表示,是對象可能存在的條件之一,通常會随着時間而改變;
  • 行為:行為由操作、方法和狀态機表示,決定一個對象如何行動和反應,對象的可見行為由它可以執行的操作而定義;
  • 每個對象都有唯一的辨別,即使狀态與另一個對象相同;
  • 一個對象不會獨自承擔所有任務,也不會沒有存在的意義;
  • 對象之間通過消息進行互動。

2)Class 類

定義: 類是一組具有相同屬性和行為的對象的描述。

個人了解: 就是一類對象的模型,對象就是類的具體實作,就比如,我們都對神仙有個基本而模糊的認知比如會飛有仙法等等,觀影菩薩就是一個具體的神仙,會飛會仙法,神仙是一個類,觀影菩薩就是對象。

  • 類是對象的抽象定義,類中定義了對象的結構和行為,是建立對象的模闆;
  • 對于一堆(1~n個)相同對象可以抽象為一個類;
  • 對象是類的執行個體。
  • 類的屬性(attribute):是命名屬性(不指派),主要作用就是描述類的執行個體(即對象)的對應屬性應當具有的規範(大小範圍、可進行操作等等),一個類可以有0~n個屬性;
  • Operation:操作是服務的實作,可以從類的任何對象請求該服務來影響行為,一個類可以有任意數量的操作,也可以沒有操作(所謂操作即對類中的屬性進行增删改查等等行為,與對象中的method不是一回事)。

注意: Object的屬性為property,Class的屬性為attribute,這是不一樣的,attribute指命名屬性。

4)Message 消息

定義: 一種對象之間通信的規範,該規範傳遞資訊,并期望活動随之發生(一個對象請求另一個對象執行操作)。

5)Abstraction 抽象

個人了解: 所謂抽象,就是将一個實體中的屬性、操作提取出來。

面向對象 第一章 筆記(ing)提示一、介紹二、

6)Encapsulation 封裝

定義: 封裝意味着設計、生産和描述軟體,以便在不了解其工作細節的情況下輕松使用軟體,也被稱為資訊隐藏。

解釋: 封裝的一個具體執行個體就是程式設計中使用的函數接口,我們編寫好接口後,隻需要向外界提供接口即可,外界不清楚我們内部的屬性和方法。而萬物都是接口,手機就是接口,我們解鎖手機,隻需輸入密碼即可解鎖,而不清楚裡面是如何運作的。

7)Inheritance 繼承

8)Polymorphism 多态

1.2 介紹UML

1.3 軟體開發過程和OOA&D

1.4 元件和CBSD

1.5 模式和體系結構

二、

繼續閱讀