Java程序设计

Java程序设计
作 者: James Cohoon Jack Davidson 黄晓彤 黄晓彤
出版社: 清华大学出版社
丛编项: 世界著名计算机教材精选
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Java
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Java程序设计》作者简介

内容简介

前言如今,Java非常适合选择作为介绍性编程的课程。其理由很多:互联网的使用持续爆炸性地增长;面向Web应用的程序已成为软件的主流,而Java正是为互联网编程的语言;Java还提供了成熟的软件开发工具、以及大量包括多线程和高级图形用户界面在内的各种应用程序的开发包;而体系结构中立的设计使Java具有很好的可移植性。近年来,安全与可靠的重要性有了新的意义,Java对安全与可靠的支持与其自身的设计融为一体。面向对象使Java成为现代软件工程和编程概念的良好教学载体。背景从20世纪90年代早期以来,在国家科学基金会(NationalScienceFoundation)的大力支持下,本系(弗吉尼亚大学计算机科学系——译者注)发展、提炼并扩展了新的计算机科学的课程。在考察本课程与同类学校的课程的过程中,经常使用的一些重要原则是:*使用一种课堂以外被广泛接受的编程语言。*使用现代软件开发工具。*鼓励团队合作。*按照软件工程原则开发系统。*鼓励重用现有的库和工具。*用图形用户界面实现软件的输入、输出。*选用适合各种听众的教学法和例子。本书的内容及其补充材料都用来支持这些原则的发展。计算机科学中的许多重要概念和问题,在很好地理解什么是程序以及如何写程序之前,不会被赏识。遗憾的是,学会编程很困难。如同要写好文章一样,好的编程需要多年的实践。教授编程在很多方面与教授写作相似。在学习写作的过程中,学生通过阅读好散文的范例,反复地练习写作,学习怎样组织构思,以实现最有效的表达。学生从写作、编辑一两个段落开始,直到能写出很长的文章,如散文、短故事和报告。学生们的写作技能也随着不断地增长。教授程序设计的方法与教授写作类似。贯穿本书,介绍并讨论了很多好的和不好的例子,自我检测和程序练习,给学生提供了设计、组织和编写代码的练习机会。另外,还提供了帮助学习修改代码这个实用技能的例子,这部分通过专供学生修改的代码来实现。这种方法很有效,因为,这样能迫使学生成为积极的参与者,即学生一定要去阅读并理解所提供的代码。为支持这一努力,本书所使用代码的电子版在本书的网站上可以找到。本书的目的本书的目标是成为学生的第一门编程课程,而且适合于各种不同学科的人。本书假定读者以前没有编程技能,要求的数学和科学知识,相当于大学一年级学生的水平。本书的主要目的是:*向学生介绍Java编程语言;*展示和鼓励使用面向对象范例;*有效地解决问题的技术示范;*使学生从事...

图书目录

第1章 背景知识

1.1 引言 1

1.2 计算机结构 2

1.2.1 计算机的部件 4

1.2.2 购买个人计算机 5

1.3 互联网计算 7

1.3.1 网络 8

1.4 软件和Java语言 10

1.4.1 编程语言 10

1.4.2 运行一个Java程序 11

1.5 工程软件 13

1.5.1 软件工程的原则 15

1.6 面向对象设计 17

1.7 解决问题 19

1.7.1 问清需求 20

1.7.2 尽量发现 21

1.7.3 将复杂问题分割成子问题 22

1.7.4 重用以及预计未来重用 23

1.7.5 更深一步的阅读 24

1.8 复习 24

1.9 自测题 25

1.10 练习题 26

1.11 自测题答案 28

第2章 Java基本概念

2.1 第一个程序 30

2.1.1 注释和空白 31

2.1.2 类、关键词和标识符 32

2.1.3 方法 34

2.1.4 选择print()和println()方法 35

2.1.5 换码序列 37

2.2 简单计算 40

2.2.1 常量 42

2.2.2 变量 43

2.2.3 操作 45

2.3 简单类型 47

2.3.1 整型 48

