手把手教你使用start uml画类图

在画类图之前,首先得了解类与类之间的关系,刚开始也是知道类与类之间就是继承啊,什么聚合 关联,自关联等,都不太懂,其实也不是不懂,是平时不知道这些名词,但我们在写代码中无时无刻在使用到了,如果是面试,肯定要被面试官鄙视了,哈哈,现在就类与类之间的关系大致分为如下几种

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 {@Overridepublic void get() {}@Overridepublic void post() {}}

HttpClientPost.java

public class HttpClientPost implements HttpBase {@Overridepublic void get() {}@Overridepublic 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();}}

类图:

打掉的应是脆弱的铁屑,锻成的将是锋利的钢刀。

手把手教你使用start uml画类图

相关文章:

你感兴趣的文章:

标签云: