UML 類圖的畫法

1.類圖的畫法

整體是個矩形,第一層類名,第二層屬性,第三層方法。

  • +? :public
  • -? ?:? private
  • #? :? protected
  • 空格: 默認的default

?對應的類寫法。

public class Student {public String name;public Integer age;protected Integer cardId;Integer mark;public void setName(String name) {this.name = name;}public String getName() {return name;}
}

抽象類

對比類,就是第1層類名第3層?方法名斜體表示。

?對應類。

接口

頂層多了interface字段,其余好像沒啥區別了。

?包

里面就是對應包的名字。

對應java寫法。

package com.zgxt.demo.domain;public class Student {}

?2.類圖的關系

如果說,類圖為了表現java中的類,那么類圖的關系就代表java中中類、接口之間的關系。

?泛化關系

泛化就是Java中的繼承

?表示符號,就是一個橫線 + 空心三角

?對應的類關系圖。

?

?實現關系

實現就是java中的實現

?表示方法,一條虛線 + 空心三角

?依賴關系

如果一個類失去一個類代碼無法編譯,那么說這個類依賴于這個類。

具體表現為:成員變量、局部變量、方法形參,方法返回值

?表示方法全虛線箭頭

?對應的類關系。

// 小孩
class Child{private Hand hand; // 依賴關系:成員變量也成為關聯public void riding(Foot foot){ // 方法形參Bike bike = new Bike(hand,foot); // 局部變量}
}

關聯關系

2個類依賴關系且是依賴,并且是依賴中的成員變量,則存在關聯關系。

而且再細分,感覺跟MySQL中的外鍵約束,表設計有異曲同工之妙。

MySQL FOREIGN KEY 外鍵約束 (w3schools.cn)

?關聯對應表示圖。

單向關聯

?雙向關聯

?聚合

是在依賴的及基礎上(成員變量),但是和關聯表現的層級不同,關聯表示同層級之間,而聚合表示整體和部分層級之間。

另外: 整體和部分之間可以相互獨立存在。

如: 一個公司由老板和員工組成。那么公司和員工關系就是聚合。而老板和員工的關系就是關聯。

?表示圖形:空心菱形 + 箭頭。

代碼:一個Computer類需要Boss類和Employee類,聚合。

而Employee類中的businessTrip[出差]() 方法需要Boss的同意,這就是關聯。

// 聚合和關聯
class Computer{private Boss boss; // 聚合private Employee employee; // 聚合
}class Boss{}class Employee{private Boss boss; // 關聯public boolean businessTrip(){// boss同意 return true// boss不同意 return false}
}

對應的圖形?

組合

區別與聚合,組合的整體和部分之間不能獨立存在。

如: 人由手、腳、頭等身體部位組成,但是手離開人和人離開手都不能做相應的方法。

表示圖形: 實心菱形 + 實線箭頭。

這個我就不畫了。

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

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

相關文章

2023杭電第七場補題報告1002 1004 1011 1013

2023杭電第七場補題報告1002 1004 1011 1013 1002 B. Random Nim Game (hdu.edu.cn) 思路 手推一下就可以發現其實除了一次必定結束的其他情況概論都是 1 2 \frac{1}{2} 21? 代碼 #include <bits/stdc.h> using namespace std; #define int long long void solve()…

【hello C++】特殊類設計

目錄 一、設計一個類&#xff0c;不能被拷貝 二、設計一個類&#xff0c;只能在堆上創建對象 三、設計一個類&#xff0c;只能在棧上創建對象 四、請設計一個類&#xff0c;不能被繼承 五、請設計一個類&#xff0c;只能創建一個對象(單例模式) C&#x1f337; 一、設計一個類&…

Sentinel使用實例

不說了&#xff0c;直接上官方文檔 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/readme-zh.md Sentinel Example 項目說明 本項目演示如何使用 Sentinel starter 完成 Spring Clo…

【金融量化】對企業進行估值的方法有哪些?

估值的方法有哪些&#xff1f; 如何對企業進行估值&#xff1f;有2個方法估算。 1 絕對估值法 它是一種定價模型&#xff0c;用于計算企業的內在價值。 比如說你可以根據公司近N年的現金流情況。借此去預測未來N年的現金流情況。所有的現金流數據都可以在年報上查詢到。最后…

ios 知識

IOS 類文件.h和.m中interface的區別 大家都知道我們在創建類文件時會發現&#xff1a; #import <UIKit/UIKit.h>interface ViewController : UIViewControllerend和 #import "ViewController.h"interface ViewController ()end那么他們之間有何區別呢&#x…

【Ajax】回調地獄解決方法

回調地獄&#xff08;Callback Hell&#xff09;是指在異步編程中&#xff0c;特別是在嵌套的回調函數中&#xff0c;代碼變得深度嵌套、難以閱讀和維護的現象。這通常發生在處理多個異步操作時&#xff0c;每個操作都依賴于前一個操作的結果。回調地獄使代碼變得難以理解、擴展…

顯卡服務器適用于哪些場景

顯卡&#xff08;GPU&#xff09;服務器&#xff0c;簡單來說&#xff0c;GPU服務器是基于GPU的應用于視頻編解碼、深度學習、科學計算等多種場景的快速、 穩定、彈性的計算服務。那么壹基比小鑫告訴你顯卡服務器主要的用途有哪一些。 一、運行手機模擬器 顯卡服務器可支持…

力扣:62. 不同路徑(Python3)

題目&#xff1a; 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish” &#xff09;。 問總共有多少條不同的路徑&…

WebRTC音視頻通話-WebRTC本地視頻通話使用ossrs服務搭建

iOS開發-ossrs服務WebRTC本地視頻通話服務搭建 之前開發中使用到了ossrs&#xff0c;這里記錄一下ossrs支持的WebRTC本地服務搭建。 一、ossrs是什么&#xff1f; ossrs是什么呢&#xff1f; SRS(Simple Realtime Server)是一個簡單高效的實時視頻服務器&#xff0c;支持RTM…

STM32CubeIDE的安裝和黑色主題及自動補全代碼

STM32CubeIDE之前用過一點時間&#xff0c;但后來因為不習慣放棄了最近在新電腦上又用起來了&#xff0c;感覺相對之前好了很多&#xff0c;其實如果在工作中基本使用的是STM32,用意法的生態軟件也挺好的&#xff0c;意法最近在這塊也在大力發展&#xff0c;STM32CubeIDE安裝包…

【BASH】回顧與知識點梳理(十三)

【BASH】回顧與知識點梳理 十三 十三. 文件內容查閱13.1 直接檢視文件內容&#xff1a;cat, tac, nlcat (concatenate)tac (反向列示)nl (添加行號打印) 13.2 可翻頁檢視&#xff1a;more, lessmore (一頁一頁翻動)less (一頁一頁翻動) 13.3 資料擷取&#xff1a;head, tailhea…

【Linux】云服務器自動化部署VuePress博客(Jenkins)

前言 博主此前是將博客部署在 Github Pages&#xff08;基于 Github Action&#xff09;和 Vercel 上的&#xff0c;但是這兩種部署方式對于國內用戶很不友好&#xff0c;訪問速度堪憂。因此將博客遷移到自己的云服務器上&#xff0c;并且基于 Jenkins&#xff08;一款開源持續…

浪涌保護器中SPD防雷模塊的主要應用方案

浪涌保護器&#xff08;Surge Protective Device&#xff0c;SPD&#xff09;是一種用于限制瞬態過電壓和導引泄放電涌電流的非線性防護器件&#xff0c;用以保護耐壓水平低的電器或電子系統免遭雷擊及雷擊電磁脈沖或操作過電壓的損害。SPD可以將過電壓泄放到地線或限制過電壓到…

類與對象(入門)

目錄 1.前言 2.類的引入 3.類的定義 4.類的訪問限定符及封裝 4.1 訪問限定符 4.2 封裝 5.類的作用域 6.類的實例化 7. 結構體內存對齊規則 8.this指針 8.1 this指針的引出 8.2 this指針的特性 1.前言 C 是 基于面向對象 的&#xff0c; 關注 的是 對象 &#xff0c;…

【Spring】核心容器——依賴自動裝配

Spring容器根據bean所依賴的資源在容器中自動查找并注入bean的過程叫做自動裝配自動裝配的方式 1、按類型 2、按名稱&#xff08;耦合性較高&#xff09; 3、按構造方法 自動裝配特點 1、自動裝配用于對引用類型進行依賴注入&#xff0c;不能對簡單類型進行操作 2、自動裝配的…

多元最短路(Floyd)

是一個基于動態規劃的全源最短路算法。它可以高效地求出圖上任意兩點之間的最短路 時間復雜度 O(n^3) 狀態轉移方程 f[i][j]min(f[i][j],f[i][k]f[k][j]) 核心代碼 void floyd(){for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)s[i][j]min(s[i][j],s[i][k…

Vue前端 更具router.js 中的meta的roles實現路由衛士,實現權限判斷。

參考了之篇文章 1、我在登陸時獲取到登錄用戶的角色名roles&#xff0c;并存入sessionStorage中&#xff0c;具體是在login頁面實現&#xff0c;還是在menu頁面實現都可以。在menu頁面實現&#xff0c;可以顯得登陸快一些。 2、編寫router.js&#xff0c;注意&#xff0c;一個…

Spring 事務詳解

目錄 一、概述二、事務的特性&#xff08;ACID&#xff09;三、Spring 的事務管理3.1 編程式事務管理3.2 編程式事務管理 四、Spring 事務管理接口及其定義的屬性4.1 PlatformTransactionManager:事務管理接口4.2 TransactionDefinition:事務屬性4.3 TransactionStatus:事務狀態…

【基礎類】—前后端通信類系統性學習

一、什么是同源策略及限制 同源策略限制從一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的關鍵的安全機制。源&#xff1a;協議、域名和端口&#xff0c; 默認端口是80 三者有一個不同&#xff0c;即源不同&#xff0c;就是跨域 ht…

Stable Diffusion+Temporal-kit 半虛半實應用

1.先下載temporal-kit,重啟webui 2.下載好ffmpeg,配置好環境,下載Ebsynth 3.準備好你需要的視頻,拖到預處理視頻位置 4.填寫參數,點解保存設置,然后并點擊生成,會生成到目標文件夾的input位置 5.然后拉出input文件夾里面你想切換成處理的幀圖片,然后填寫prompt查看效…