【IT168 技术文章】
类图表示不同的实体(人、事物和数据)如何彼此相关,显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类,比如摇滚乐队、CD、广播剧,或者贷款、住房抵押、汽车信贷及利率的抽象描述。类图还可用于表示实现类,实现类就是程序员要编写的类。实现类图与逻辑类图可能会用来描述一些相同的类。然而,实现类图与逻辑类图不会使用相同的描述属性。
类图是一个分为三个部分的矩形。最上面的部分显示类的名称,中间部分显示类的属性,最下面的部分显示类的操作(或者说“方法”)。实际上,最常用、最简单的类图就是一个在里面显示了类名的长方形,因为在UML中,大多数类只要有一个能够清楚表达的命名就可以了。
在类名部分还可以显示类的构造类型。类的构造型显示在一对双角括符号“? ?”之间,经常放在类的名称上面。常见的构造类型包括实现类(直接显示类名)、接口(在类名上面显示 ?interface?),以及工具类(在类名上面显示 ?utility?)。如果类名用斜体表示,或者在类名下面标上{abstract},就表示这个类是一个抽象类。
在属性和方法的前面有一个字符用来表示属性或方法的作用域,它们的意义如下:
—“-”表示属性或方法是私有的(private);
—“#”表示属性或方法是保护的(protected);
—“+”表示属性或方法是公用的(public)。
紧接在属性或方法的参数名称的冒号(:)号之后,显示了属性的类型或方法的参数的类型。方法的返回值类型显示在方法后面的冒号之后。
下图显示了一个类Person的类图,它对应的类的C#源代码如下:
Person
+name: string
+sex: char
-age: int
+Work(in type: string): void
+Person(in name: string, in sex: char, in age: int): void
+Speak(): void
+Eat(): void
类图示意
类图示意
class Person
{
public string name;
public char sex;
private int age;
public Person(string name, char sex, int age)
{
}
public void Eat()
{
}
public void Speak()
{
}
public void Work(string type)
{
}
}
+name: string
+sex: char
-age: int
+Work(in type: string): void
+Person(in name: string, in sex: char, in age: int): void
+Speak(): void
+Eat(): void
类图示意
类图示意
class Person
{
public string name;
public char sex;
private int age;
public Person(string name, char sex, int age)
{
}
public void Eat()
{
}
public void Speak()
{
}
public void Work(string type)
{
}
}