手把手教你使用start uml画类图
来源:互联网 发布:淘宝产品视频制作价格 编辑:程序博客网 时间:2024/06/05 14:54
原文地址:http://blog.csdn.net/coderinchina/article/details/43735841
在画类图之前,首先得了解类与类之间的关系,刚开始也是知道类与类之间就是继承啊,什么聚合 关联,自关联等,都不太懂,其实也不是不懂,是平时不知道这些名词,但我们在写代码中无时无刻在使用到了,如果是面试,肯定要被面试官鄙视了,哈哈,现在就类与类之间的关系大致分为如下几种
1:依赖(Dependency)
2:泛化(Generalization)
3:实现(Realization)
4:关联(Association)
5:聚合(aggregation)
6:组合(combination)
现在一一对这6个进行概念性的分析并利用类图去展示
A:依赖
类一方的改动将引起另一方的变动。这是一种典型的临时关系,代表了类之间的一种短暂的交互。依赖关系在 Java 语言中体现为局部变量、方法的参数或者对静态方法的调用
代码体现:
Person.java
public class Person {
public String getContent(String name){
String result = "您的名字是";
if(name!=null&&!"".equals(name)){
return result+name;
}
return "";
}
}
Test.java
public class Test {
public static void main(String[] args) {
Person p = new Person();
String name = p.getContent("狗");
System.out.println(name);
}
}
类图表示:
也就是说在Test类中获取到Person对象后 你要去调用getContent()方法并且这个方法必须要传递一个参数,不传递就报错,并且这个方法中还依赖了一个局部变量,所以说Test类是依赖Perosn类,否则无法运行!
B:泛化
泛化定义了一般元素和特殊元素之间的分类关系,如果从面向对象程序设计语言的角度来说,类与类之间的泛化关系就是平常所说的类之间的继承关系。如人与男人和女人的关系,比如人有眼睛 年龄 名字,那么男人和女人都是有这些属性的,所以不必去重新定义这些属性,只要继承Person类就相当于有了这些数据,
代码体现:
public class Animal {
public int age;//动物年龄
public String sex ;//性别
public void call(){
System.out.println("动物叫");
}
public void eat(){
System.out.println("动物吃");
}
}
Dog.java
public class Dog extends Animal {
}
Cat.java
public class Cat extends Animal {
}
测试类Test
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.call();
Cat cat = new Cat();
cat.eat();
}
}
uml图如下:
C:实现
实现是一种类与接口的关系, 表示类是接口所有特征和行为的实现,一般都是几个类的行为都有共性,或者约定的一般定义一个接口,子子类去实现
代码体现:
HttpBase.java
public interface HttpBase {
public void get();
public void post();
}
HttpClientGet.java
public class HttpClientGet implements HttpBase {
@Override
public void get() {
}
@Override
public void post() {
}
}
HttpClientPost.java
public class HttpClientPost implements HttpBase {
@Override
public void get() {
}
@Override
public void post() {
}
}
类图如下:
D:关联
关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法 ,关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。在 Java 中,关联关系是通过使用成员变量来实现的。 如人与车
关联有单向关联和双向关联
单向关联:就是自己的类中有引入自己的类引用变量,这个单例模式就是一个很好的例子
双向关联:就是一个类中的成员变量有一个有另一个类的引用,所以才可以获取到另一个类的方法
代码体现:
A.java
public class A {
String name;
int age;
B b;
public void print(){
System.out.println("我是A中的方法");
b.back();
}
public void setB(B b) {
this.b = b;
}
}
B.java
public class B {
public void back(){
System.out.println("谁调用了我 哈哈");
}
}
Test.java
public class Test {
public static void main(String[] args) {
A a = new A();
a.setB(new B());
a.print();
}
}
类图:
E:聚合
- 手把手教你使用start uml画类图
- 手把手教你使用start uml画类图
- 手把手教你使用start uml画用例图
- 手把手教你使用start uml画用例图
- 手把手教你使用VSS
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用git
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用Git
- 手把手教你使用GiT
- 手把手教你使用Git
- 手把手教你使用Git
- 解决Oracle ORA-12505, TNS:listener does not currently know of SID given in connect
- javascript eval和JSON之间的联系
- 专注
- extern "C"的用法解析
- Java虚拟机学习摘要
- 手把手教你使用start uml画类图
- 为什么这样能够防止头文件重复调用?
- Linux内核分析(三)内核启动过程分析——构造一个简单的Linux系统
- "Shortest" pair of paths - POJ 3068 费用流
- Android进程与线程基本知识
- 数据结构学习第二课2
- HTML第九节(css样式基本知识)
- php优化技巧
- 每个Java程序员必须知道的5个JVM命令行标志