# Class Diagrams(类图)

Class diagrams identify the class structure of a system, including the properties and methods of each class. Also depicted are the various relationships that can exist between classes, such as an inheritance relationship. The Class diagram is one of the most widely used diagrams from the UML specification. Part of the popularity of Class diagrams stems from the fact that many CASE tools, such as Rational XDE, will auto-generate code in a variety of languages, including Java, C++, and C#, from these models. These tools can synchronize models and code, reducing your workload, and can also generate Class diagrams from object-oriented code, for those "code-then-design" maintenance projects.

## Notation(标记)

The elements on a Class diagram are classes and the relationships between them

 Class 类 Classes are the building blocks in object-oriented programming. A Class is depicted using a rectangle divided into three sections. The top section is the name of the Class. The middle section defines the properties of the Class. The bottom section lists the methods of the class. 类是OOP中的基本块.一个类由一个分为三部分的矩形表示.顶层的部分表示类名.中间部分是类的一些属性(成员变量).底层的是类的方法列表(成员函数). Association 联合 An Association is a generic relationship between two classes, and is modeled by a line connecting the two classes. This line can be qualified with the type of relationship, and can also feature multiplicity rules (eg. one-to-one, one-to-many, many-to-many) for the relationship. 联合是两个类之间的最泛指(generic)的关系,由一个联系两个类的直线表示.这条线可以由联系的类型所qualified,也能表示一些multiplicity规则(比如 1对1, 1对多,多对多) Composition 组成 If a class cannot exist by itself, and instead must be a member of another class, then that class has a Composition relationship with the containing class. A Composition relationship is indicated by a line with a filled diamond. 如果一个类不能自己存在, 一定要作为另外一个类的成员而存在,那么这个类和那个包含他的类之间就由一个组成关系.(比如Ferrari的generator一定要装在他的汽车里嘛).一个组成关系由一个带实心菱形的直线表示. Dependency 依赖 When a class uses another class, perhaps as a member variable or a parameter, and so "depends" on that class, a Dependency relationship is formed. A Dependency relationship is indicated by a dotted arrow. 如果一个类要使用另外一个类,可能是一个成员变量或是一个参数,于是这个类就依赖于那个类,一个依赖关系就形成了.一个依赖关系由一个带箭头的虚线表示. Aggregation 聚合,聚集 Aggregations indicate a whole-part relationship, and are known as "has-a" relationships. An Aggregation relationship is indicated by a line with a hollow diamond. 聚集关系表示一个总体和部分的关系,可以由”has-a”连接的两个类就有聚集关系.聚集关系由一个带空心菱形的直线表示.. Generalization 泛化 A Generalization relationship is the equivalent of an inheritance relationship in object-oriented terms (an "is-a" relationship). A Generalization relationship is indicated by an arrow with a hollow arrowhead pointing to the base, or "parent", class. 泛化关系和OO里的继承关系是等价的,可以由”is-a”连接的两个类之间存在此类关系.一个泛化的关系由一个带空心三角的箭头表示,箭头指的是父类.

Consider the example of a veterinary system. Animals served, such as dogs and birds, are tracked along with their owners. The following diagram models a potential solution. Since dogs and birds are "a kind of" animal, we use a Generalization relationship.

• 本文已收录于以下专栏：

举报原因： 您举报文章：UML翻译及学习笔记1--Class Diagrams(类图) 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)