筆記目錄
- 提示
- 一、介紹
-
- 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)提示一、介紹二、 - 分析結果與具體落實需要進行轉化;
- 設計的模型需要很多的步驟實作;
- 一個完成的程式很難二次利用;
- 面向過程程式設計的項目很難進行拓展和維護。
(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 抽象
個人了解: 所謂抽象,就是将一個實體中的屬性、操作提取出來。
6)Encapsulation 封裝
定義: 封裝意味着設計、生産和描述軟體,以便在不了解其工作細節的情況下輕松使用軟體,也被稱為資訊隐藏。
解釋: 封裝的一個具體執行個體就是程式設計中使用的函數接口,我們編寫好接口後,隻需要向外界提供接口即可,外界不清楚我們内部的屬性和方法。而萬物都是接口,手機就是接口,我們解鎖手機,隻需輸入密碼即可解鎖,而不清楚裡面是如何運作的。