注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计JAVA及其相关Java语言计算机科学与程序设计:第3版

Java语言计算机科学与程序设计:第3版

Java语言计算机科学与程序设计:第3版

定 价:¥98.00

作 者: (美)Walter Savitch著;朱剑平,刘颖等译;朱剑平译
出版社: 清华大学出版社
丛编项: 国外经典教材·计算机科学与技术
标 签: Java

ISBN: 9787302105923 出版时间: 2005-04-01 包装: 胶版纸
开本: 26cm 页数: 858 字数:  

内容简介

  本书设计用做编程与计算机科学的第一门课程,它涉及了编程技术及Java编程语言基础。本书适合用做一学期课程,也适合用做一学年课程。本书不需要任何编程经验,所需的数学知识也只要一些高中代数。要向已有其他编程课程的学生再讲授一门Java课程,也可以使用本书,这时本书前几章可以当做课外阅读资料(若学生已具有C或C++编程经验,这里也给出了一个附录以解释Java与C或C++之间的一些差异)。 本书中所有代码均使用Sun Microsystems公司(简称Sun公司)的Java 2(版本为1.4)测试通过。为了能够充分地利用本书,你所使用的Java版本应该是1.4或更高版本。本书对Java知识点的覆盖面已经在试验班教学中通过了测试,另外本书对初学者而言也是一个简练而可行的指南。

作者简介

  WalterSavitch编写了许多编程方面的畅销书、涉及Java、Pascal、Ada、C++、CS1和CS2。他因其著作的灵活性和易于理解的写作风格而受到了广泛的赞誉。Savitch是加州大学对地亚哥分校计算机系的教授。

图书目录

第1章 计算机及Java简介
1.1 计算机基础
1.1.1 硬件与内存
1.1.2 程序
1.1.3 编程语言与编译器
1.1.4 Java字节码
1.1.5 链接
1.2 设计程序
1.2.1 面向对象编程
1.2.2 封装
1.2.3 多态
1.2.4 继承
1.2.5 若大家学习过某种其他编程语言
1.2.6 算法
1.2.7 可重用组件
1.2.8 测试与调试
陷阱:对付陷阱
陷阱:隐藏式错误
1.3 Java体验
1.3.1 Java语言简史
1.3.2 Applet
1.3.3 第一个Java应用程序
1.3.4 编译Java程序或类
1.3.5 运行Java程序
1.3.6 Applet实例预览(选修)
1.4 本章小结
1.5 自测题答案
1.6 编程练习
第2章 原型、字符串与交互式I/O
2.1 原型与表达式
2.1.1 变量
2.1.2 Java标识符
陷阱:Java区分大小写
2.1.3 原型
2.1.4 赋值语句
2.1.5 专用赋值运算符
2.1.6 简单输入与输出
2.1.7 数字常量
2.1.8 赋值兼容性
2.1.9 类型强转
Java提示:将字符强转成整数
编程提示:初始化变量
陷阱:浮点数的不精确性
2.1.10 算术运算符
2.1.11 括号与优先规则
案例研究:零售机兑换
2.1.12 递增/递减运算符
2.1.13 递增/递减运算符更多相关信息
2.2 String类
2.2.1 字符串常量与变量
2.2.2 字符串连接
2.2.3 类
2.2.4 String方法
2.2.5 字符串处理
2.2.6 转义字符
2.2.7 Unicode字符集
2.3 键盘与屏幕I/O
2.3.1 屏幕输出
2.3.2 SavitchIn输入
2.3.3 其他输入方法
陷阱:readInt与readDouble
编程提示:回显输入
2.4 文档与样式
编程提示:使用有意义的变量名
2.4.1 文档与注释
2.4.2 缩进
2.4.3 命名式常量
2.5 本章小结
2.6 自测题答案
2.7 编程练习
第3章 控制流
3.1 分支语句
3.1.1 if-else语句
3.1.2 布尔表达式介绍
陷阱:在字符串中使用==
编程提示:按字母顺序比较
3.1.3 嵌套语句与复合语句
Java提示:else与if的配对关系
3.1.4 多分支的if-else语句
编程示例:评等级分
3.1.5 switch语句
陷阱:忽略break语句
3.1.6 条件操作符(选修)
3.2 Java中的循环语句
3.2.1 while语句
Java提示:while循环能够执行零次迭代
3.2.2 do-while语句
编程示例:害虫成灾
陷阱:无限循环
3.2.3 for语句
3.2.4 for语句中的逗号(选修)
陷阱:循环语句中的多余分号
Java提示:选择一种循环语句
3.2.5 循环中的break语句
陷阱:break语句的误用
3.2.6 exit方法
3.3 循环在编程中的应用
3.3.1 循环体
3.3.2 初始化语句
3.3.3 终止循环
编程示例:嵌套循环
编程提示:不要在循环体中声明变量
3.3.4 循环中的错误
3.3.5 变量跟踪
3.4 布尔类型
3.4.1 布尔表达式与布尔变量
编程提示:布尔变量的命名
3.4.2 优先级规则
3.4.3 布尔值的输入和输出
案例研究:使用布尔变量来结束循环
3.5 本章小结
3.6 自测题答案
3.7 编程练习
第4章 定义类与方法
4.1 类与方法定义
4.1.1 类文件与独立编译
4.1.2 实例变量
4.1.3 使用方法
4.1.4 空方法定义
4.1.5 有返回值的方法
Java提示:空方法中return的使用
4.1.6 this参数
4.1.7 局部变量
4.1.8 块
陷阱:在块中声明的变量
Java提示:在for语句中声明变量
4.1.9 原型参数
陷阱:参数与参量概念的使用
4.1.10 类与方法的定义语法小结
4.2 信息隐藏与封装
4.2.1 信息隐藏
编程提示:参数名对方法是局部有效的
4.2.2 前提注释与结果注释
Java提示:断言检查
4.2.3 public和private修饰语
编程提示:实例变量应为私有
编程示例:Purchaes类
4.2.4 封装
4.2.5 用Javadoc自动生成文档
4.2.6 UML类图
4.3 对象与引用
4.3.1 类类型变量和对象
陷阱:类类型变量中=和==的使用
Java提示:为类设计equals方法
4.3.2 布尔值方法
4.3.3 类参数
4.3.4 类参数与原型参数的比较
4.4 本章小结
4.5 自测题答案
4.6 编程练习
第5章 关于对象与方法的更多知识
5.1 方法编程
5.1.1 调用其他方法的方法
编程提示:设置辅助方法为私有方法
Java提示:恰当地设置编译器
陷阱:Null指针异常
5.2 静态方法与静态变量
5.2.1 静态方法
陷阱:在静态方法中调用非静态方法
Java提示:可以在类中加入一个main方法
5.2.2 静态变量(选修)
5.2.3 Math类
5.2.4 Integer类、Double类和其他包装类
5.3 设计方法
案例研究:格式化输出
5.3.1 自顶向下的设计
5.3.2 测试方法
5.4 重载
5.4.1 重载的基本要求
编程示例:Pet类
陷阱:重载与自动类型转换
陷阱:无法根据返回值的类型来实现重载
编程示例:类Money
5.5 构造函数
5.5.1 定义构造函数
编程提示:可以在构造函数中使用其他方法
陷阱:忽略默认构造函数
陷阱:许多包装类不具有默认构造函数
5.6 信息隐藏重访
陷阱:私密泄漏
5.7 包
5.7.1 包和导入
5.7.2 包名与目录
陷阱:在类路径中没有包含当前目录
5.7.3 命名冲突
5.8 本章小结
5.9 自测题答案
5.10 编程练习
第6章 数组
6.1 数组基础
6.1.1 数组的创建与访问
6.1.2 数组详解
编程提示:使用单数数组名
6.1.3 length实例变量
Java提示:数组索引从零开始
编程提示:使用for循环遍历数组
陷阱:数组索引超出边界
6.1.4 初始化数组
6.2 类与方法中的数组
案例研究:销售报表
6.2.1 索引式变量用做方法参量
6.2.2 整个数组用做方法参量
6.2.3 方法main的参量
陷阱:数组中=与==的用法
6.2.4 返回数组的方法
6.3 数组及类的编程
编程示例:一个专用清单类
6.3.1 部分填充的数组
6.3.2 搜索数组
陷阱:返回一个数组实例变量
6.4 排序数组
6.4.1 选择排序
6.4.2 其他排序算法
6.5 多维数组
6.5.1 多维数组基础
6.5.2 多维数组参数与返回值
6.5.3 多维数组的实现
6.5.4 不整齐的数组(选修)
编程示例:员工时间记录
6.6 本章小结
6.7 自测题答案
6.8 编程练习
第7章 继承
7.1 继承基础
编程示例:Person类
7.1.1 派生类
7.1.2 覆盖方法定义
7.1.3 覆盖与重载的对比
7.1.4 final限定词
陷阱:使用基类的私有实例变量
编程提示:假定合作者心怀叵测
陷阱:私有方法并不被继承
7.1.5 UML继承示意图
7.2 继承的编程
7.2.1 派生类中的构造函数
7.2.2 this方法(选修)
7.2.3 调用被覆盖的方法
编程示例:多层派生类
7.2.4 重载与覆盖的一个微妙之处(选修)
Java提示:不能使用多重super
编程提示:对象可以具有多种类型
编程提示:"是一个"与"有一个"间的关系
7.2.5 Object类
案例研究:字符式图形
7.2.6 抽象类
7.2.7 接口(选修)
7.3 动态绑定与多态
7.3.1 动态绑定
7.3.2 类型检查与动态绑定
7.3.3 toString的动态绑定
7.3.4 多态
Java提示:较好的equals方法(选修)
7.4 本章小结
7.5 自测题答案
7.6 编程练习
第8章 异常处理
8.1 异常处理基础
8.1.1 Java中的异常
8.1.2 预定义类Exception
8.1.3 ArrayIndexOutOfBoundsException(备选排序)
8.2 定义异常类
8.2.1 定义自己的异常类
Java提示:定义异常类时保留getMessage
编程提示:何时定义异常类
8.3 使用异常类
8.3.1 声明异常(转移包袱)
8.3.2 不须捕获的异常
8.3.3 AssertionError类(选修)
8.3.4 多重抛出与捕获
Java提示:首先捕获较专用的异常
编程提示:异常处理与信息隐藏
陷阱:滥用异常
编程提示:何时抛出异常
陷阱:嵌套式try-catch语句块
8.3.5 finally语句块(选修)
8.3.6 重新抛出异常(选修)
案例研究:行式计算器
8.4 本章小结
8.5 自测题答案
8.6 编程练习
第9章 流与文件I/O
9.1 流与文件I/O概述
9.1.1 流的概念
9.1.2 为什么要使用文件进行I/O?
9.1.3 文本文件与二进制文件之间的区别
9.2 文本文件I/O
9.2.1 文本文件输出:PrintWriter
陷阱:try语句块是一种语句块
陷阱:覆盖文件
Java提示:追加至文本文件
Java提示:使用toString用于文本文件输出
9.2.2 文本文件输入:BufferedReader
编程示例:从键盘上读取文件名
Java提示:使用路径名
9.2.3 StringTokenizer类
Java提示:测试文本文件的末尾
9.2.4 FileReader类与FileOutputStream类
9.2.5 解析SavitchIn类
9.3 File类
使用File类
9.4 二进制文件I/O基础
9.4.1 输出至二进制文件:使用ObjectOutputStream
9.4.2 writeUTF的一些细节(选修)
9.4.3 从二进制文件中读取输入:使用ObjectInputStream
陷阱:对文本文件使用ObjectInputStream
陷阱:定义方法以打开流
9.4.4 EOFException类
陷阱:忘记检查文件末尾
陷阱:以错误的方式检查文件末尾
9.4.5 FileInputStream类与FileOutputStream类
编程示例:处理二进制数据文件
9.5 对象流的对象I/O
9.5.1 类对象的二进制I/O
陷阱:异常、异常、还是异常
9.5.2 Serializable接口
陷阱:在同一文件中混合多种类类型
9.5.3 二进制文件中的数组对象
9.6 本章小结
9.7 自测题答案
9.8 编程练习
第10章 动态数据结构
10.1 向量
10.1.1 使用向量
编程提示:往向量中添加元素
陷阱:向量元素的类型为Object
10.1.2 比较向量和数组
陷阱:使用capacity代替size
Java提示:使用trimToSize来节省内存
陷阱:使用方法clone
Java提示:新的集合类(选修)
10.2 链接数据结构
10.2.1 链表
陷阱:空指针异常
陷阱:私密泄露
10.2.2 内部类
10.2.3 结点内部类
10.2.4 迭代器
编程提示:内部迭代器和外部迭代器
10.2.5 链表的异常处理
10.2.6 链表的变体
10.2.7 其他的链接数据结构
10.3 本章小结
10.4 自测题答案
10.5 编程练习
第11章 递归
11.1 递归的基本概念
案例研究:单词的位数
11.1.1 递归的工作原理
陷阱:无限递归
11.1.2 递归定义与迭代定义
11.1.3 带返回值的递归方法
11.2 使用递归进行编程
编程提示:不断询问直到用户弄对为止
案例研究:二分查找
编程提示:将问题一般化
编程示例:归并排序-递归排序算法
11.3 本章小结
11.4 自测题答案
11.5 编程练习
第12章 递归窗口界面--Swing
12.1 背景
12.1.1 GUI--图形用户界面
12.1.2 事件驱动编程
12.2 Swing详解初步
陷阱:在运行Swing程序时保存全部工作
编程示例:一个简单的窗口
Java提示:终止Swing程序
陷阱:忘记编程"关闭窗口"按钮
陷阱:忘记使用getContentPane
12.2.1 窗口监听器详解
12.2.2 屏幕对象的尺寸单位
12.2.3 setVisible详解
编程示例:本章第一个Swing程序的改进版
编程示例:带颜色的窗口
12.2.4 JFrame类的一些方法
12.2.5 布局管理器
12.3 按钮与动作监听器
编程示例:添加按钮
12.3.1 按钮
12.3.2 动作监听器与动作事件
陷阱:修改actionPerformed的参数列表
12.3.3 界面
Java提示:为GUI的外观与动作分别编码
12.3.4 "模型-视图-控制器"模式
Java提示:使用setActionCommand方法
12.4 容器类
12.4.1 JPanel类
12.4.2 Container类
Java提示:简单窗口界面的构建指南
12.5 GUI的文本I/O
12.5.1 文本区与文本框
编程示例:标签化一个文本框
12.5.2 输入/输出数字
编程示例:GUI累加器
12.5.3 捕获NumberFormatException
12.6 本章小结
12.7 自测题答案
12.8 编程练习
第13章 Applet和HTML
13.1 applet
13.1.1 applet基本知识
13.1.2 运行Applet小程序
编程示例:加法器applet小程序
Java提示:把Swing应用程序转换成applet小程序
13.1.3 在Applet小程序中添加图标
13.2 HTML介绍
13.2.1 HTML基本知识
编程提示:一个简单的HTML文档框架
13.2.2 插入超链接
陷阱:不使用重新加载(刷新)按钮
13.2.3 显示图片
编程提示:HTML是一种低级语言
13.3 HTML页面中的Applet小程序
13.3.1 在HTML文档中放置applet小程序
Java提示:Applet查看器重访
陷阱:使用老版本的网络浏览器
13.3.2 老版本的applet类(选修)
13.3.3 applet小程序与安全
13.4 本章小结
13.5 自测题答案
13.6 编程练习
第14章 更多的Swing
14.1 菜单
编程示例:带有菜单的GUI
14.1.1 菜单栏、菜单与菜单项
14.1.2 嵌套菜单
14.2 让GUI更漂亮(功能更强)
14.2.1 添加图标
陷阱:调整按钮大小
14.2.2 滚动条与JScrollPane类
14.2.3 添加边框
陷阱:忘记引入javax.Swing.border
14.3 更多的布局管理器
14.3.1 BoxLayout管理器类
14.3.2 Struts和Glue
陷阱:在其他布局管理器中使用strut和glue
14.3.3 设置组件间间隔
14.3.4 Box容器类
14.3.5 CardLayout管理器
14.4 内部类
辅助类
14.5 事件与监听器的进一步讨论
14.5.1 WindowListener接口
Java提示:关闭窗口按钮的编程
Java提示:setDefaultCloseOperation的进一步介绍
编程示例:可见性可变的组件
14.5.2 更新GUI的更多细节
14.6 再探Swing类层次结构
14.6.1 按钮、菜单和抽象按钮
Java提示:JMenuItem类的其他构造函数
Java提示:还有很多Swing类和方法
14.7 本章小结
14.8 自测题答案
14.9 编程练习
附录1 关键字
附录2 优先规则
附录3 Unicode字符集
附录4 SavitchIn
附录5 Protected和Package修饰语
附录6 十进制格式化类
附录7 迭代器接口
附录8 复制
附录9 Javadoc
附录10 JOptionPane类
附录11 C++与Java之间的区别
词汇表
END USER LICENSE AGREEMENTS

本目录推荐