Java程序设计(第2版)

Java程序设计(第2版)"

作者:娄不夜、王利
ISBN:9787302209843
定价:¥39
字数:千字
页数:
出版时间:2010.01.01
开本:
版次:2-3
装帧:
出版社:清华大学出版社
简介

为更好地适应Java技术的发展、满足Java程序设计教学的需要,本版在原书《面向对象的程序设计与Java》的基础上进行了修订和补充。

本书从类和对象的概念入手,着力介绍Java面向对象的程序设计,旨在帮助读者建立面向对象的思想、掌握面向对象编程的基本方法和技能。

本书以“零”为起点,较为全面地介绍了Java语言的各种特性。全书共分14章,内容包括:类和对象、继承和嵌入类、接口和包、标注、例外处理、线程与同步、文件和输入输出流、泛型和集合框架、GUI设计、applet等。

本书立足基本理论和方法,注重实践与应用环节。对概念、原理和方法的描述力求准确、严谨,对示例代码力求精简、规范。本书每章的最后两部分都是小结和精选习题,便于读者复习、总结、巩固、练习与提高。

本书可作为普通高等院校计算机及相关专业的教材,也可作为读者自学Java语言和面向对象编程技术的参考书。

前言

为更好地适应Java技术的发展、满足Java程序设计教学的需要,本版在原书《面向对象的程序设计与Java》的基础上进行了修订和补充。

本版的新内容如下。

(1)  assert断言包含在3.1节(语句概述)中。

(2) 格式化输出在3.5.3小节介绍。

(3) 从控制台获取输入在3.5.4小节介绍。

(4) 枚举类型在4.8节介绍。

(5) 基本类型与包装类之间的自动转换在5.4.2小节介绍。

(6) 嵌入类在6.2节介绍。

(7) 标注在7.3节介绍。

(8) import static声明在7.4.2小节介绍。

(9) RandomAccessFile在11.4.3小节介绍。

(10) 泛型和集合框架在第12章介绍。

这些新增内容对原书原有内容没有影响,相互之间也相对独立。教学时可根据需要有选择地讲授。

本书在编排时使用了一些符号和特殊处理,下面进行简单说明。

(1) 代码左边的行号是为了引用和讲述方便而增加的,不是代码的一部分。

(2) 在语言成分的语法格式描述中,有关符号的含义如下。

\表示该项为可选项。

<>表示该项由程序员按规则指定或定义。

…表示该项可以出现多次。

(3) 全书贯穿着用特殊字体表示的“注意”和“说明”. 

“注意”是对当前内容的关键点和难点进行总结或提示。

“说明”是对当前内容的延伸,或与当前内容相关的其他内容进行说明。

本书提供相关的教学资源,包括示例程序的源代码、教学课件以及习题中所有选择题的答案。示例程序在JDK 6.0版本下编译和运行。欢迎读者从清华大学出版社网站下载和使用。

作者2009年10月第1版

编写本书是为了提供一本零起点、全面介绍面向对象程序设计的教材。本书的读者不需要了解C/C++或其他计算机语言及其程序设计的知识,但应该对程序、数据、二进制编码、文件、CPU、存储器、输入输出设备等概念有所理解。通过本书内容的学习,将为读者进一步学习各种Java技术、构建面向对象的软件系统以及网上应用系统打下坚实的基础。

Java是一种完全面向对象的程序设计语言,适合于进行面向对象的软件系统开发和开发出真正的面向对象的软件系统。在Java中,除了数值、字符、布尔型几种基本类型数据外,其他所有类型的数据都是用对象来表示的。一个对象既包含了表示其状态的数据,也包含了描述其行为的方法。而对一个对象的数据的访问,则是通过向对象传递消息、调用对象的方法进行的。这就是所谓的对象处理方式。

从作者多年学习和教学的经验来看,学习Java编程的最大困难在于建立面向对象的思维方式、熟悉面向对象的编程风格。而类和对象的概念则是其中的基础。为此,本书在第1章Java程序初步就引入类和对象的概念,并通过一个简单的例子加以具体的说明。第2章和第3章在介绍数据与数据运算、Java语句时进一步强化类和对象的概念,以及面向对象编程的思维方式。然后,以此为基础,在后续相关章节再由易到难、系统地介绍Java面向对象的编程方法和技能。

字符串和数组是几乎所有的计算机语言都支持的两种基本数据结构。与大多数计算机语言不同,Java用对象来表示字符串和数组,并采用对象的方式处理。第6章、第7章分别介绍字符串和数组的使用,同时也为了进一步巩固面向对象的编程技能。

例外处理、线程与同步和输入输出是Java编程的几项基础技术,是开发各种Java应用软件所必不可少的。本书第8章~第10章也用较大的篇幅分别对它们进行了介绍。在这里,例外、线程、输入输出流同样是对象,对这些编程技术的掌握也都需要建立在对象和对象处理的概念之上。

