对UML类图的关系和图形的认识

有御姐儿看不懂UML类图和不会画一个UML类图。居士我今天来稍微讲解一下。
Paste_Image.png

UML类图的基本图示法
首先,看到一个UML类图,第一个反应就是一堆框,这些框意味着什么呢?有java基础的即时不懂UML类图应该也能猜出八九。不错,就是**类和接口**。
先来看类(Class),类图有三层,第一层为类名,用粗体表示,其中,对于抽象类而言,是用斜粗体显示(抽象方法也是斜体哦)。
实体类
public abstract class 动物 {
public String 羽毛 ="白羽毛";
    public boolean 有角质X没有牙齿= true;

    public void 下蛋() {
            ...
    }
}
抽象类
public abstract class 动物 {
    public boolean 有生命 = true;

    public void 新陈代谢(氧气 oxygen,水 water) {
            ...
    }
}
第二层是类的特性,也就是字段和属性。
第三层是类的操作,也就是方法。
注意事项:**"+"表示public,"-"表示private,"#"表示protected**
**接口**
接口
public interface 飞翔{
    void 飞();
}
接口大体样式与类图相似,但是,也有区别,主要是顶部有“《interface》”表示是接口,这个好懂的吧。

同理,第一层是接口名称,第二层是接口的方法。
注意事项:
接口还有一种表示方式:

棒棒糖表示法接口

public interface 唐老鸭{
    void 讲话();
}
第二步讲类图之间、类与接口之间等等之间的关系线
**继承**:用空心三角形+实线表示。
继承
public class  鸟 extends  动物 {
    ...
}
这个最好懂吧,鸟是动物的一种嘛。再讲个例子本居士(类)信的是佛,所以我也算是修佛者的一种(类)。
**实现接口**:用空心三角形+虚线表示。
实现接口
public class  大雁  implements 飞翔{
    ...
}
正常的大雁当然都会飞喽。再讲个例子本居士(类)是佛家人,所以我当然会念经(接口)啦。
**关联(association)**:用实线箭头表示
关联

企鹅和气候有关联,企鹅需要知道气候的变化。

public class  企鹅{
   private 气候 climate;
}
再讲个例子本居士(类)礼佛也是分时间的,所以我当然要知道礼佛的农历时间了(类)啦。
聚合和组合,是两种虽然都是拥有关系,但强度和性质不同。
**聚合**:用空心菱形+实线箭头来表示。
聚合

聚合是一种弱性拥有关系,即雁群包含了许多的大雁,但是对于大雁这个实体类而言,他并不是雁群的一部分。是一种分散的聚集到一起。
就像我是居士,是居士群体的一部分,但是世上居士那么多,我就是我,居士这个群体并不能代表我。

public class  雁群{
   private List<大雁> wideGooseList = new ArrayList<>();
}

组合:用实心菱形+实线箭头来表示。

组合

组合是一种强性拥有关系,即,翅膀对于鸟来说是身体的一部分,对正常的鸟而言,翅膀不可割舍。
注意:组合关系的两端,有“1”和“2”,这个叫做基数。表示了,一端的类可能有多个实例,比如:鸟有两只翅膀。如果有无数个实例,可用“n”来表示。关联和聚合关系两个也可以有基数。

public class  鸟{
   private 翅膀  wing;
public 鸟()
    {
        wing = new翅膀();
    }
}
也举个例子,就像本居士有头发,那么当我没头发了,那一定是我    死了,是的,一定是我死了。所以,我不是和尚啊。
**依赖**:用虚线表示
依赖

动物想生存,需要依赖氧气和水。

public abstrac class  动物{
public 动物(氧气 oxygen,水 water)
    {
        ...
    }
}
是不是,觉得我的解释有个毛用,看起来感觉好像每个都能互相套用。所以,还不如看着上面对应的代码的写法来理解。有时候代码确实还是比文字描述更好理解。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Di...
    雷雷_zll阅读 14,561评论 0 14
  • UML类图用来定义系统中的类,包括描述类的结构和类之间的关系。类图的主要作用于描述系统的静态结构。先看一张图(图片...
    Josaber阅读 11,336评论 0 5
  • 忘记了uml类图连线之间的关系,记录一下。 1. 关联关系 关联(Association)关系是类与类之间最常用的...
    cutieagain阅读 5,895评论 0 2
  • 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意...
    a2bfbb8a095f阅读 5,818评论 0 1
  • 提起特工,你能想到什么呢? 超群的双商,一步跨越围栏的大长腿,还是帅气且多金的特质? 小p推出了线上App“征文活...
    旁趣PUNCH阅读 2,286评论 0 0

友情链接更多精彩内容