首页 理论教育信息系统开发方法与实践教程中图书管理系统的类

信息系统开发方法与实践教程中图书管理系统的类

【摘要】:如图9-2所示,显示了图书管理系统中书的类。图9-2 类的示例隐藏属性部分和操作部分,并不代表没有属性或操作,只是没有显示出来。在UML中,属性的语法为:[可见性]属性名[:类型][=初始值][{属性字符串}]]内的部分表示是可选的。UML中不存在默认的可见性,如果没有显示任何符号,则表示没有定义该属性的可见性。在UML中,接口的表示方法有两种,如图9-5所示。

1.类(Class)

类是面向对象建模的核心。类是对一组具有相同属性、操作、关系和语义对象的描述。对象的范围很广,包含了现实世界中的物理实体、逻辑事物、行为事物,还可以是纯粹概念性的事物。

对象是类的实例,有着各自的状态和行为。状态用各种类型的数值描述,行为用方法来实现,对象的生命周期由附加给类的状态机描述。

在UML中,用一个三层的矩形表示类,分别是:名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。顶端部分存放类的名称,中间部分存放类的属性名称、类型和默认值,底部存放类的操作名称、参数列表及操作的返回类型。虽然这三部分的语法类似C++、Java等面向对象的编程语言,但对类描述的语法是独立于编程语言的。

如图9-2所示,显示了图书管理系统中书的类。可以根据建模的实际情况隐藏属性部分或操作部分,或者两者都隐藏。

978-7-111-47279-7-Chapter09-2.jpg

图9-2 类的示例

隐藏属性部分和操作部分并不代表没有属性或操作只是没有显示出来操作的参数

列表和返回值有时也会部分隐藏起来

(1)名称

名称是每个类的标识,规范的类名称应该是一个名词,不应该有前缀或后缀,含义应该尽可能明确,以免造成歧义。类的名称分为简单名称和路径名称。单独的名称(不包含冒号的字符串)被称为简单名;用类所在包的名称作为前缀的类名叫路径名。如图9-3所示,左边类使用简单名,右边类使用路径名,类项目属于包工程的。

978-7-111-47279-7-Chapter09-3.jpg

图9-3 类的名称

(2)属性

属性描述了类的特性,是所有对象共有的。类可以有任意数目的属性,也可没有属性。在UML中,属性的语法为:

[可见性]属性名[:类型][=初始值][{属性字符串}]]内的部分表示是可选的

1)可见性。可见性描述了该属性是否对其他类可见,以及是否可被其他类引用。其中属性的可见性包括公有(Public)、私有(Private)和受保护(Protected)三种。公有表示其他所有类可以使用和查看该属性;私有可见性,表示只有自己可以查看和访问该属性;受保护指父类和子类间可以共享属性,经常和泛化一起使用。在UML中,公有类型用“+”表达,私有类型用“-”表达,受保护类型用“#”表达。UML中不存在默认的可见性,如果没有显示任何符号,则表示没有定义该属性的可见性。

2)属性名。每个属性必须有个名字区别于类的其他属性。通常情况下,属性名由描述所属类特性的名词或名词短语组成。按照UML约定,单字属性名小写,如果包含多个单词,则这些单词合并。除第一个单词,其余单词的第一个字母都要大写。

3)类型。属性的数据类型可以是简单类型,例如整型、布尔型、实型,属性的数据类型也可以是类类型的。

4)初始值。设定初始值有两个用处:

●保护系统的完整性防止漏掉值或非法值破坏系统的完整性

●为用户提供易用性(www.chuimin.cn)

5)属性字符串。用于指定关于属性的其他信息。

(3)操作

属性是描述对象特性,操作用于操纵属性或执行其他动作,一个类可以有多个操作或者没有操作。操作由返回类型、名称以及参数列表组成,一起被称为操作签名,操作签名描述了该操作必需的所有信息。在UML中,类操作的语法为:

[可见性]操作名[(参数表)][:返回类型][{属性字符串}]

978-7-111-47279-7-Chapter09-4.jpg[]内的部分是可选的

1)可见性。操作的可见性包括:公有(Public)、私有(Private)、受保护(Protected)和包内公有(friendly)四种,分别用“+”“-”“#”和“~”来表示。可见性为公有的操作,其他包的所有对象可以调用;可见性为私有的操作,只有同一类的对象本身可调用;可见性为受保护的操作,只有子类的对象可以调用;可见性为包内公有的操作,只有同一包的对象可以调用。

2)操作名。操作名是描述类行为的动词或动词短语。和属性名的表示方法类似,单字操作名小写,如果包含多个单词,把单词合并,除第一个单词外,其余单词的首字母要大写。

3)参数表。参数表是用逗号隔开的多个参数,参数的定义方式采用“名称:类型”。

4)返回类型。返回类型是可选的,在具体编程语言中,一般用关键字void表示无返回值。

5)属性字符串。在操作的定义中希望加入预定元素之外的信息,可使用属性字符串。

(4)注释

如图9-4所示,可以使用注释为类添加更多的信息。

978-7-111-47279-7-Chapter09-5.jpg

图9-4 注释

注释既可包含文本也可包含图形

2.接口(Port)

接口是在没有给出对象实现和状态的情况下对对象行为的描述,且没有对外界可见的关联。通常情况下,一个类最多只能继承一个类,但可以同时实现多个接口。接口中的方法只有签名部分。实现接口的类要实现接口中的所有抽象方法。

在UML中,接口的表示方法有两种,如图9-5所示。左边是接口的矩形表示法,右边是接口的棒棒糖表示法。

978-7-111-47279-7-Chapter09-6.jpg

图9-5 接口的两种表示方法