類圖及類的關系

類圖(Class Diagram)是UML(Unified Modeling Language,統一建模語言)中的一種圖,用于描述系統中類的靜態結構,包括類的屬性、方法以及類之間的關系。

一、類

類(Class):用矩形表示,包括類名、屬性和方法。

類名:通常位于矩形的頂部,以粗體或斜體顯示。
屬性:列在類名的下方,通常表示為“可見性 屬性名 : 類型”,其中可見性可以是公有(+)、私有(-)、保護(#)或包內私有(~)。
方法:也列在類名的下方,格式為“可見性 方法名(參數列表) : 返回類型”。

二、類的關系

1、繼承(Inheritance)

? ? ?【繼承關系】:表示一個類是另一個類的特殊類型,子類繼承父類的屬性和方法。

? ? ?【代碼體現】:在Java中此類關系通過關鍵字extends明確標識。

? ? ?【箭頭指向】:帶空心三角箭頭的實線,從子類指向父類。

2、實現(Realization)

? ? ?【實現關系】:是接口和實現類之間的關系。類實現了接口中的抽象方法。

? ? ?【代碼體現】:在Java中此類關系通過關鍵字implements明確標識。

? ? ?【箭頭指向】:帶空心三角箭頭的虛線,箭頭指向接口。

3、依賴(Dependency)

? ? ?【依賴關系】:是一種使用的關系,被依賴的對象只是作為一種工具在使用,而并不持有對它的引用。這種使用關系是具有偶然性、臨時性的、非常弱的,但是B類的變化會影響到A。

? ? ?【代碼體現】:局部變量、方法的參數或者對靜態方法的調用。

? ? ?【箭頭指向】:帶箭頭的虛線,指向被使用的類。

4、關聯(Association)

? ? ?【關聯關系】:是對象之間的一種引用關系,使一個類知道另外一個類的屬性和方法,通常有“知道”、“了解”的含義。如老師和學生,丈夫和妻子等。關聯關系有單向和雙向的。單向關聯有一個箭頭,雙向關聯有兩個箭頭或者沒有箭頭。

? ? ?【代碼體現】:成員變量。

? ? ?【箭頭指向】:帶普通箭頭的實線,從使用類指向被關聯的類。

5、聚合(Aggregation)

? ? ?【聚合關系】:是一種特殊的關聯關系,表示整體和部分之間的關系,如學校和老師,車子和輪胎。是一種“弱擁有”的關系,成員是整體的一部分,成員也可以脫離整體而存在。

? ? ?【代碼體現】:成員變量。

? ? ?【箭頭指向】:帶空心菱形的實線,菱形指向整體。

6、組合(Composition)

? ? ?【組合關系】:是一種特殊的關聯關系,表示整體和部分之間的關系,但部分不能離開整體而單獨存在。是一種“強擁有”的關系,如身體和大腦之間的關系,大腦不能脫離身體而單獨存在。

? ? ?【代碼體現】:成員變量。

? ? ?【箭頭指向】:帶實心菱形的實線,菱形指向整體。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12424.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12424.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12424.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

海外倉混合訂單揀貨策略:人工與海外倉系統的最佳搭配模式

根據訂單高效揀貨是任何海外倉都要面對的問題。只有當訂單可以被高效,準確的揀貨之后,才能繼續走下面的物流流程,所以盡可能的縮短揀貨時間,提升揀貨精準度,才是提升訂單交付率的最佳方法。 海外倉企業都在不斷尋找&am…

Vue如何引入公用方法

文章目錄 1. 在全局范圍內引入2. 在單文件組件中引入3. 使用Vuex或Vue Composition API4. 使用mixins5. 使用插件 1. 在全局范圍內引入 在你的main.js或main.ts文件中引入并注冊你的公用方法,使得它們可以在整個Vue應用中使用。 // 引入你的公用方法文件 import {…

Android動態布局framelayout

功能說明 最近碰到一個需求,要求在網頁端拖控件,動態配置app控件的模塊,大小和位置,顯示不同的功能,然后在app大屏展示。 技術難點: 1.動態控件位置和大小難調,會出現布局混亂,位置錯…

129.哈希表:有效的字母異位詞(力扣)

242. 有效的字母異位詞 - 力扣(LeetCode) 題目描述 代碼解決以及思路 這個方法的時間復雜度為O(N),其中N是字符串的長度,空間復雜度為O(1)(因為輔助數組的大小是固定的26)。 class Solution { public:bo…

python通過ctypes調用C/C++ SDK,當SDK異常時,同時打印C/C++/Python的棧信息

python通過ctypes調用C/C SDK,當SDK異常時,同時打印C/C/Python的棧信息 一.復現步驟二.輸出 本文演示了python通過ctypes調用C/C SDK,當SDK異常時,同時打印C/C/Python的棧信息.基于traceback、addr2line、PyErr_SetString、backtrace_symbols 一.復現步驟 cat > print_bac…

自媒體的發展趨勢:從個人表達到全球話語權

一、引言隨著數字技術的快速發展,信息傳播的方式和格局也在不斷變化。自媒體,作為其中的一股重要力量,正在以它的獨特方式改變著全球的信息傳播和社會發展。本文將從自媒體的定義及發展歷程入手,深入探討自媒體未來的發展趨勢&…

感知局部規劃--似然場局部規劃

系列文章目錄 提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 TODO:寫完再整理 文章目錄 系列文章目錄前言感知導航感知似然場局部規劃(很像DWA但是不依賴地圖,完全依賴感知) 前言 認知有限&#x…

Uniapp開發入門:構建跨平臺應用的全面指南

引言 什么是Uniapp Uniapp是一款由DCloud公司推出的基于Vue.js的跨平臺應用開發框架。它的核心理念是“一套代碼,多端運行”,開發者只需編寫一份代碼,即可生成包括iOS、Android、H5、微信小程序、支付寶小程序、百度小程序等多平臺的應用。…

初識C++ · string的使用(2)

目錄 1 Modifiers部分 1.1 assign的使用 1.2 insert的使用 1.3 erase的使用 1.4 replace的使用 2 capacity部分 2.1 max_size的使用 2.2 capacity的使用 2.3 reserve的使用 2.4 shrink_to_fit簡介 2.5 resize的使用 2.6 clear的使用 3 String operations部分 3.1 …

[數據結構1.0]快速排序

最近學習了快速排序,鼠鼠俺來做筆記了! 本篇博客用排升序為例介紹快速排序! 1.快速排序 快速排序是Hoare于1962年提出的一種二叉樹結構的交換排序方法,其基本思想為:任取待排序元素序列中的某元素作為基準值&#x…

202103青少年軟件編程(Python)等級考試試卷(一級)

一、單選題(共25題,每題2分,共50分) 下列哪個操作不能退出IDLE環境?( ) A、AltF4 B、CtrlQ C、按ESC鍵 D、exit() 試題編號:20210124-yfj-003 題型:單選題 答案&#xf…

Java面試八股之一個char類型變量能不能存儲一個中文字符

Java中一個char類型變量能不能存儲一個中文字符?為什么? Java中一個char類型變量可以存儲一個中文字符。原因如下: Unicode編碼支持:Java語言采用Unicode字符集作為其內建字符編碼方式。Unicode是一種廣泛接受的字符編碼標準&am…

兩小時看完花書(深度學習入門篇)

1.深度學習花書前言 機器學習早期的時候十分依賴于已有的知識庫和人為的邏輯規則,需要人們花大量的時間去制定合理的邏輯判定,可以說是有多少人工,就有多少智能。后來逐漸發展出一些簡單的機器學習方法例如logistic regression、naive bayes等…

mybatisplus查詢練習代碼

mybatisplus查詢練習代碼 package com.yase;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yase.entity.Student; import com.yase.entity.Teacher; import com.yase…

什么是CCRC?做什么用的?

CCRC(中國網絡安全審查認證和市場監管大數據中心)原名為中國網絡安全審查技術與認證中心,也被稱為中國信息安全認證中心(ISCCC)。 該中心是經中央機構編制委員會辦公室批準成立的,其主要職責是依據國家法律…

kafka集群傳統部署(raft模式)—— 筑夢之路

kafka二進制包:https://dlcdn.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz 集群規劃 主機名IP地址節點ID角色分配kafka1192.168.100.1001broker,controllerkafka2192.168.100.1012broker,controllerkafka3192.168.100.1023broker,controller 編輯配置文件 con…

代碼隨想錄算法訓練營第36天|● 738.單調遞增的數字 ● 968.監控二叉樹

738. 單調遞增的數字 發現第一位變小了其他的迅速變9 class Solution:def monotoneIncreasingDigits(self, n: int) -> int:strnlist(str(n))for i in range(len(strn)-1,0,-1):if strn[i-1]>strn[i]:strn[i-1]str(int(strn[i-1])-1)for j in range(i,len(strn)):strn[…

超級簡單的地圖操作工具開發可疑應急,地圖畫點,畫線,畫區域,獲取地圖經緯度等

使用echars的地圖畫點,畫線,畫區域,獲取地圖經緯度等 解壓密碼:10086007 地圖也是用臨時的bmap.js和china.js純離線二選一 一共就這么多文件 畫點,畫線,畫區域 點擊地圖獲取經緯度-打印到控制臺,這樣就能渲染航跡,多變形,結合其他算法算圓等等操作 下載資源:https://download…

JSON-server 服務的搭建

1、全局安裝: pnpm i -g json-server2、創建db.json文件 {"posts": [{"id": 1,"title": "json-server","author": "typicode"}],"comments":[{"id": 1,"body": "…

什么情況下會造成索引失效?

2.3.4. 索引失效 對索引使用左或者左右模糊匹配 使用左或者左右模糊匹配的時候,也就是 like %xx 或者 like %xx% 這兩種方式都會造成索引失效。但是如果前綴是確定的那么就可以使用到索引,例如 name like 許%。 因為索引 B 樹是按照「索引值」有序排列…