UML类图

UML类图

代码形式<–> 类图
●注释
●类
●接口
●类与类之间的关系(ralation)
   ○依赖(Dependency)
   ○继承(Inheritance)
   ○实现(Realization)
   ○关联(Association)
   ○聚合(Aggregation)
   ○组合(Composition)
在这里插入图片描述
    注释(comment)
       注释就是对类图的补充说明,可以附加在任何元素上,用右上角有折角的矩形来表示,其内放置说明文字,通过虚线连接被注释的元素。
在这里插入图片描述
类(Class)
      在面向对象(OO)编程中,类是对现实世界中一组具有相同特征的物体的抽象。
       在UML类图中,类使用包含类名属性(field)和方法(method)且带有分割线的矩形来表示;
在这里插入图片描述
类的属性的完整表示方法:
      可见性 名称:类型 [ = 缺省值 ]
      中括号中的内容便是是可选的
类的方法的完整表示方法:
      可见性 名称(参数列表)[ :返回类型 ]
      中括号中的内容是可选的。
在这里插入图片描述
接口(Interface)
      接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)。
●在UML中,接口有两种表示方法:
     ○普通接口表示法(飞翔)
     ○棒棒糖表示法(讲人话),使用一个带有名称的小圈圈来表示,在接口旁边写上相应的接口名称,没有具体接口方法。
     ○接口名称通常以大写字母I(interface)开头
在这里插入图片描述

interface IFly
{
        void Fly();
}

在这里插入图片描述

interface ILanguage
{
         void Speak();
 }

类与类之间的关系(ralation)
在UML类图中,常见的有一下几种关系:
   ○依赖(Dependency)依赖类··················> 被依赖类
   ○继承(Inheritance)  关联类——————> 被关联类
   ○实现(Realization)      子类——————▷父类
   ○关联(Association)  实现类··················▷接口
   ○聚合(Aggregation) 部分类——————◇ 整体类
   ○组合(Composition) 部分类——————◆ 整体类
●类图——依赖关系(Dependency)
只要是在类中用到了对方,那么他们之间就存在依赖关系,如果没有对方,编译通过不了。(虚线箭头

public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}
public class PersonServiceBean{
   private PersonDao personDao;//类的成员属性
   public IDCard getIDCard(Integer personid){}//方法的返回类型
   public void save(Person person){}//方法接收的参数类型
   public void modify(){
     Department department = new Departmrnt();//方法中使用到
   }
}

●依赖关系
如果A类用到了B类,则A依赖于B,没有B,A编译也不通过
在这里插入图片描述
●类图——关联关系(Association)
关联关系实际上就是类与类之间的联系,是依赖关系的特例。(实线箭头
    ●单向一对一关系

//一个人一个身份证号 一对一单向的一对一
public class Person{ private IDCard card;}
public class IDCard{}

在这里插入图片描述
    ●双向一对一关系

//一个人对应一个身份证号 一对一
//一个身份证号也对应一个人
public class Person{private IDCard card;}
public class IDCard{private Person peison;}

在这里插入图片描述
●类图—继承关系(Inheritance)
    继承关系也称泛化关系,是依赖关系的特例。 A类继承了B类也相当于A类用到了B类。空心三角形+实线

public abstract class DaoSupport{
  public void save(Object entity){ }
  public void delete(Object id){ }
}
public class PersonServiceBean extends
DaoSupport{ }

PersonServiceBean继承了DaoSupport
在这里插入图片描述
● 类图—实现关系(Implementation)
    实现关系实际上就是A类实现B接口,是依赖关系的特例,依赖关系更强。空心三角形+虚线

public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id){}
}

    PersonServiceBean实现了PersonService这个接口-实现关系
实现关系实际上就是A类实现B接口。
在这里插入图片描述
●类图—聚合关系(Aggregation)
●聚合关系表示的是整体部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性多重性。使用带空心菱形的线,菱形指向整体来表示。
     如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成。考虑计算机与鼠标、显示器能不能分开?
如果认为:
关系是可以分开的,则是聚合关系;
关系是不可以分开的,则是组合关系。

鼠标是可以分离的:可以插上也可以不插上,电脑没有鼠标还是一个电脑;显示器也是可以分离的;鼠标类、显示器类与电脑类构成聚合关系。对应类图:
在这里插入图片描述
● 类图—聚合关系(Aggregation)
● 聚合关系表示的是整体部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性多重性
● 认为可以分开,是聚合关系,代码:

public class Computer {
  private Mouse mouse; // 鼠标可以和computer分离
  private Monitor monitor; //显示器可以和Computer分离
  public void setMouse(Mouse mouse) {this.mouse = mouse; }
  public void setMonitor (Monitor monitor) {
    this.monitor = monitor;}
}

● 聚合关系表示整体与部分关系,整体与部分可以分开,聚合关系是关联关系的特例,具有:
    导航性:谁聚合谁? A聚合到B:
    多重性:
        B聚合一个A——单聚合
        B里面可以聚合多个A——多重聚合
在这里插入图片描述
● 认为不可以分开,是组合关系
代码:

public class Computer {
  private Mouse mouse = new Mouse();
//鼠标不可以和computer分离——组合关系
  private Moniter monitor = new Monitor();
//显示器不可以和Computer分离——组合关系
  public void setMouse(Mouse mouse) {this .mouse=mouse;}
  public void setMonitor(Monitor monitor) {
    this .monitor = monitor;}

在这里插入图片描述
● 类图—组合关系(Composition)
组合关系:也是整体与部分的关系,但是整体与部分不可以分开实心菱形+实线
案例:定义类:Person、IDCard与Head, 那么
Head 和Person 是 组合——人不能没有头。
IDCard 和 Person 是聚合——一个人可以没有身份证,去补办身份证就行。
如果在程序中Person类中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard 和 Person 就是组合了。
● 类图—组合关系(Composition)
组合关系:也是整体与部分的关系,但是整体与部分不可以分开

public class Person{
  private IDCard card; //聚合
  private Head head = new Head(); //组合
}
public class IDCard{}
public class Head{}

在这里插入图片描述
● 类图—组合关系(Composition)
组合关系:也是整体与部分的关系,但是整体与部分不可以分开

public class Person{
  private IDCard card = new IDCard(); //组合
  private Head head = new Head(); //组合
}
public class IDCard{}
public class Head{}

在这里插入图片描述
类与类之间的关系(ralation)
在UML类图中,常见的有一下几种关系:
   ○依赖(Dependency)依赖类··················> 被依赖类
   ○继承(Inheritance)  关联类——————> 被关联类
   ○实现(Realization)      子类——————▷父类
   ○关联(Association)  实现类··················▷接口
   ○聚合(Aggregation) 部分类——————◇ 整体类
   ○组合(Composition) 部分类——————◆ 整体类
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值