類和類圖

前言

編程的基礎是類,我們的所有編程都是在類的基礎上進行操作的。那麼到底什麼是類呢,如何直觀化的形容類呢?


敘述

面向過程——步驟化面向過程就是分析出實現需求所需要的步驟,通過函數一步一步實現這些步驟,接着依次調用即可。

面向對象——行爲化面向對象是把整個需求按照特點、功能劃分,將這些存在共性的部分封裝成對象,創建了對象不是爲了完成某一個步驟,而是描述某個事物在解決問題的步驟中的行爲

1.類

  類(Class)封裝了數據和行爲,是面向對象的重要組成部分,它是具有相同屬性、操作、關係的對象集合的總稱。

  類是一組相關的屬性和行爲的集合。是一個抽象的概念。對象是該類事物的具體表現形式。具體存在的個體。成員變量代表事物的屬性,成員方法代表事物的行爲。

  在軟件系統運行時,類將被實例化成對象(Object),對象對應於某個具體的事物,是類的實例(Instance)。

下圖中男孩(boy)、女孩(girl)爲類(class),而具體的每個人爲該類的對象(object):
在這裏插入圖片描述

2. 類圖

  類圖(Class Diagram)使用出現在系統中的不同類來描述系統的靜態結構,它用來描述不同的類以及它們之間的關係。

  在系統分析與設計階段,類通常可以分爲三種,分別是實體類(Entity Class)、控制類(Control Class)和邊界類(Boundary Class),下面對這三種類加以簡要說明:

(1) 實體類:實體類對應系統需求中的每個實體,它們通常需要保存在永久存儲體中,一般使用數據庫表或文件來記錄,實體類既包括存儲和傳遞數據的類,還包括操作數據的類。實體類來源於需求說明中的名詞,如學生、商品等。

(2) 控制類:控制類用於體現應用程序的執行邏輯,提供相應的業務操作,將控制類抽象出來可以降低界面和數據庫之間的耦合度。控制類一般是由動賓結構的短語(動詞+名詞)轉化來的名詞,如增加商品對應有一個商品增加類,註冊對應有一個用戶註冊類等。

(3) 邊界類:邊界類用於對外部用戶與系統之間的交互對象進行抽象,主要包括界面類,如對話框、窗口、菜單等。

在面向對象分析和設計的初級階段,通常首先識別出實體類,繪製初始類圖,此時的類圖也可稱爲領域模型,包括實體類及其它們之間的相互關係。

類的UML圖示

在UML中,類使用包含類名、屬性和操作且帶有分隔線的長方形來表示,如定義一個Employee類,它包含屬性name、age和email,以及操作modifyInfo().
在這裏插入圖片描述
圖1對應的Java代碼片段如下:

public class Employee {
	private String name;
	private int age;
	private String email;
	
	public void modifyInfo() {
		......
	}
}

在UML類圖中,類一般由三部分組成:

(1) 第一部分是類名:每個類都必須有一個名字,類名是一個字符串。

(2) 第二部分是類的屬性(Attributes):屬性是指類的性質,即類的成員變量。一個類可以有任意多個屬性,也可以沒有屬性。

UML規定屬性的表示方式爲:

可見性  名稱:類型 [ = 缺省值 ]
  其中:

  “可見性”表示該屬性對於類外的元素而言是否可見,包括公有(public)、私有(private)和受保護(protected)三種,在類圖中分別用符號+、-和#表示。
  “名稱”表示屬性名,用一個字符串表示。
  “類型”表示屬性的數據類型,可以是基本數據類型,也可以是用戶自定義類型。
  “缺省值”是一個可選項,即屬性的初始值。

(3) 第三部分是類的操作(Operations):操作是類的任意一個實例對象都可以使用的行爲,是類的成員方法。

UML規定操作的表示方式爲:

可見性  名稱(參數列表) [ : 返回類型]
  其中:

  “可見性”的定義與屬性的可見性定義相同。
  “名稱”即方法名,用一個字符串表示。
  “參數列表”表示方法的參數,其語法與屬性的定義相似,參數個數是任意的,多個參數之間用逗號“,”隔開。
  “返回類型”是一個可選項,表示方法的返回值類型,依賴於具體的編程語言,可以是基本數據類型,也可以是用戶自定義類型,還可以是空類型(void),如果是構造方法,則無返回類型。

小結

類是編程的基礎。好好學習。
博客中有部分內容來源於深入淺出UML類圖(一),感謝!
在學習的時候更多基礎內容,也可以參考此篇文章。怎麼理解 Java 中類和對象的概念?

感謝您的閱讀~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章