《面向对象数据结构与软体开发(Java版)》是清华大学出版社在2005年3月15日编辑出版的图书。
基本介绍
- 书名:面向对象数据结构与软体开发(Java版)
- ISBN:9787302099505
- 定价:128元
- 出版社:清华大学出版社
- 出版时间:2005-3-15
- 装帧:平装
图书简介
本书全面地介绍了面向对象的编程技术。它提供了全面的算法分析的基本内容,比较了算法和数据结构,以及用于面向对象分析和大型信息系统设计的基本软体工程原则。它是第一本在中级水平上介绍软体设计和开发的数据结构书籍。
目录
第1章软体开发
1.1介绍
1.2软体开发过程
1.3评估软体质量
1.3.1软体产品中的质量因素
1.3.2衡量软体质量
1.4软体设计原则
1.4.1模组化和本地化
1.4.2抽象和信息隐藏
1.4.3鬆散耦合度和高内聚度
1.5软体设计方法
1.5.1自上而下的设计方法
1.5.2组合式(自下而上)设计
1.5.3面向对象设计
1.6小结
第2章Java基础
2.1简介
2.2注释和空白
2.3命名约定
2.4数据类型
2.4.1基本类型
2.4.2引用类型
2.5字面量和常量
2.6运算符
2.6.1算术运算符
2.6.2增量和减量运算符
2.6.3关係运算符
2.6.4布尔运算符
2.6.5运算的面向对象表示法
2.6.6字元串运算
2.7基本语句
2.7.1赋值语句
2.7.2用于控制台输入和输出的语句
2.7.3声明语句
2.7.4複合语句或块
2.7.5if语句
2.7.6While语句
2.7.7for语句
2.7.8Switch语句
2.8方法
2.9类声明
2.10Java程式
2.11对象
2.11.1列印对象
2.11.2对象等同性
2.11.3this对象
2.11.4可访问性
2.12继承性
2.13实参传递
2.14修复程式错误
2.14.1编译时错误
2.14.2运行时错误
2.14.3针对错误输出的调试技术
2.15I/O到文本档案
2.16Java虚拟机
2.17图形用户界面I/O
2.18小结
第3章对象和类
3.1介绍
3.2模型和建模
3.3对象
3.3.1什幺是对象
3.3.2状态
3.3.3行为
3.3.4接口
3.3.5标识
3.3.6对象类型
3.4类和实例
3.5描述类互动作用的关係
3.5.1继承
3.5.2聚合
3.5.3关联
3.5.4类图
3.5.5由语言支持的关係
3.6小结
第4章数组和字元串
4.1一个数组应用程式和问题分析
4.2Java中的数组
4.3问题解决方案
4.4引用类型的存储结构、赋值和等同性
4.5字元串
4.6StringBuffer类
4.7小结
4.8Java的新特性
第5章数组算法及其分析
5.1算法分析
5.1.1时间複杂度分析
5.1.2从实验角度比较时间複杂度
5.1.3空间複杂度比较
5.2查找
5.2.1线性搜寻
5.2.2折半查找
5.3排序
5.3.1冒泡排序
5.3.2归併排序
5.4对象比较、接口以及对象类简介
5.5数组字典
5.5.1基本字典
5.5.2基本关键字字典
5.6小结
5.7Java的新特性
第6章抽象数据类型及其实现
6.1简介
6.2数据类型
6.3抽象数据类型
6.3.1简介
6.3.2公理法
6.3.3构建法
6.3.4后置条件法
6.4Java中的抽象数据类型及实现
6.4.1Java中抽象数据类型的语法描述
6.4.2Java中抽象数据类型的语义描述
6.4.3Java中抽象数据类型的实现
6.5断言检查和异常
6.6类和类成员的可见性
6.7契约式设计简介
6.8小结
6.9Java的新特性
第7章列表基础
7.1一个简单的列表应用程式
7.2列表抽象数据类型
7.3实现
7.3.1数组的实现
7.3.2鍊表实现
7.3.3处理异常
7.4连结操作实例
7.4.1列表中的最大值
7.4.2列表中某个特定值的位置
7.4.3在一个值的前面插入另外一个值
7.4.4toString()、equals()和clone()方法
7.5有序简单列表
7.6列表变数
7.6.1尾指针
7.6.2双向鍊表
7.6.3带头结点的鍊表以及循环鍊表
7.7小结
7.8Java的新特性
第8章高级列表概念和Uos数据结构库
8.1列表工具
8.1.1指针
8.1.2叠代器
8.1.3遍历器
8.2字典和列表数据结构库
8.3套用
8.3.1大学图书馆应用程式
8.3.2记忆体管理
8.4多态列表和异质列表
8.5小结
8.6Java的新特性
第9章堆叠
9.1简介
9.2堆叠ADT
9.3实现
9.4套用
9.4.1括弧匹配
9.4.2Java动态模型
9.5小结
第10章递归
10.1递归的数学定义
10.2递归方法
10.3开发和校验递归程式
10.4简单递归程式的时间分析
10.5递归列表方法
10.6小结
10.7Java的新特性
第11章伫列和优先伫列
11.1伫列
11.1.1伫列ADT
11.1.2实现
11.1.3套用
11.2优先伫列
11.2.1优先伫列ADT
11.2.2实现
11.3套用:离散模拟
11.4小结
11.5Java的新特性
第12章面向对象开发:一个实例
12.1简介
12.2面向对象开发生命周期
12.3软体开发的责任人
12.4一种面向对象的开发方法
12.5一个简化的银行的实例
12.5.1确定系统需求
12.5.2确定系统边界
12.5.3标识对象和类
12.5.4标识类之间的互动和类的特徵
12.5.5把类分组成子系统
12.5.6确定高层系统体系结构
12.5.7发现更多类的细节并完成类的详细设计
12.5.8为第一个工作原型写代码
12.5.9从质量角度考虑重新检查系统
12.5.10给第一个工作原型最佳化代码并完成测试
12.5.11系统的输出样本
12.6设计警告
12.7无缝软体开发
12.8对象模型的优点
12.9小结
12.10Java的新特性
第13章树
13.1介绍和套用
13.2二叉树的抽象数据类型
13.3二叉树
13.3.1实现
13.3.2遍历
13.3.3二叉排序树
13.3.4树的工具
13.3.5Uos库中的二叉树数据结构
13.4一般树
13.5套用
13.5.1更好的字典
13.5.2语言、语法和分析
13.5.3表达式求值
13.6小结
第14章基本问题建模及系统设计
14.1简介
14.2静态系统结构建模
14.2.1生成上下文模型
14.2.2如何发现类
14.2.3使用关係描述类互动
14.2.4子系统(包)
14.2.5在系统设计中使用分层结构
14.3系统行为建模
14.3.1用户、参与者和用例
14.3.2事件
14.3.3时序图
14.3.4协作图
14.4学生注册系统的分析和结构设计
14.4.1确定系统需求
14.4.2确定系统边界
14.4.3确定对象和类
14.4.4确定类继承和特性
14.4.5将类组成子系统
14.4.6确定高层系统结构
14.5小结
第15章软体设计的原则
15.1简介
15.2契约式设计
15.2.1回顾
15.2.2客户-供应商契约
15.2.3分包契约和继承
15.2.4预处理设计
15.2.5其他类型的断言支持
15.2.6使用断言的目的
15.3异常处理
15.3.1异常处理的概念
15.3.2基本的异常处理
15.3.3预定义的异常类
15.3.4定义并引发你自己的异常
15.3.5异常处理的策略
15.3.6继承对异常处理的影响
15.3.7总结以及异常的指导原则
15.4类设计
15.4.1类牛命周期
15.4.2类的状态空间和行为
15.4.3函式中的副作用
15.4.4方法中有多少参数
15.4.5保持类的简单性
15.4.6处理异常情况:类的健壮性
15.4.7类级别的设计原则
15.5建立继承分类
15.5.1一些继承分类的概览
15.5.2继承与聚合
15.5.3继承分类的一些特性
15.5.4建立优秀继承分类的原则
15.6面向对象软体的耦合和内聚
15.6.1耦合
15.6.2内聚
15.7软体设计中使用模式
15.7.1简介
15.7.2回顾前面介绍的模式
15.7.3体系结构模式
15.7.4设计模式
15.8子系统设计
15.8.1耦合和内聚
15.8.2子系统的边界类
15.9一个学生注册系统的详细设计
15.10小结
第16章软体测试
16.1软体测试基础
16.1.1基本术语
16.1.2测试的基本概念
16.1.3确定测试用例
16.1.4测试的层次
16.1.5测试的心理
16.1.6测试的原则
16.2人工测试
16.2.1代码阅读
16.2.2结构化走查方式
16.3黑盒测试
16.3.1边界值测试
16.3.2等价类测试
16.4白盒(基于程式的)测试
16.5面向对象的测试
16.5.1测试面向对象软体中存在的问题
16.5.2方法测试
16.5.3测试递归方法
16.5.4基于状态的类测试
16.5.5继承对测试的影响
16.5.6面向对象的集成测试
16.5.7面向对象的系统测试
16.6找出并修改动态错误
16.6.1计画调试
16.6.2强力调试
16.6.3回溯调试
16.6.4归纳调试
16.6.5演绎调试
16.6.6调试示例
16.7小结
第17章包、集合和词典
17.1简介
17.2位向量的实现
17.3哈希表
17.3.1简介
17.3.2设计哈希函式
17.3.3冲突解决技术
17.4专用查找树
17.4.1简介和动机
17.4.2平衡二叉树
17.4.32-3树
17.4.4高效率的数据结构
17.4.5trie树
17.5更好的优先伫列
17.6小结
第18章排序
18.1简介
18.2複习基本排序算法
18.3递归归併排序
18.4快速排序
18.5使用递归关係表示时间要求
18.5.1递归关係推导
18.5.2利用重複替换解决递归关係
18.5.3解决分治递归关係
18.6堆排序
18.7基数排序
18.8地址-计算排序
18.9小结
第19章图
19.1图建模简介和示例
19.2图论的基本定义
19.3图的ADT
19.4路径、可到达性和连通性
19.5图的表示方法
19.5.1邻接矩阵表示法
19.5.2邻接表表示法
19.5.3可查找的图
19.6根据图的矩阵计算路径
19.6.1使用矩阵乘法计算可到达性
19.6.2有效的到达性算法
19.6.3所有节点对最短路径算法
19.6.4单源点最短路径算法
19.7无向图遍历
19.7.1广度优先搜寻
19.7.2深度优先搜寻
19.8套用
19.8.1连通性和分量
19.8.2展开树
19.8.3拓扑排序
19.8.4调度网路
19.8.5测试中的图
19.9小结
第20章档案
20.1简介
20.2外存储设备
20.2.1磁带
20.2.2磁碟
20.3定义和概念
20.4Java中的永久存储支持
20.4.1简介
20.4.2基本的位元组输入/输出
20.4.3输入/输出流小结
20.4.4对象序列化
20.4.5随机访问档案
20.4.6Java缓冲流概述
20.4.7ObjectFileUos类
20.5顺序档案
20.5.1顺序档案的结构
20.5.2处理顺序档案
20.6直接档案
20.7索引顺序档案
20.7.1索引顺序档案表示法
20.7.2索引顺序档案的实现
20.8B-树档案
20.9多关键字访问
20.10小结
附录AJava附录
附录BJava数据结构库
附录C数学础知识