UML—类图

  对于类图的学习自己一直拖着不想总结,以前总是希望学习完以后总结,可是看完就到处偷懒,通过这次教训,每学习一点总结一次,想总是美好的,做的时候真的不是很容易,还是回到那个傻呵呵的原来的自己吧。

   在介绍类图之前先介绍一下类和对象的概念,这个概念还是比较简单的。

对象和类
对象:
可以是物理实体(火车)、或者概念的实体( 一张图片)、软件实体
类:一组具有相同属性、行为、关系和语义的描述。类包含属性和方法、属性是静态信息、方法是动态信息
个人理解: 就是一个具有相同属性的群体,例如学生

两者联系:
类是对象抽象的定义、定义了属性和方法。
提供了一个创建对象的模板
一个类就是一个对象的实例

类由三部分表示:属性、操作、方法


加号(+)表示public;减号(-)表示private;井号(#)表示protected;省略这些修饰符表示具有package(包)级别的可见性。

个人理解:一个对象就是一个实体,具有相同属性和操作的集合就是类。例如师范学院某一位同学,他就是一个实体对象,他具有的属性是学号、性别、饭卡号、身份证号、性别、他可以去选课,去机房上机,去图书馆借书等各种行为。师范学院的其他学生也有这样的属性和行为,则师范学院学生则是一个类。

下面以一张机房的类图为出发点,介绍一下什么是类图?




类图(class diagram)(核心图)
概念:
是描述类、接口、协作、以及他们之间关系的图。
类图的组成:类名、属性、操作。
类图的7元素:类、接口、协作、依赖关系、泛化关系、关联关系、实现关系

  总结:类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。类图可用于表示逻辑类。类图还可用于表示实现类,实现类就是程序员处理的实体。。

类的关系:关联关系、泛化关系、依赖关系、实现关系

关联关系:描述了两个或多个类之间的结构性关系,例如学校雇佣教师、教师—工作—学校
   1.普通关联
   例子:
例如在机房收费系统中,我们的管理员拥有最高的权限,它就是我们的老板,而一般用户就像打工的学生,负责管理机房学生的一些基本信息的查询等。两者之间关联关系就属于雇佣与被雇佣的关系。一个机房就有一个管理员,然而可以有多个一般用户,两者之间的关系为一对多的关系。



2.单向关联、双向关联



 3. 聚合、组合

左边聚合:空心菱形
一个火车包含一个或者多个引擎,一个引擎属于0个或者多个火车
右边组合:实心的菱形
列表包含0个或者多个节点,一个节点只属于一个列表,节点不能脱离列表而存在、先有列表才有节点



依赖关系
依赖:是一种使用关系。假设A类的变化引起了B类的变化,则说名B类依赖于A类。
依赖关系有如下三种情况:
1、A类是B类中的(某中方法的)局部变量;
2、A类是B类方法当中的一个参数;
3、A类向B类发送消息,从而影响B类发生变化;

例子:机房中的日报表和周报表,首先报表的设计依赖于报表设计器,报表的打印依赖于打印机。




例子:司机依赖于小汽车,箭头指向依赖的一方。




泛化:描述的是一种继承关系,特殊元素的对象可以代替一般元素的对象,用这种方法,子元素共享了父元素的结构和行为。
泛化关系(Generalization):A是B和C的父类,B,C具有公共类(父类)A,说明A是B,C的一般化(概括,也称泛化)
泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。
在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字、在C++/C#中使用冒号“:”来实现。
例子:在机房收费系统中,三者都属于学校工作人员,有着工号,姓名,可以查询学生基本信息等




单重继承、多重继承
  单重继承:
子类有且只有一个父类
  多重继承:一个类有两个或两个以上的父类
 例子:飞机属于飞的这一类,就属于单重继承,鸟属于飞这一类,也属于动物这一类,属于多重继承。


  

实现关系:是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。




关于上述四种关系我们需要不断地深入,上一篇博客已经最这四种关系做了总结,可是有时还会忘记,我想还是多来几遍。

对于这四种关系使用的技巧:

1.能用关联表达的就不要用依赖,能用聚合和组合表达的就不要用普通关联。
2. 能用继承的时候就用泛化关系。
3.描述类和结构的关系,用实现关系。
4.两个类之间有结构关系就用关联。
5.其他用依赖。

以上就是我对类图的理解,希望大家多多指导,您的建议就是我收到的最好的礼物!

其它总结

面向对象与面向过程

初识UML

UML—用例图

UML—状态图

UML—活动图

UML—包图、对象图

UML—时序图、协作图

UML—组件图、配置图



  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值