自测题:
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.    ...

《Java大学教程》—第11章 案例研究--第1部分的更多相关文章

  1. 正在学习的Java大学教程

    推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...

  2. 《Java大学教程》—第12章 案例研究--第2部分

    本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1.    正确运行2.    Runhostel.java3.    searchButton

  3. 《Java大学教程》—第21章 高级案例研究

    21.3    需求:P510用例模型(use case model):用例图(use case diagram).用例(use case).行为说明(behaviour specification) ...

  4. 《Java大学教程》—第24章 Java的背景

    本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...

  5. 《Java大学教程》—第23章 Java网络编程

    本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...

  6. 《Java大学教程》—第19章 改进用户界面

    用户与程序交互的媒介称为用户界面(user interface)或人机界面(human-computer interface). 19.2    Border接口8个实现Border接口的标准边框类: ...

  7. 《Java大学教程》—第14章 抽象、继承和接口

    自测题:1.    解释抽象和抽象数据类型的概念.P333抽象的概念是仅仅关注对象可以完成什么工作,而不必担心如何完成工作的细节.类模板通常被称为抽象数据类型.因为这类数据暴露给用户的所有信息仅仅是方 ...

  8. 《Java大学教程》—第5章 数组

    5.6 增强的for循环:访问整个数组,读取数组元素,不基于数据下列5.7 数组方法:最大值.求和.成员访问.查找 1.答:P92存储固定个数相同数据类型的一组元素. 2.答:P92所有存储在一个特定 ...

  9. 《Java大学教程》—第4章 方法的实现

    4.2~3 声明.实现.调用4.4 数据传递:实参.形参.返回值4.6 变量作用域:局部变量(区域内访问).全局变量4.7 重载:运算符重载.方法重载-->多态 1.答:P67方法(method ...

随机推荐

  1. [转]Node.js中koa使用redis数据库

    本文转自:https://blog.csdn.net/offbye/article/details/52452322 Redis是一个常用的Nosql数据库,一般用来代替Memcached做缓存服务, ...

  2. sql server 查询时会锁表吗?

    sql server在执行查询语句时会锁表.在锁表期间禁止增删改操作. 如果不想锁表,那就再表名或别名后面加上WITH(NOLOCK) 如下所示:

  3. Nmap 命令操作详解

    首先在安装nmap 稳定版 https://nmap.org/download.html 选择安装目录 通过cmd  去使用也可以在 安装目录中找到 进行可视化操作 以下是nmap 命令 -sT TC ...

  4. [angularjs] angularjs系列笔记(五)Service

    AngularJs中你可以使用自己的服务或使用内建服务,服务是一个函数或对象,以下代码试验$location服务,$http服务,$timeout服务,$intverval服务,创建自定义服务 < ...

  5. float浮动的世界

    loat有四个属性,分别是: float:none:  没有浮动: float:left:  左浮动: float:right: 右浮动: float:inherit:继承父元素的浮动: ------ ...

  6. Vue2+VueRouter2+webpack 构建项目实战(一):准备工作

    环境准备 首先,要开始工作之前,还是需要把环境搭建好.需要的环境是nodejs+npm,当然现在安装node都自带了npm. 在终端下面输入命令node -v会有版本号出来.就说明安装成功了.输入np ...

  7. 如何用ABP框架快速完成项目(2) - 快的定义!

    为什么要从快的角度来讲这系列课程呢?   因为快是一个很统一很清晰的标准. 所有人对时间都有一个统一清晰的概念.  比如说这系列课程会讲到的一个实例: 集成LinqToExcel, 用我的方法大概耗时 ...

  8. Neutron中插件与代理的总结

    1.总结:

  9. C# 实现FTP客户端

    本文是利用C# 实现FTP客户端的小例子,主要实现上传,下载,删除等功能,以供学习分享使用. 思路: 通过读取FTP站点的目录信息,列出对应的文件及文件夹. 双击目录,则显示子目录,如果是文件,则点击 ...

  10. wap2app(八)-- iphoneX 底部导航的兼容问题

    iphoneX 没有home键,用其打开应用时,iphoneX的底部和应用底部导航重叠,不兼容. 解决办法: 打开manifest.json文件,在“plus”下加入以下代码(安全区域): " ...