一直以来对java的类图关系都不太明白.有时间现在自己来整理下思路.
1.什么是类图
类图(class diagram)描述了模型的静态结构,包括模型中的类的类的内部结构以及于其他类的关系,在结构化设计一个系统的时候类图可以让我们的思路更加清晰。
2.学习类图有什么好处呢?
自我总结:我们从java类图中很清晰看到这个类中的方法,属性,以及实现的接口,继承类,引用其他的对象等等.类图简单 易懂 明了.在查看一些框架源码的时候 因为框架使用很多经典的设计模式 其实对于设计模式本人也不是很懂往往看着看着就在代码中迷失方向了,但是如果我们结合类图可以很快的了解到具体的实现 理清你的思路.
3.类图的种类(大概概念)
一个类与其他的类常见的关系有:
(1).一般化关系:关系表现是与类之间是(IS A)的关系.在我们的java代码中就是继承的关系.父类的引用指向子类的实现.我们的子类可以和父类就是(IS A)关系.比如说我们代码里面经常用到list集合.通常我们的代码这样写:
List list=new ArrayList();
我们的ArrayList和List就可以说是(IS A)关系
(2).关联关系: 关联关系表现为类与类之间的(has a)关系。它使一个类知道另一个类的属性和方法。关联关系表示的是类与类之间的持久关系,这种关系一般是表示一种业务逻辑上的关系,需要保存到数据库中的.
比如说我们的程序中的用户和部门的关系.一般的都是一个用户属于一个部门.
User和 Department.就是象是我们的数据库里面的外键关联一样。我们在user表可以有个departmentid关联到是Department表.关联关系其实在Hibernate中是相对于少的一方对多的一方.
(3).聚合关系:聚合关系是关联的一种,是一种强关联关系。聚合关系还体现了一种整体与个体的关系。一上面的User和Department为列.我们从反方向来说。一个部门下面有多的用户.很多的用户聚合在一起就是一个部门。
(4).组合关系(合成关系):
是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。
(5).依赖关系:
依赖关系是表现为类与类之间的一种(use a)的关系。一个类用到了另一个类,为了完成一特定的操作。但是类与类之间不存在业务逻辑上的关系。依赖关系是针对于程序来说的。依赖关系体现在程序中主要是些局部变量、方法参数、或对一个类方法的调用。比如说:我们UserManager要有addUser(),deleteUser();这两个方法具体实现都需要调用UserDao对象的方法。这个时候 就说UserManager依赖UserDao去实现增加用户,和删除用户的操作。
这个是具体到业务实现来说的
(6).泛化关系:表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系.我们的模版抽象方法就是这种模式.
(7).实现关系:关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。
其中,聚合关系合成关系又属于关联关系
4.类图的表示(如果是以图形该怎么表示)
(1)类表示:类图中已长方形表示是对象的蓝图,其中包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如图A的“Java”区域所示。
Du: (+)—public<所有,异包类> (#)—protected<仅异包子类> ()—省略<同包> (-)—private<本类>
(2)接口的表示:接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口既可用下面的那个图标来表示(上面一个圆圈符号,圆圈符号下面是接口名,中间是直线,直线下面是方法名),也可由附加了<<interface>>的一个标准类来表示。通常,根据接口在类图上的样子,就能知道与其他类的关系
(3)包:
类图中就是两个叠在以前的长方形表示表示。上面的长方形比下面的小。
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。你还会拥有物理性的包,它直接转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。
(4)依赖(Dependency):
虚线+箭头指向被调用的类。
实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例。更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。
(5)关联关系:
当前类用箭头+实指向被关联的类
(6)聚合关系:
空心菱形+实线+箭头指向部分
(7)合成关系:
实心菱形+实线+箭头指向部分
(8)泛化关系:
由子类开始从实线+箭头指向父类
(9)实现关系:
由父类虚线+箭头指向子类的实现
5.类图在项目中的具体运用(具体实例)
看附件.
6.画出简单的类图(具体引用)
看附件.
附件是直接在网上拷贝的资料.
分享到:
相关推荐
Java类图是软件开发过程中非常重要的一个组成部分,它主要用于表示面向对象设计中的类、接口、继承关系、实现关系等概念。在Java编程中,绘制类图可以帮助开发者清晰地理解系统结构,提高代码质量和可维护性。本文将...
### Java 类图详解 #### 一、类图概述 **类图**是UML(Unified Modeling Language)中的一种重要图表,主要用于描述系统的静态结构。它由多个模型元素组成,包括但不限于类、接口、包以及它们之间的关系。通过类图,...
本文将详细介绍如何在Eclipse集成开发环境中生成Java类图和时序图,以及如何利用提供的资源来实现这一目标。 首先,我们需要了解Eclipse中的UML支持。Eclipse本身并不内置UML建模功能,但可以通过安装插件来扩展这...
标题“ModelGoon-4.4.1-生成java类图eclipse插件”揭示了我们讨论的主题是一款名为ModelGoon的Eclipse插件,其版本为4.4.1,主要功能是帮助Java开发者生成Java类图。这款插件能够将Java源代码解析成图形化的表示,...
《Snowberry Plugin 1.0.4:Eclipse的Java类图插件详解》 在软件开发过程中,可视化工具对于理解和管理代码结构至关重要。其中,类图作为一种模型,能够直观地展示类之间的关系,帮助开发者更好地理解代码逻辑。...
一个查看Delphi、Java类图的开源工具。
尤其在Java开发中,UML图表能够清晰地表达代码结构和程序逻辑,提高团队间的沟通效率。"Tiny UML"是本文的重点,它是一个专门针对Java开发者设计的开源工具,便于快速绘制UML2图。 TinyUML的特点和功能包括: 1. *...
IntelliJ IDEA Java类图查看方法 IntelliJ IDEA 是一款功能强大且流行的集成开发环境(IDE),它提供了许多实用的功能来提高开发效率和质量。其中,查看 Java 类图是其中一个非常实用的功能,能够帮助开发者快速...
这是 Java 1.4.2 以来绝大部分类的UML类图,通过类图学习 Java 是提升读者 Java 能力的一个极佳的途径。给读者以把握全局的感觉。当然读者要下功夫去理解这些类图才行。 类图共2种,一种是黑白图片,一种是彩色图片...
Snowberry允许您在类上附加设计模式(Design Pattern)信息, 这些信息同样会被自动嵌入到响应类的Javadoc中。Snowberry内置了GoF所提出的23种常用的设计模式,您可以直接在您的代码上套用这些设 计模式。...
Java类图是面向对象设计中的一个重要工具,它用于可视化地表示Java类的结构、属性、方法以及类之间的关系。在软件开发过程中,类图能够帮助我们理解系统的整体架构,提高代码的可读性和可维护性。这个压缩包“java...
**Java JDK 6 API 文档与 UML 类图详解** Java Development Kit (JDK) 6 是一个重要的软件开发工具,主要用于编写、编译、调试和运行Java应用程序。本资源包含了一个特别的版本,即带有统一建模语言(Unified ...
本资源包含“设计模式(含ppt,类图设计,java实例)”,旨在帮助开发者深入理解并应用设计模式。 首先,`design.ppt`很可能是对设计模式的详细讲解,可能涵盖23种GOF(GoF,Gamma, Helm, Johnson, Vlissides)经典设计...
《基于Java的电子通讯录系统详解》 在信息化时代,电子通讯录系统已经成为了人们日常生活中不可或缺的一部分。本文将深入探讨一个基于Java编程语言实现的电子通讯录系统,旨在帮助读者理解其工作原理、设计思路以及...
(1) 用类图设计Dog和Penguin类。 运用本章电子宠物系统中领养宠物功能的需求。 ①运用面向对象思想抽象出Dog类和Penguin类,画出对应类图。 ②根据类图编写Dog类和Penguin类 ③添加默认构造方法
本文将详细介绍如何使用这款300K的小巧类图绘制软件,以及与Java和面向对象编程相关的知识点。 该软件因其体积小、无需安装的特点,非常适合临时使用或在资源有限的环境中操作。用户可以直接运行程序,快速创建类图...
UML类图符号 UML类图符号是Unified Modeling Language(统一建模语言)中的一个重要组成部分,它们用来描述类与类之间的关系。这些符号可以帮助开发人员更好地理解和设计软件系统。 类(Class) 在UML类图中,类...
1. **Java类图生成**:ModelGoon可以扫描并解析Eclipse项目中的Java源代码,根据类、接口、继承关系、方法等信息,快速生成直观的UML类图。这对于理解和管理复杂代码库非常有帮助。 2. **包依赖分析**:除了生成...
UML 类图实例 UML(Unified Modeling Language)是一种标准的建模语言,用于描述软件系统的结构、行为和关系。类图(Class Diagram)是 UML 的一种重要组成部分,用于描述类之间的关系和结构。本文将通过一个示例,...