UML --类图(二)

1、泛化关系:是一种继承关系,表示通常与特殊的关系,用于描述父类与子类之间的关系。 在UML中,泛化关系使用带空心三角形的实线来表示,即子类 指向 父类。java

输入图片说明

实现代码以下ide

//User类
public class User {

	private String name;
	private int age = 0;
	private int gender;

	public User getUserInfo(String userId) {
		// TODO implement
		return null;
	}

	public int updUserInfo() 
	{
		// TODO: implement
		return 0;
	}
	
	protected int creatUserInfo()
	{
		// TODO: implement
		return 0;
	}

}
//ZhangSan类
public class ZhangSan extends User{
	
	private String nickName;
	
	public int playBall() 
	{
		// TODO: implement
		return 0;
	}
}
//LiSi类
public class LiSi extends User{
	
	private String address;
	
	public int swim() 
	{
		// TODO: implement
		return 0;
	}
}

2、实现关系:是一种类与接口的关系,类实现接口提供的方法 不少面向对象的语言中都引入了接口的概念,在接口中,一般不会存在属性,只有方法,并且全部的方法都是只声明,没有实现。 在这种关系中,类实现了接口提供的全部方法。 在UML中,类与接口之间的实现关系是用带空心的三角形虚线来表示。以下图所示学习

输入图片说明

实现代码以下code

//接口以下
public interface Animal {
	
	public void sound();
	
	public void move();

}
//实现类以下
public class bird implements Animal {

	@Override
	public void sound() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void move() {
		// TODO Auto-generated method stub
		
	}

}

3、关联关系:是一种拥有关系,它使一个类知道另外一个类的属性和方法。 关联关系分为单向关联(单个箭头)与双向关联(两个箭头) 箭头及指向:普通箭头的实心线,指向被拥有者。 以下图所示对象

输入图片说明

上图中,很明显,老师与学生的关系是多对多,即一个老师存在多个学生,一个学生也存在多个老师;学生与课程的关系是一对多,即一个学生要学习多门课程。继承

实现代码以下接口

//老师类
public class Teacher {

	private Student studentList;
}
//学生类
public class Student {
	
	private Teacher teacherList;
	private Course courseList;

}
//课程类
public class Course {
	
}

4、聚合关系:它表示总体与部分的关系,且部分能够脱离总体单独存在。 在UML中,聚合关系采用带空心菱形的实线箭头表示,箭头指向部分。 以下图 汽车包含 发动机(1个) 与 轮胎(4个),他们的关系是总体与部分的关系。图片

输入图片说明

5、组合关系:它是总体与部分的关系,但部分不能脱离总体而单独存在。 在UML中,组合关系采用带实心菱形的实线箭头表示,箭头指向部分。 以下图 头包含 嘴巴(1个) 与 眼睛(2个),他们的关系是总体与部分的关系。get

输入图片说明

6、依赖关系:它是一种使用关系。 大多数状况下,依赖关系体如今某个类的某个方法必须使用另一个类的对象最为参数。 在UML中,依赖关系采用带箭头的虚线表示,由依赖的一方指向被依赖的一方。 例如 人要拍照,他必须依赖照相机才能拍照。图以下 人有个想拍照的方法,它依赖相机的 拍照方法 才能拍照it

输入图片说明

实现代码以下

//people类
import java.util.*;

/** 人类 */
public class People {
   public void wantCameraCamera(Camera camera) {
        camara.takePicture();
   }

}
//Camera类
import java.util.*;

/** 照相机类 */
public class Camera {
   public void takePicture() {
      // TODO: implement
   }

}