類圖(Class diagram)主要用於描述系統的結構化設計。類圖也是最經常使用的UML圖,用類圖能夠顯示出類、接口以及它們之間的靜態結構和關係。
符號 | 解釋 |
---|---|
+ | public |
- | private |
# | protected |
~ | default |
下面有橫線 | 表示static靜態屬性 |
符號 | 解釋 |
---|---|
+-#~ | 同上 |
斜體 | 抽象方法 |
下面有橫線 | 表示static靜態方法 |
:String | :後表示返回值,返回String字符串類型 |
無: | 表示void無返回 |
/** * 動物類 */ public class Animal { /** * 生命 */ public String life; /** * 新陳代謝 * @param oxygen 氧氣 * @param water 水 */ public void metabolism(Oxygen oxygen, Water water) { } public void multiply () { } }
/** * 水 */ public class Water {} /** * 氧氣 */ public class Oxygen {}
public class Animal { /** * 生命 */ public String life; /** * 新陳代謝 * @param oxygen 氧氣 * @param water 水 */ public void metabolism(Oxygen oxygen, Water water) { } public void multiply () { } }
/** * 鳥 */ public class Bird extends Animal { /** * 羽毛 */ public String plume; /** * 兩個翅膀 */ public List<Wing> wings; /** * 生蛋 */ public void rawEgg () { } }
/** * 鳥 */ public class Bird extends Animal { /** * 羽毛 */ public String plume; /** * 兩個翅膀 */ public List<Wing> wings; /** * 生蛋 */ public void rawEgg () { } }
/** * 翅膀 */ public class Wing {}
關聯關係分爲單向關聯和雙向關聯:html
/** * 企鵝 */ public class Penguin extends Bird { //氣候 public Climate climate; public Climate getClimate() { return climate; } public void setClimate(Climate climate) { this.climate = climate; } }
/** * 氣候 */ public class Climate {}
/** * 大雁羣 */ public class BigWildGooseGroup { public List<BigWildGoose> bigWildGooses; public void oneFly() { System.out.println("一字飛行"); } public void vfly() { System.out.println("V字飛行"); } public List<BigWildGoose> getBigWildGooses() { return bigWildGooses; } public void setBigWildGooses(List<BigWildGoose> bigWildGooses) { this.bigWildGooses = bigWildGooses; } }
/** * 大雁 */ public class BigWildGoose extends Bird implements IFly{ @Override public void fly() {} }
/** * 大雁 */ public class BigWildGoose extends Bird implements IFly{ @Override public void fly() {} }
/** * 飛行接口 */ public interface IFly { void fly(); }
慕課網設計模式精講
: https://coding.imooc.com/class/270.html 大話設計模式
: https://book.douban.com/subject/2334288/ 設計模式之 UML 類圖
: https://zhuanlan.zhihu.com/p/24576502 UML學習(二)-----類圖
: https://www.cnblogs.com/silent2012/archive/2011/09/07/2169946.html