UML—类图

          类图是描述类,接口,协作以及它们之间关系的图,用来显示系统中各个类的静态结构。而类是类图的基本组成元素(其他的还有:Interfaces,collaborations,dependency,generalizationand association relationships,packages
of subsystems)之一,可以说是类图非常基础的东西。

一,类的构成

 

     类由3部分构成,类名,属性,和操作。如图,很熟悉的command,以前大家都叫它控件,但是如果到了面向对象的程序设计里面,我们就应该叫它class了。

       在这个类图中,类名为:command

                             属性为:caption,width,height,name(protected)

                                              方法为:click,doubleclick,lostfocus,getfocus,keypress.

   在这里,我只写了一些常用属性和方法,但是在我们自己设计时,就不能这么简略了。

二,类图的关系

         1,普通关联

    

  其中,关联有3中修饰:名称,角色,多重性。

  在上图中,“工作于”是关联的名称,教师在关联中扮演的角色时雇员,学校扮演的角色是雇佣者,多重性即两个类存在的相互连接的数目,如图,为1.

      2,聚合关联和组合关联

          这两个关联很像,聚合关联是一种“has-a”的关系,聚合中没有严格的制约关系,一方不存在,令一方还可以存在;而组合关联部分和整体有一种附属关系,非常明显。如图:

  

 

  3,依赖关系

  

  在依赖关系中,依赖双方某一个模型元素的变换必然影响到另个模型元素。如图,如果频道突然没信号,电视机也无法收到台。

   4,泛化关系

   

   泛化描述类与类之间的继承关系,这是一种“is-a-kind of”的关系。如图,鸟和猫都从动物那里继承了动物的一部分东西,它们都是一种动物。

  5,实现关系

     

  实现是规格说明和其实现间的关系。但是它不继承结构而只继承行为。

三,类图的深入讨论

  1,可见性

       主要是访问权限的问题。

其中各个访问权限对于符号如图。

 

2,范围

 

  每个实例自己拥有自己的属性和方法。

  对于类中的静态成员来说:所有实例共享一个成员。

      静态成员用途:

1,可以起一个计数器的作用

2,通过类名来调用方法:mathpack.sin通过静态成员可以实现调用库函数

3,抽象类不能实例化

     抽象的类只是在概念上存在,这样的类,但是在使用时,可以让其他类继承抽象类的操作。

4,属性和操作的语法

     属性语法:

         [可见性] 属性名 [:类型] [=初始值] [{属性字符串}]

   操作语法:

       [可见性] 属性名 [(参数表)] [:返回类型] [{属性字符串}]

      

  

时间: 2024-10-25 17:50:10

UML—类图的相关文章

PHP与UML类图: PHP and UML Class Diagrams

这篇短文写的不错,用PHP来解释UML(或者反过来说)可以说是一个创新了,通过这篇文章,我也发现了一个好站: www.phppatterns.com .各UML术语的翻译来源于我正在看的<UML用户指南(The Unified Modeling Language User Guide)>一书. UML(Unified Modeling Language, 统一建模语言)是一种通过图的方式表示软件的机制.本质上它允许我们通过画图来设计我们的程序,并且如果有相应的工具,我们甚至可以从图来直接产生代

使用UML类图设计Java应用程序(二)

在第一部分中,我们实现了5个类.在本部分中,我们接着说明如何利用UML类图来设计余下的各个类.为减少篇幅,本部分着重讲解UML类图及应用,对Java实现代码不再详细描述. 六.CGPoint类 CGPoint类说明了如何利用非抽象类扩展抽象类.CGPoint类是CGObject的子类,CGPoint类扩展了 CGObject类,CGPoint类没有再它所继承的变量中增加变量,它所声明的方法只有构造函数和要求它实现的抽象方法.其类图如下: Java实现代码为: 七.CGBox类 CGBox类也扩展

使用UML类图设计Java应用程序(一)

UML已成为面向对象设计的标准图形化工具,在UML定义的各种图中,本文只涉及类图.Java应用程序由许多类所构成,类图的设计与实现,是Java实现面向对象应用程序的核心.本文通过一个具体的应用程序的设计与实现过程,详细说明了利用UML类图设计Java应用程序,使得开发过程标准化.可视化,代码编程简单化. 在类图中,类被描述为带有三层的盒子. 顶层为类名,一般用加粗字体表示.如果类是抽象的,其名称用斜体表示:如果类是接口,则在类名上方标注<<interface>>. 中间层包含类的属

UML类图几种关系的总结

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向父类 实现(Realization

[好文要转要收藏] UML类图几种关系的总结

在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) [泛化关系]:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. [箭头指向]:带三角箭头的实线,箭头指向父类 2.实现(Realization) [实现关系]:是一种类与接口的关系,表示类

UML类图简介

概述 设计模式中常常使用UML来表示类与类,类与接口之间的关系,UML类图是设计模式入门必备的技能,感觉各种关系比较多,这里做一下总结. 类与接口的表示 类与接口通常是一个矩形框表示,一般分为3层,第一层显示类的名称,如果是抽象类则类名用斜体表示.第二层代表类的特性,通常是字段和属性,第三层是类的操作,通常表现为方法或者行为,其中+表示public,-表示private,#表示protect  常用关系 继承  继承关系用空心三角形+实线来表示,在Java中体现为extends关键字  实现接口

UML类图各符号含义

UML类图各符号含义   类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也还

intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理(转)

  UML:  Ctrl + Alt + Shift + U 之前写过一篇IntelliJ IDEA 13试用手记 ,idea还有很多高大上的功能,易用性几乎能与vs.net媲美,反正我自从改用idea后,再也没开过eclipse,今天来看几个高级功能: 一.与JIRA集成 jira是一个广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域.idea可以很好的跟它集成,参考下图: File -> Settings ->Task

UML类图

什么是UML?UML是一种用于创建程序模型的可视化语言.UML有多重功能不同的图.通过使用UML,可以让复杂的系统变的简单且容易理解.因为系统常常都是让人难人理解,并且系统之内的信息处理也是相当复杂,而UML提供了不同的图来表示不同类型的信息. 什么是类图 UML图中最最基本的是类图.它对类做描述,并表示类之间的关系. 类之间的关系包括: 类A 是    类B :is-a的关系 类A 包含 类B : has-a的关系 类A 使用 类B : has-a的关系 那么,对于一个类来说,主要表现三方面的

java-myEclipse生成uml类图失败,报Unhandled event loop exception

问题描述 myEclipse生成uml类图失败,报Unhandled event loop exception 在用单个包或类可以正常生成uml类图,在用测试的小工程也可行,但是用在公司的工程上就失败了,不知道是不是工程太大,下面是log里的记录: !ENTRY org.eclipse.ui 4 0 2015-05-07 16:17:57.118 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTError: