《Java大学教程》—第11章 案例研究--第1部分

时间:2021-05-08 03:59:17

自测题:
1.    图11-1的UML设计中各个类之间的关系。
Hostel与TenantList是关联关系;
TenantList和PaymentList与ObjectList是泛化关系。TenantList和PaymentList是ObjectList的子类;
TenantList与Tenant是聚合关系;
PaymentList与Payment是聚合关系;
Tenant与PaymentList是关联关系。

注:不太明白什么时候描述关系,可能用来描述的还是业务上的关系。

2.    为什么开发一个通用的ObjectList类。
该系统需要开发两种列表,PaymentList和TenantList,为了避免重复开发代码,因此开发了一个通用的ObjectList类,
然后通过继承方法分别为PaymentList和TenantList添加特定的属性和方法。

3.    在UML类图中如何记录类的属性?
类属性的语法:
[可见性]属性名[:类型][=初始值][{属性字符串}]
(1)可见性:类中属性的可见性主要包括公有(Public)、私有(Private)和受保护(Protected)。
在UML中,用“+”表达公有类型,用“-”表达私有类型,而用“#”表达受保护类型。UML的类中不存在默认的可见性,
如果没有显示任何一种符号,就表示没有定义该属性的可见性。
(2)属性名:每个属性都必须有一个名字以区别于类中的其他属性,是类的一个特性。属性名由描述所属类
的特性的名词或名词短语组成。按照UML的约定,单字属性名小写。如果属性名包含多个单词,这些单词要合并,
且除了第一个单词外其余单词的首字母要大写。
(3)类型:说明属性的数据类型。在类的图标里,可以指定每个属性值的类型。可能的类型包括字符串
(string)、浮点型(float)、整型(int)和布尔型(boolean),以及其他的枚举类型。指明类型时,需要在
属性值后面加上类型名,中间用冒号隔开。还可以为属性指定一个默认值。
(4)初始值:为了保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性,可以设定属性的初始值。
(5)属性字符串:属性字符串用来指定关于属性的其他信息,例如,某个属性应该是永久的。任何希望添加
在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。

4.    如何改进本章案例研究中开发的应用程序。
(1)使用图形化用户界面。下章会完成。
(2)其他可以改的地方太多了,就不扩展了。

编程练习:代码附件
1.    PaymentTester.java
2.    PaymentTester.java
3.    TenantTester.java
4.    TenantListTester.java
5.    TenantListTester.java
6.    ...