书籍详情
Java面向对象程序设计教程
作者:(美)Dennis Kafura著;袁晓华,石耀斌等译
出版社:机械工业出版社
出版时间:2003-03-01
ISBN:9787111115816
定价:¥49.00
购买这本书可以去
内容简介
编辑推荐:本书综合介绍了各种面向对象的编程概念、设计策略、软件工程中的问题以及JAVA语言特征。可作为本科计算机专业教材,对初学者和具有一定编程经验的程序员同样适用。本书主要特点:·完整的面向对象编程入门指地,大量习题便于教学,也可供自学使用·用两个实际可操作的例子——图形用户界面和生态仿真,演示了语言的功能和效用·重点介绍良好的面向对象设计基本原则,而不拘泥于JAVA语言的语法和细节·通过一步步的指导,使读者学会利用常见的工具和技术来构造复杂的系统·通过动画式的仿真或交互式的组件生动形象地说明关键的术语,这些仿真或组件是JAVAAPLET创建的,可以在标准浏览器上显示·基于SUN公司的JAVA2·用专门一章来介绍如何利用最新的SWING组件来构造图形用户界面
作者简介
DennisKafura,在面向对象的编程、操作系统和软件工程领域有20年的教学研究经验。他是弗吉尼亚技术学院和州立大学计算机科学系教授、美国计算机学会(ACM)和IEEE计算机协会的成员。Kafura在欧洲(ECOOP)和美国(OOPSAL)的重要会议上发表过多篇论文。他还是《Object-OrientedSoftwareDesignandConstructionwithC++》(PrenticeHall,1998r年出版)一书的作者。相关图书数据仓库(原书第3版)信息论、编码与密码学3D游戏卷1实时渲染与软件技术3D游戏卷2动画与高级实时渲染技术数字图像处理疑难解析现代信息检索CAXA数控铣CAD/CAM技术C语言的科学和艺术计算机视觉并行程序设计数据库与事务处理操作系统现代操作系统(第2版)计算机网络:自顶向下方法与Internet特色(原书第3版)3D计算机图形学(原书第3版)C程序设计语言(第2版·新版)习题解答计算机科学概论(原书第2版)人工智能:英文可扩展并行计算技术、结构与编程数据库原理、编程与性能嵌入式微控制器C++编程思想。第2卷:实用编程技术模式分析的核方法微机接口技术实验教程神经网络原理(原书第2版)编译原理C++语言的设计和演化并行计算导论(原书第2版)离散数学导学数据库设计教程(第2版)软件需求组合数学(原书第4版)JAVA编程思想(第2版)数据库系统导论UNIX系统编程信息系统原理:原书第6版高级编译器设计与实现计算机网络系统方案(原书第3版)计算机网络与因特网(原书第4版)
目录
译者序
前言
第1章 基本概念
1.1 引言
1.1.1 面向对象的策略
1.1.2 设计策略的定义
1.1.3 例子
1.1.4 UML设计表示法
1.1.5 总的组织
1.2 抽象
1.3 分离
1.4 类、对象和抽象
1.4.1 类
1.4.2 对象
1.4.3 实例化类
1.4.4 从类中创建对象
1.4.5 抽象界面
1.5 合成
1.5.1 合成的概念
1.5.2 利用关联的合成
1.5.3 利用聚集的合成
1.6 概化
1.6.1 层次性
1.6.2 多态性
1.6.3 模式
1.7 组合在一起
1.7.1 与设计策略的关系
1.7.2 与软件工程的关系
1.7.3 定义小结
第2章 使用单个类的对象
2.1 引言
2.1.1 给类命名
2.1.2 创建类的对象
2.1.3 UML表示法
2.2 类和对象的结构
2.2.1 公用部分与私用部分
2.2.2 公用界面中的方法
2.2.3 GUI窗口的抽象
2.2.4 生态仿真中Prey的抽象
2.3 在Java应用程序中操作对象
2.3.1 将操作应用于一个Prey对象
2.3.2 构造并执行一个应用程序
2.3.3 一个示例程序
2.3.4 UML对象表示法
2.4 在一个简单的编程环境中操作GUI对象
2.4.1 将操作应用于Frame对象
2.4.2 事件和反应式系统
2.4.3 一个简单的编程环境
2.4.4 Start窗口
2.4.5 Simulator窗口
2.4.6 示例程序
2.4.7 UML对象表示法
2.5 命名常量
2.5.1 命名常量的作用
2.5.2 声明命名常量
2.5.3 访问命名常量
2.5.4 Prey类中的命名常量
2.5.5 命名常量的UML表示法
2.6 重载的方法
2.6.1 GUI类中重载的方法
2.6.2 Prey类中重载的方法
2.6.3 UML中重载的方法
2.7 Java类中重载的方法
2.7.1 交互式I/O中重载的方法
2.7.2 输出到窗口的流
2.7.3 String类中重载的方法
2.8 对象数组
2.8.1 声明对象数组
2.8.2 在数组中操作对象
2.8.3 处理数组
2.8.4 二维数组
2.9 管理对象
第3章 使用不同类的对象
3.1 引言
3.1.1 复杂信息
3.1.2 交互对象之间的相互关系
3.2 使用对象传递数据
3.2.1 在GUI类中使用对象通信
3.2.2 在生态仿真中使用对象通信
3.3 交互顺序
3.3.1 UML顺序图
3.3.2 GUI对象的交互顺序
3.3.3 Predator类和Prey类的交互顺序
3.4 简单的关联
3.4.1 在GUI类中形成关联
3.4.2 简单的计数器和计时器
3.4.3 在生态仿真中使用关联
3.5 界面
3.5.1 GUI例子中界面的作用
3.5.2 定义一个界面
3.5.3 实现一个界面
3.6 声明界面类型的参数
3.6.1 建立带界面的关联
3.6.2 生态仿真例子中的界面
3.6.3 实现Hunted界面
3.6.4 用Hunted界面声明参数
3.6.5 强制类型转换
3.6.6 实现多重界面
3.7 更复杂的关联
3.7.1 复杂用户界面的关联
3.7.2 重新组织Frame类和Canvas类
3.7.3 生态仿真中更复杂的关联
第4章 实现一个新类
4.1 引言
4.2 实现一个类
4.2.1 一般概念
4.2.2 一个简单的例子
4.2.3 同一个类中方法的调用
4.2.4 定义和调用私用方法
4.2.5 使用界面变量
4.2.6 封装
4.3 聚集的作用
4.3.1 聚集的概念
4.3.2 聚集的优点
4.3.3 聚集的类型
4.4 简单的静态聚集
4.4.1 生态仿真中的聚集
4.4.2 共享的子对象
4.5 更复杂的静态聚集
4.5.1 间接控制
4.5.2 实现StopWatch类
4.5.3 实现Simulation类
4.6 动态聚集
4.6.1 使用链表实现动态聚集
4.6.2 使用Vector实现动态聚集
4.7 “this”变量
4.7.1 链式构造函数
4.7.2 消除歧义性
4.7.3 作为结果返回“this”
4.7.4 作为参数传递“this”变量:回调
4.8 复制可变对象
第5章 产生一个面向对象的系统
5.1 引言
5.2 设计类
5.2.1 发现类设计
5.2.2 评价类设计
5.3 设计复杂的逻辑
5.4 调试
5.4.1 差错、缺陷和故障
5.4.2 调试工具的作用
5.4.3 调试环境
5.4.4 调试策略
5.5 将相关的类组织成包
5.5.1 包的用途
5.5.2 创建包
5.5.3 引入类
5.5.4 储存和查找包
5.5.5 限制对包成员的访问
5.6 对类编制文档
5.6.1 外部文档
5.6.2 javadoc工具
5.6.3 Javadoc中结构化的注释和标记
5.6.4 一个例子
第6章 继承
6.1 引言
6.2 利用继承来共享实现
6.2.1 概化两个数字类
6.2.2 概化predator和prey的抽象
6.3 继承方法和数据
6.3.1 用DisplayableNumber类的继承
6.3.2 利用Animal类的继承
6.4 替换继承的类
6.4.1 替换Number类中的一个方法
6.4.2 在Predator类中替换一个方法
6.5 扩展继承的方法
6.5.1 扩展Cycler类的方法
6.5.2 扩展Predator类中的方法
6.6 隐藏继承的方法
6.6.1 问题
6.6.2 解决方案
6.7 类型强制转换
6.7.1 概念
6.7.2 利用DisplayableNumber的一个例子
6.7.3 Java类库中的类型强制转换
6.7.4 利用Animal类的类型强制转换
6.8 动态绑定、抽象方法和多态性
6.8.1 概念
6.8.2 举例
6.9 基类的重构
6.10 设计类的层次结构
6.10.1 基本原则
6.10.2 设计类层次结构的一个例子
6.11 设计模式
6.11.1 设计模式的定义和结构
6.11.2 设计模式的一个例子
6.11.3 小结
第7章 用Java语言创建用户界面
7.1 引言
7.2 用户界面的结构
7.3 两个简单的应用程序
7.3.1 DrawTool应用程序
7.3.2 EditTool应用程序
7.4 事件处理概念
7.5 处理简单应用程序中的事件
7.5.1 处理DrawTool中的事件
7.5.2 处理EditTool中的事件
7.6 菜单
7.7 复选框
7.8 列表
7.9 对话框
7.9.1 JDialog类
7.9.2 JOptionPane类
7.10 滚动条
7.10.1 利用值选择的滚动条
7.10.2 利用滚动条按比例移动
7.10.3 利用ScrollPane
7.11 文本域
7.12 图像
7.12.1 利用Image类
7.12.2 利用ImageIcon类
7.13 布局管理器
7.13.1 BorderLayout
7.13.2 FlowLayout
7.13.3 GridLayout
7.13.4 CardLayout
7.13.5 GridBagLayout
7.13.6 组合几个布局管理器
第8章 Java中的输入/输出
8.1 引言
8.1.1 输入/输出的复杂性
8.1.2 Java输入/输出模型
8.1.3 文本和二进制流I/O类的模式
8.1.4 Book例子
8.1.5 章的组织
8.2 二进制输入/输出
8.2.1 Java类
8.2.2 一个例子
8.3 文本输入/输出
8.3.1 Java类
8.3.2 一个例子
8.3.3 交互式输入/输出
8.4 随机存取文件输入/输出
8.4.1 概念
8.4.2 RandomAccessFile类
8.4.3 Book例子
8.5 对象输入/输出
8.5.1 Java类
8.5.2 Book文件例子
8.6 输入/输出过滤
8.6.1 概念
8.6.2 Java类
8.6.3 一个例子
第9章 线程
9.1 引言
9.2 独立线程
9.2.1 Thread类
9.2.2 一个例子
9.3 同步线程
9.3.1 同步的概念
9.3.2 线程状态
9.3.3 线程组
9.4 分布式并发
9.4.1 概念
9.4.2 套接字
9.4.3 EcoSim例子
索引
前言
第1章 基本概念
1.1 引言
1.1.1 面向对象的策略
1.1.2 设计策略的定义
1.1.3 例子
1.1.4 UML设计表示法
1.1.5 总的组织
1.2 抽象
1.3 分离
1.4 类、对象和抽象
1.4.1 类
1.4.2 对象
1.4.3 实例化类
1.4.4 从类中创建对象
1.4.5 抽象界面
1.5 合成
1.5.1 合成的概念
1.5.2 利用关联的合成
1.5.3 利用聚集的合成
1.6 概化
1.6.1 层次性
1.6.2 多态性
1.6.3 模式
1.7 组合在一起
1.7.1 与设计策略的关系
1.7.2 与软件工程的关系
1.7.3 定义小结
第2章 使用单个类的对象
2.1 引言
2.1.1 给类命名
2.1.2 创建类的对象
2.1.3 UML表示法
2.2 类和对象的结构
2.2.1 公用部分与私用部分
2.2.2 公用界面中的方法
2.2.3 GUI窗口的抽象
2.2.4 生态仿真中Prey的抽象
2.3 在Java应用程序中操作对象
2.3.1 将操作应用于一个Prey对象
2.3.2 构造并执行一个应用程序
2.3.3 一个示例程序
2.3.4 UML对象表示法
2.4 在一个简单的编程环境中操作GUI对象
2.4.1 将操作应用于Frame对象
2.4.2 事件和反应式系统
2.4.3 一个简单的编程环境
2.4.4 Start窗口
2.4.5 Simulator窗口
2.4.6 示例程序
2.4.7 UML对象表示法
2.5 命名常量
2.5.1 命名常量的作用
2.5.2 声明命名常量
2.5.3 访问命名常量
2.5.4 Prey类中的命名常量
2.5.5 命名常量的UML表示法
2.6 重载的方法
2.6.1 GUI类中重载的方法
2.6.2 Prey类中重载的方法
2.6.3 UML中重载的方法
2.7 Java类中重载的方法
2.7.1 交互式I/O中重载的方法
2.7.2 输出到窗口的流
2.7.3 String类中重载的方法
2.8 对象数组
2.8.1 声明对象数组
2.8.2 在数组中操作对象
2.8.3 处理数组
2.8.4 二维数组
2.9 管理对象
第3章 使用不同类的对象
3.1 引言
3.1.1 复杂信息
3.1.2 交互对象之间的相互关系
3.2 使用对象传递数据
3.2.1 在GUI类中使用对象通信
3.2.2 在生态仿真中使用对象通信
3.3 交互顺序
3.3.1 UML顺序图
3.3.2 GUI对象的交互顺序
3.3.3 Predator类和Prey类的交互顺序
3.4 简单的关联
3.4.1 在GUI类中形成关联
3.4.2 简单的计数器和计时器
3.4.3 在生态仿真中使用关联
3.5 界面
3.5.1 GUI例子中界面的作用
3.5.2 定义一个界面
3.5.3 实现一个界面
3.6 声明界面类型的参数
3.6.1 建立带界面的关联
3.6.2 生态仿真例子中的界面
3.6.3 实现Hunted界面
3.6.4 用Hunted界面声明参数
3.6.5 强制类型转换
3.6.6 实现多重界面
3.7 更复杂的关联
3.7.1 复杂用户界面的关联
3.7.2 重新组织Frame类和Canvas类
3.7.3 生态仿真中更复杂的关联
第4章 实现一个新类
4.1 引言
4.2 实现一个类
4.2.1 一般概念
4.2.2 一个简单的例子
4.2.3 同一个类中方法的调用
4.2.4 定义和调用私用方法
4.2.5 使用界面变量
4.2.6 封装
4.3 聚集的作用
4.3.1 聚集的概念
4.3.2 聚集的优点
4.3.3 聚集的类型
4.4 简单的静态聚集
4.4.1 生态仿真中的聚集
4.4.2 共享的子对象
4.5 更复杂的静态聚集
4.5.1 间接控制
4.5.2 实现StopWatch类
4.5.3 实现Simulation类
4.6 动态聚集
4.6.1 使用链表实现动态聚集
4.6.2 使用Vector实现动态聚集
4.7 “this”变量
4.7.1 链式构造函数
4.7.2 消除歧义性
4.7.3 作为结果返回“this”
4.7.4 作为参数传递“this”变量:回调
4.8 复制可变对象
第5章 产生一个面向对象的系统
5.1 引言
5.2 设计类
5.2.1 发现类设计
5.2.2 评价类设计
5.3 设计复杂的逻辑
5.4 调试
5.4.1 差错、缺陷和故障
5.4.2 调试工具的作用
5.4.3 调试环境
5.4.4 调试策略
5.5 将相关的类组织成包
5.5.1 包的用途
5.5.2 创建包
5.5.3 引入类
5.5.4 储存和查找包
5.5.5 限制对包成员的访问
5.6 对类编制文档
5.6.1 外部文档
5.6.2 javadoc工具
5.6.3 Javadoc中结构化的注释和标记
5.6.4 一个例子
第6章 继承
6.1 引言
6.2 利用继承来共享实现
6.2.1 概化两个数字类
6.2.2 概化predator和prey的抽象
6.3 继承方法和数据
6.3.1 用DisplayableNumber类的继承
6.3.2 利用Animal类的继承
6.4 替换继承的类
6.4.1 替换Number类中的一个方法
6.4.2 在Predator类中替换一个方法
6.5 扩展继承的方法
6.5.1 扩展Cycler类的方法
6.5.2 扩展Predator类中的方法
6.6 隐藏继承的方法
6.6.1 问题
6.6.2 解决方案
6.7 类型强制转换
6.7.1 概念
6.7.2 利用DisplayableNumber的一个例子
6.7.3 Java类库中的类型强制转换
6.7.4 利用Animal类的类型强制转换
6.8 动态绑定、抽象方法和多态性
6.8.1 概念
6.8.2 举例
6.9 基类的重构
6.10 设计类的层次结构
6.10.1 基本原则
6.10.2 设计类层次结构的一个例子
6.11 设计模式
6.11.1 设计模式的定义和结构
6.11.2 设计模式的一个例子
6.11.3 小结
第7章 用Java语言创建用户界面
7.1 引言
7.2 用户界面的结构
7.3 两个简单的应用程序
7.3.1 DrawTool应用程序
7.3.2 EditTool应用程序
7.4 事件处理概念
7.5 处理简单应用程序中的事件
7.5.1 处理DrawTool中的事件
7.5.2 处理EditTool中的事件
7.6 菜单
7.7 复选框
7.8 列表
7.9 对话框
7.9.1 JDialog类
7.9.2 JOptionPane类
7.10 滚动条
7.10.1 利用值选择的滚动条
7.10.2 利用滚动条按比例移动
7.10.3 利用ScrollPane
7.11 文本域
7.12 图像
7.12.1 利用Image类
7.12.2 利用ImageIcon类
7.13 布局管理器
7.13.1 BorderLayout
7.13.2 FlowLayout
7.13.3 GridLayout
7.13.4 CardLayout
7.13.5 GridBagLayout
7.13.6 组合几个布局管理器
第8章 Java中的输入/输出
8.1 引言
8.1.1 输入/输出的复杂性
8.1.2 Java输入/输出模型
8.1.3 文本和二进制流I/O类的模式
8.1.4 Book例子
8.1.5 章的组织
8.2 二进制输入/输出
8.2.1 Java类
8.2.2 一个例子
8.3 文本输入/输出
8.3.1 Java类
8.3.2 一个例子
8.3.3 交互式输入/输出
8.4 随机存取文件输入/输出
8.4.1 概念
8.4.2 RandomAccessFile类
8.4.3 Book例子
8.5 对象输入/输出
8.5.1 Java类
8.5.2 Book文件例子
8.6 输入/输出过滤
8.6.1 概念
8.6.2 Java类
8.6.3 一个例子
第9章 线程
9.1 引言
9.2 独立线程
9.2.1 Thread类
9.2.2 一个例子
9.3 同步线程
9.3.1 同步的概念
9.3.2 线程状态
9.3.3 线程组
9.4 分布式并发
9.4.1 概念
9.4.2 套接字
9.4.3 EcoSim例子
索引
猜您喜欢