图形用户界面(GUI)设计是许多读者感兴趣的课题。本书第11章、第12章分别介绍了基于Swing的图形用户界面和小应用程序的设计。同样地,图形用户界面和小应用程序设计中涉及的组件、事件、事件监听器、布局管理器等也都表示为对象并采用对象的方式进行处理。

全书立足基本理论和方法,注重实践与应用。从应用的角度来介绍基础理论知识,通过例子来说明编程的方法和过程。对基本理论、原理、方法和技术的介绍力求概念明确、结构清晰、逻辑严谨。

本书每章的最后两部分是小结和习题。小结给出了该章的内容要点,便于读者复习与总结;习题主要有选择题和编程题两种形式,用以帮助读者检查学习效果,巩固已学知识,进一步提高能力。

感谢高林教授审阅了全书,并提出了许多宝贵的意见。同时也要感谢清华大学出版社老师为本书的出版所付出的辛勤工作。另外,作者在编写本书的过程中,参阅过大量的文献和网上资料,特别是Sun Microsystems公司Java网站(http://java.sun.com docs/books/)上的内容,在此一并表示感谢。

由于作者学识水平有限,本书难免有错误和不妥之处,敬请广大读者批评指正。如果读者有好的建议和要求,请与作者联系. 

作者2004年2月

目录

第1章 Java程序初步1

  1.1 Java语言特点1

1.1.1 面向对象 1

1.1.2 平台无关4

  1.2 一个简单的Java程序5

  1.3 编译和运行Java程序7

1.3.1 Java开发包简介7

1.3.2 编译和运行Java程序9

  1.4 Java词法结构10

1.4.1 空白符号11

1.4.2 注释11

1.4.3 词法符号12

  小结14

  习题14第2章 数据与数据运算17

  2.1 基本数据类型17

2.1.1 分类及特性17

2.1.2 文字18

2.1.3 变量21

  2.2 基本类型转换23

2.2.1 自动转换23

2.2.2 强制转换25

  2.3 运算符27

2.3.1 算术运算符27

2.3.2 关系运算符30

2.3.3 逻辑运算符32

2.3.4 位逻辑运算符33

2.3.5 位移运算符35

2.3.6 三目条件运算符36

2.3.7 赋值运算符38

  2.4 表达式39

2.4.1 表达式的结果和类型40

2.4.2 表达式的计算次序41

  小结43

  习题44第3章 Java语句48

  3.1 语句概述48

  3.2 选择语句50

3.2.1 if语句50

3.2.2 if…else语句51

3.2.3 switch语句53

  3.3 循环语句54

3.3.1 while语句54

3.3.2 do…while语句55

3.3.3 for语句58

  3.4 跳转语句60

3.4.1 return语句60

3.4.2 break语句60

3.4.3 continue语句62

  3.5 几个类及使用63

3.5.1 Math类63

3.5.2 System类64

3.5.3 格式化输出65

3.5.4 从控制台获取输入66

  小结67

  习题68第4章 类和对象72

  4.1 引用类型72

  4.2 类的定义与对象的创建73

  4.3 成员变量74

4.3.1 成员变量的定义74

4.3.2 成员变量的初始化76

4.3.3 对成员变量的访问79

  4.4 方法81

4.4.1 方法定义81

4.4.2 方法调用83

4.4.3 构造方法84

4.4.4 方法重载86

4.4.5 类方法88

  4.5 以对象为单位的信息传递89

4.5.1 用对象作为参数89

4.5.2 将对象作为返回值91

  4.6  "has-a”关系91

  4.7 对象清除93

  4.8 枚举类型95

4.8.1 基本的枚举类型及使用95

4.8.2 枚举类型的方法97

4.8.3 带参数的枚举常量与构造方法98

  小结99

  习题100第5章 字符串和包装类108

  5.1 String类108

5.1.1 构造方法109

5.1.2 提取与定位111

5.1.3 字符串比较112

5.1.4 其他若干实例方法115

5.1.5 类方法valueOf116

  5.2 StringBuffer类117

5.2.1 构造方法117

5.2.2 长度与容量117

5.2.3 基本方法119

  5.3 字符串的特殊处理120

5.3.1 关于字符串文字120

5.3.2 关于运算符+121

  5.4 包装类122

5.4.1 基本类型的包装类122

5.4.2 基本类型与包装类之间的自动转换125

  小结126

  习题127第6章 继承和嵌入类130

  6.1 继承130

6.1.1 extends短语130

6.1.2 类成员131

6.1.3  "is-a”关系133

6.1.4 成员变量隐藏133

6.1.5 方法覆盖134

6.1.6 再论构造方法138

6.1.7 扩展抽象类141

  6.2 嵌入类143

6.2.1 静态成员类143

6.2.2 非静态成员类144

6.2.3 局部类145

6.2.4 匿名类146

  6.3 Object类148

  小结150

  习题151第7章 接口和包156

  7.1 接口156

7.1.1 接口定义156

7.1.2 接口实现158

7.1.3 接口类型158

7.1.4 名字冲突处理162

  7.2 引用类型转换163

7.2.1 自动赋值转换163

7.2.2 强制转换163

7.2.3 运算符instanceof164

  7.3 标注164

7.3.1 标注类型165

7.3.2 标注165

7.3.3 预定义标注类型167

7.3.4 标注处理169

  7.4 包170

7.4.1 包及其使用171

7.4.2 import static声明174

7.4.3 访问控制175

  小结178

  习题179第8章 数组183

  8.1 数组类型与数组变量183

8.1.1 数组类型183

8.1.2 数组变量183

  8.2 数组创建184

8.2.1 数组创建表达式184

8.2.2 数组初始化块185

  8.3 数组访问187

8.3.1 对数组元素的访问187

8.3.2 增强的for语句188

8.3.3 对数组成员的访问188

  8.4 二维数组189

  8.5 数组应用举例190

  小结193

  习题194第9章 例外处理197

  9.1 例外分类197

  9.2 引发例外198

  9.3 声明抛出例外200

  9.4 捕捉例外203

9.4.1 try和catch子句204

9.4.2 多个catch子句205

9.4.3 未捕捉到的例外206

9.4.4 再引发例外207

9.4.5 finally子句208

  9.5 自定义例外类型209

  9.6 构造方法与例外处理211

  小结212

  习题213第10章 线程与同步217

  10.1 线程创建217

10.1.1 通过实现Runnable接口创建线程217

10.1.2 通过扩展Thread类创建线程219

10.1.3 两种方法的共性220

  10.2 线程控制221

10.2.1 线程状态222

10.2.2 线程优先级222

10.2.3 yield()223

10.2.4 sleep(long millis)224

10.2.5 interrupt()225

10.2.6 join()226

10.2.7 精灵线程与程序终止227

  10.3 互斥与同步227

10.3.1 临界区与互斥227

10.3.2 线程同步230

  小结236

  习题237第11章 文件与输入输出240

  11.1 File类240

11.1.1 构造方法240

11.1.2 实例方法241

  11.2 字节流243

11.2.1 InputStream和OutputStream244

11.2.2 FileInputStream和FileOutputStream245

11.2.3 PipedInputStream和PipedOutputStream247

11.2.4 BufferedInputStream和BufferedOutputStream249

  11.3 字符流250

11.3.1 Reader和Writer250

11.3.2 InputStreamReader和OutputStreamWriter251

11.3.3 FileReader和FileWriter252

11.3.4 BufferedReader和BufferedWriter253

11.3.5 PrintStream和PrintWriter253

  11.4 高级流255

11.4.1 DataInput和DataOutput255

11.4.2 DataInputStream和DataOutputStream256

11.4.3 RandomAccessFile258

  小结258

  习题259第12章 泛型和集合框架262

  12.1 泛型262

12.1.1 泛型定义262

12.1.2 约束类型参数264

12.1.3 泛型与子类型化264

12.1.4 通配符265

12.1.5 约束通配符266

12.1.6 泛型方法267

12.1.7 类型参数的使用限制268

  12.2 集合框架概述269

  12.3 表271

12.3.1 List接口271

12.3.2 数组表和链式表273

12.3.3 向量与栈275

  12.4 集277

12.4.1 散列集和链式散列集277

12.4.2 树型集279

  12.5 映射281

12.5.1 Map接口281

12.5.2 映射实现类282

  12.6 Collections类284

  小结286

  习题287第13章 GUI设计291

  13.1 GUI程序概述291

  13.2 事件处理293

13.2.1 委托模型294

13.2.2 编程方法294

13.2.3 常用的事件类和监听器接口297

  13.3 Swing组件的一般功能298

  13.4 容器与布局303

13.4.1 容器组件303

13.4.2 流式布局管理器306

13.4.3 边框式布局管理器307

13.4.4 网格式布局管理器309

13.4.5 框式布局管理器310

  13.5 几个常用的原子组件314

13.5.1 标签314

13.5.2 按钮315

13.5.3 复选框317

13.5.4 单选按钮320

13.5.5 文本域322

13.5.6 文本区325

13.5.7 组合框326

13.5.8 列表框328

  小结330

  习题331第14章 Java applet334

  14.1 applet概述334

  14.2 HTML的APPLET标记337

  14.3 Applet类340

14.3.1 小应用程序生命周期340

14.3.2 主要行为方法341

  14.4 绘制图形345

14.4.1 GUI绘制机制345

14.4.2 绘图支持类348

  小结355

  习题356参考文献358

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个