Java-UML类图

作者:蛇发女妖

转载请注明出处Java 大白话讲解设计模式之 -- UML类图 - 简书 

UML

        首先要了解一下UML,以下内容来自百度百科: 

定义:

        统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。

UML系统开发中三个主要的模型:


  • 功能模型:从用户的角度展示系统的功能,包括用例图。

  • 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。

  • 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

类图

        接下来就该进入正题,了解类图(下面同样参考了百度百科):

简介: 

      类图主要用在面向对象软件开发的分析和设计阶段,描述系统的静态结构。类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。

      那么类图要怎么画呢? 

        类一般包含3个组成部分:类名、属性、方法

  • 类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
  • 属性书写规范:修饰符 属性:类型[ = 默认值]。
  • 方法书写规范:修饰符 方法名称(参数列表)[:返回类型]。

        可见性修饰符:

        加号(+)表示public;减号(-)表示private,同一个类中;井号(#)表示protected,对外私有,但子类可访问;波浪号(~)表示default,同一个包内。

        如果属性或方法具有下划线,则说明它是静态的。

        如果类名或方法是斜体,则说明它是抽象的。

        什么是静态方法?

        在Java中,若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。


        静态方法和实例方法的区别主要体现在两个方面:

  1. 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
  2. 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则可以访问静态和实例成员。

        基于同样的道理,静态方法中也不能使用关键字this。

        抽象类的几点说明(见Java课本P435):

        下面是关于抽象类值得注意的几点:

  • 抽象方法不能包含在非抽象类中。如果抽象父类的子类不能实现所有的抽象方法那么子类也必须定义为抽象的。换句话说,在继承自抽象类的非抽象子类中,必须实现所有的抽象方法。还要注意到,抽象方法是非静态的
  • 抽象类不能使用new操作符来初始化。但是,仍然可以定义它的构造方法,这个构造方法在它的子类的构造方法中调用。
  • 包含抽象方法的类必须是抽象的。然而,可以定义一个不包含抽象方法的抽象类。这个抽象类用于作为定义新子类的基类。
  • 子类可以重写父类的方法并将它定义为抽象的。这很少见,但是它在当父类的方法实现在子类中变得无效时是很有用的。在这种情况下,子类必须定义为抽象的。
  • 即使子类的父类是具体的,这个子类也可以是抽象的。
  • 不能使用new操作符从一个抽象类创建一个实例。但是抽象类可以用作一种数据类型。

类之间的关系

        常见的关系有:继承关系,实现关系,关联关系,依赖关系,聚合关系,复合关系。

        以下都是在Java中的情况。

继承关系

        继承关系也叫泛化关系,用空心三角箭头+实线表示,箭头指向父类。

        

        比如,游客类和会员类都指向用户类(父类)。

实现关系

        类与接口的实现,用空心三角箭头+虚线表示,箭头指向接口。

        

关联关系

        关联关系是一种比较强的关系,他们的关系是比较持久稳定的。关联分为单向关联和双向关联。

        如果一个类知道或者引用了另一个类,而另一个类不知道或者没有引用这个类,则这两个类是单向关联的,用箭头+实线表示,箭头指向被引用或者被包含的类。

        

        双向关联是两个类彼此都知道对方的存在,用一条实线表示。

        

依赖关系

        依赖关系是一种很弱的关系,比较偶然,一般是指一个类使用另一个类,用箭头+虚线表示。

         

聚合关系

        聚合关系是一种特殊的关联关系,聚合关系强调的是整体和部分的关系,其中部分可以脱离整体而存在,用空心菱形箭头+实线表示,菱形指向整体。

        

复合关系

        复合关系,也有说法为组合关系、合成关系,是一种特殊的关联关系,它与聚合关系很像,也是强调整体与部分的关系,不同的是部分无法脱离整体存在,用实心菱形箭头+实线表示,菱形指向整体。

        

参考资料

Java 大白话讲解设计模式之 -- UML类图 - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值