2.3.2 字符型 49

2.3.3 双精度型 51

2.4 表达式 53

2.4.1 一元和二元操作符 54

2.4.2 优先级 55

2.4.3 拓宽和变窄操作数的转换 56

2.4.4 上溢、下溢和异常 58

2.5 交互式程序 58

2.6 简单变量的赋值 63

2.6.1 交换 65

2.6.2 赋值的优先级和结合律 67

2.6.3 递增和递减 68

2.7 案例学习——五个数的平均值 70

2.8 复习 72

2.9 自测题 75

2.10 练习题 76

2.11 编程项目——读者 81

2.12 编程项目——培训范围 83

2.13 自测题答案 85

第3章 使用对象

3.1 类 86

3.2 对象和变量 87

3.2.1 初始化 88

3.2.2 空值和未初始化的引用 89

3.3 赋值 90

3.4 final变量 92

3.5 字符串的操作和方法 93

3.6 案例分析:日期转换 100

3.7 复习 105

3.8 自测题 106

3.9 练习题 106

3.10 编程项目——收割机 110

3.11 自测题答案 113

第4章 走 向类 114

4.1 准备 114

4.2 一个非常简单的类 116

4.2.1 实例变量和属性 118

4.2.2 默认的构造方法 119

4.2.3 实例方法 121

4.2.4 用法 124

4.3 带参数的方法和返回值 126

4.4 本章小结 136

4.5 复习 137

4.6 自测题 138

4.7 练习题 138

4.8 编程项目——合理性 141

4.9 自测题答案 144

第5章 分支语句 147

5.1 布尔代数和真值表 147

5.1.1 逻辑表达式 148

5.2 布尔型 149

5.2.1 逻辑值相等和操作符排序 150

5.2.2 操作符重访优先级 152

5.3 if语句 153

5.3.1 避免陷阱 156

5.4 if-else语句 157

5.5 嵌套结构 161

5.6 if-else-if结构 162

5.7 测试对象是否相等 168

5.8 switch语句 172

5.9 求和校验案例 179

5.10 三角形案例 184

5.11 复习 191

5.12 自测题 193

5.13 练习题 195

5.14 编程项目──医疗助手 200

5.15 自测题答案 203

第6章 循环 206

6.1 while语句 206

6.2 for语句 216

6.2.1 索引变量范围 219

6.2.2 计算组合的个数 219

6.3 do-while语句 222

6.4 嵌套循环 225

6.5 简单文件处理 229

6.6 数据集合分析案例学习 235

6.7 复习 242

6.8 自测题 243

6.9 练习题 245

6.10 编程项目——四个流浪者问题 249

6.11 自测题答案 250

GI 基于图形用户接口的编程 252

GI.1 GUI和事件驱动编程 252

GI.2 风寒温度计算器 255

GI.2.1 类常量和实例变量 259

GI.2.2 图形用户界面的构造 261

GI.2.3 事件处理以及actionPerformed() 264

GI.2.4 main()方法 265

GI.3 复习 266

GI.4 自测题 267

GI.5 练习题 268

GI.6 编程项目——训练区 269

GI.7 自测题答案 271

第7章 使用方法和类编程 273

7.1 静态修饰符 273

7.2 参数传递 280

7.3 this关键字 289

7.4 方法继承和重写 292

7.5 范围和重复使用 297

7.5.1 局部范围规则 298

7.5.2 变量名的重新使用 298

7.6 方法重载 301

7.7 示例演示 308

7.8 复习 315

7.9 自测题 317

7.10 练习题 319

7.11 编程项目——汽车理财 327

7.12 自测题答案 331

第8章 数组和集合 334

8.1 列表的基本要求 334

8.2 一维数组 335

8.2.1 定义 335

8.2.2 元素访问 337

8.2.3 显式初始化 340

8.2.4 常量数组 341

8.2.5 成员 341

8.3 简单数组的处理 344

8.3.1 数值抽取 344

8.3.2 查找关键值 347

8.3.3 查找最小值 349

8.4 数组和方法 349

8.4.1 顺序和二分法查找 350

8.4.2 清零 353

8.4.3 显示 356

8.4.4 数据抽取和倒序 356

8.4.5 增加容量表现法 359

8.5 排序 360

8.5.1 selectionSort()方法 360

8.5.2 selectionSort()方法的质量 362

8.6 命令行参数 363

8.7 多维数组 364

8.7.1 矩阵 367

8.8 集合构架 369

8.9 数组列表(ArrayList) 370

8.10 集合算法 375

8.11 案例学习——饼状图 377

8.12 复习 385

8.13 自测题 386

8.14 练习题 387

8.15 编程项目——矩阵 392

8.16 自测题答案 393

第9章 继承和多态 400

9.1 面向对象的设计 400

9.1.1 三维点 401

9.1.2 有色点 408

9.2 多态 413

9.3 继承的细微差别 414

9.3.1 控制访问 416

9.3.2 数据域 419

9.3.3 类型 422

9.3.4 后(动态)绑定 423

9.3.5 终结 425

9.4 案例学习——扩展BufferedReader 423

9.5 抽象的父类 429

9.6 接口 434

9.7 准备鱼缸程序 438

9.8 复习 449

9.9 自测题 450

9.10 练习题 452

9.11 编程项目——找钱机 456

9.12 自测题答案 458

GII 基于GUI的编程 459

GII.1 案例学习——个性测试 459

GII.1.1 背景 459

GII.2 编程项目——Smiley猜词游戏 472

第10章 异常 487

10.1 异常处理 487

10.2 FINALLY和命令类型 496

10.3 创建和抛出异常 499

10.4 案例学习——值的依次提取 503

10.5 复习 514

10.6 自测题 515

10.7 练习题 515

10.8 编程项目——回顾 516

10.9 自测题答案 516

第11章 递归问题的求解 519

11.1 递归方法 519

11.1.1 斐波纳契数列和方块 522

11.2 案例学习——递归二分法查找 525

11.3 mergeSort()方法 530

11.4 排序的速度 535

11.5 递归和循环 536

11.6 案例学习——字符串排列 537

11.7 复习 542

11.8 自测题 543

11.9 练习题 543

11.10 编程项目——Sierpinski分形 545

11.11 自测题答案 548

第12章 线程 549

12.1 时序安排 549

12.1.1 延迟运行 551

12.1.2 重复运行 553

12.1.3 定时运行 557

12.2 休眠 561

12.3 动画 563

12.4 案例学习——游泳的鱼 570

12.5 复习 576

12.6 自测题 577

12.7 练习题 577

12.8 编程项目——更好的鱼 579

12.9 自测题答案 580

第13章 测试和调试 582

13.1 测试 582

13.1.1 测试举例 583

13.1.2 测试基础 591

13.1.3 回顾和检查 593

13.1.4 黑箱与白箱测试 595

13.1.5 集成和系统测试 600

13.2 调试 600

13.2.1 科学方法 600

13.2.2 调试技巧和技术 603

13.3 复习 606

13.4 参考书目 607

13.5 自测题 607

13.6 练习 608

13.7 编程项目--getList() 608

13.8 自测题答案 610

附录A 表格和运算符 611

A.1 Unicode字符集 611

A.2 保留字 612

A.3 运算符和优先级 612

附录B 数字表示法 616

B.1 二进制数的表示法 616

B.2 补码的表示法 617

附录C Applet程序 619

C.1 一个简单的Applet 619

C.2 Applet方法 621

C.2.1 init()方法 621

C.2.2 start()方法 621

C.2.3 stop()方法 622

C.2.4 destroy()方法 622

C.2.5 paint()方法 622

C.3 Applets和线程 624

C.4 Applet安全性 627

C.5 小结 628

附录D 标准Java包 629

D.1 java.io 629

D.2 java.lang 635

D.3 java.math 667

D.4 java.net 671

D.5 java.text 673

D.6 java.util 678

附录E 标准Java图形包 701

E.1 java.applet 701

E.2 java.awt 702

E.3 javax.swing 727