本书以“零”为起点,从类和对象的概念入手,着重介绍Java面向对象的程序设计,旨在帮助读者建立面向对象的思想,掌握面向对象的基本技能。同时,本书对Java语言的各种基本特性及相关的编程技术也做了详细的介绍。
全书共分12章,内容包括Java程序初步、数据与数据运算、Java类、继承与接口、数组与字符串、例外处理、多线程编程、输入输出与文件处理、容器布局、事件处理、小应用程序编程等。
本书立足基本理论和方法,注重实践与应用。从应用的角度来介绍基础理论知识,通过例子来说明编程的方法和过程。本书每一章的最后两部分都是小结和精选习题,便于读者复习、总结、巩固、练习与提高。
本书语言流畅,内容翔实,逻辑严谨,分析透彻,适合作为普通高等院校计算机及相关专业的教材,也可作为读者自学Java语言和面向对象编程技术的用书。
第1章Java程序初步
1.1Java语言特点
1.1.1面向对象
1.1.2平台无关
1.2一个简单的Java程序
1.3编译和运行Java程序
1.3.1Java开发工具包简介
1.3.2编译和运行Java程序
l4Java词法结构
1.4.1空白符号
1.12注释
1.4.3词法符号
1.5小结
习题
第2章数据与数据运算
2.1基本数据类型
2.1.1分类及特性
2.1.2文字
2.1.3变量
2.2基本类型转换
2.2.1自动转换
2.2.2强制转换
2.3运算符
2.3.1算术运算符
2.3.2关系运算符
2.3.3逻辑运算符
2.3.4位逻辑运算符
2.3.5位移运算符
2.3.6三日条件运算符
2.3.7赋值运算符
2.4表达式
2.4.1表达式的结果和类型
2.4.2表达式的计算次序
2.5小结
习题
第3章Java语句
3.1语句概述
3.2选择语句
3.21汀语句
3.2.2if-else语句
3.2.3switch语句
3.3循环语句
3.3.1while语句
3.3.2do-while语句
3.3.3for语句
3.4跳转语句
3.4.1return语句
3.4.2break语句
3.4.3continue语句
3.5小结
习题
第4章Java类
4.1引用类型
4.2类的定义与对象的创建
4.3变量
4.3.1变量的定义
4.3.2变量的初始化
4.3.3对成员变量的访问
4.4方法
4.4.1方法定义
4.4.2方法调用
4.4.3构造方法
4.4.4方法重载(methodoverload)
4.4.5类方法
4.5以对象为单位的信息传递
4.5.1用对象作为参数
4.5.2将对象作为返回值
4.6"has-a'关系
4.7对象清除
4.8几个基本的类
4.8.1Math
4.8.2System
4.83基本类型的包装类
4.9小结
习题
第5章继承、接口与包
5.1继承
5.1.1extends子句
5.1.2类成员
5.1.3"is-a'关系
5.1.4成员变量隐藏
5.1.5方法覆盖(methodoverride)
5.1.6再论构造方法
5.1.?扩展抽象类
5.2接口
5.2.1接口定义
5.2.2接口实现
5.2.3接口类型
5.2.4名字冲突处理
5.3引用类型转换
5.3.1自动赋值转换
5.3.2强制转换
5.4包
5.4.1包及其使用
5.4.2访问控制
5.5Object类
5.6小结
习题
第6章Java字符串
6.1String类
6.1.1构造方法
6.1.2提取与定位
6.1.3字符串比较
6.1.4其他若干实例方法
6.1.5类方法valueOf
6.2StringBuffer类
6.2.1构造方法
6.2.2长度与容量
6.2.3基本方法
6.3字符串的特殊处理
6.3.1字符串文字
6.3.2运算符+
6.4小结
习题
第7章Java数组
7.1数组类型与数组变量
7.1.1数组类型
7.1.2数组变量
7.2数组创建
7.2.1数组创建表达式
7.2.2数组初始化块
7.3数组访问
7.3.1对数组元素的访问
7.3.2对数组成员的访问
7.4二维数组
75数组应用举例
7.6小结
习题
第8章例外处理
8.1例外分类
8.2引发例外
8.3声明抛出例外
8.4捕捉例外
8.4.1try和catch子句
8.4.2多个catch子句
8.4.3未捕捉到的例外
8.4.4再引发例外
8.4.5finally子句
8.5定义自己的例外类型
8.6构造方法与例外处理
8.7小结
习题
第9章线程与同步
9.1线程创建
9.1.1通过实现Runnable接口创建线程
9.1.2通过扩展Thread类创建线程
9.1.3两种方法的共性
9.2线程控制
9.2.1线程状态
9.2.2线程优先级
9.2.3yield()
9:2.4sleep(10ngmillis)
9.2.5interrupt()
9.2.6join()
9.2.7精灵线程与程序终止
9.3互斥与同步
9.3.1临界区与互斥
9.3.2线程同步
9.4小结
习题
第10章输入与输出
10.1File类
10.1.1构造方法
10.1.2实例方法
10.2字节流.
10.2.11nputStream和OutputStream
10.2.2FilelnputStream和FileOutputStream
10.2.3ByteArraylnputStream和ByteArrayOutputStream
10.2.4PipedlnputStream和PipedOutputStream
10.2.5BufferedlnputStream和BufferedOutputStream
10.3字符流
10.3.1Reader和Writer
10.3.21nputStreamReader和()utputStreamWriter
10.3.3FileReader和FileWriter
10.3.4CharArrayReader和CharArrayWriter
10.3.5StringReader和StringWriter
10.3.6PipedReader和PipedWriter
10.3.7BufferedReader和BufferedWriter
10.4高级流
10.4.1DatalnputStream和Data()utputStream
10.4.2PrintStream和PrintWriter
10.4.3标准输入输出流
10.5小结
习题
第11章GUI设计
11.1GUI程序概述
11.2事件处理
11.2.1委托模型
11.2.2编程方法
11.2.3常用的事件类和监听器接口
11.3Swing组件的一般功能
11.4容器与布局
11.4.1容器组件
11.4.2流式布局管理器
11.4.3边界式布局管理器
11.4.4栅格式布局管理器
11.4.5框式布局管理器
11.5几个常用的原子组件
11.5.1标签
11.5.2按钮
11.5.3复选框
11.5.4单选钮
11.5.5文本域
11.5.6文本区
11.5.7组合框
11.5.8列表框
11.6小结
习题
第12章Javaapplet
12.1applet概述
12.2HTMI的APPLET标记
12.3Applet类
12.3.1小应用程序生命周期
12.3.2主要行为方法
12.4绘制图形
12.4.1GUI绘制机制
12.4.2绘图支持类
12.5小结
习题
参考文献
编写本书的目的是为了提供一本零起点、全面介绍面向对象程序设计的教程。本;书的读者不需要了解C/C++或其他计算机语言及其程序没计的知识,但应该对程序、数据、二进制编码、文件、CPU、存储器、输入输出设备等概念有所理解。通过本书内容的学习,将为读者进一步学习各种Java技术、构建面向对象的软件系统以及网上应用系统打下坚实的基础。
Java是一种完全面向对象的程序设计语言,适合于进行面向对象的软件系统开发和开发出真正的面向对象的软件系统。在java中,除了数值、字符、布尔型几种基本类型数据外,其他所有类型的数据都是用对象来表示的。一个对象既包含了表示其状态的数据,也包含了描述其行为的方法。而对一个对象的数据的访问,则是通过向对象传递消息、调用对象的方法进行的。这就是所谓的对象处理方式。
从作者多年学习和教学的经验来看,学习Java编程的最大困难在于建立面向对象的思维方式、熟悉面向对象的编程风格。而类和对象的概念则是其中的基础。为此,本书在第1章Java程序初步就引人类和对象的概念,并通过一个简单的例子加以具体的说明。第2章和第3章在介绍数据与数据处理、Java语句时进一步强化类和对象的概念,以及面向对象编程的思维方式。然后,以此为基础,在第4、第5章再系统地介绍Java面向对象的编程方
法和技能。
字符串和数组是几乎所有的计算机语言都支持的两种基本数据结构。与大多数计算机语言不同,Java用对象来表示字符串和数组,并采用对象的方式处理。第6、第7章分别专门介绍字符串和数组的使用,同时也为了进一步巩固面向对象的编程技能。
例外处理、线程与同步和输入输出是Java编程的几项基础技术,是开发各种Java应用软件所必不可少的。本书第8、第9、第10章也用较大的篇幅分别对它们进行了介绍。在这里,例外、线程、输入输出流同样是对象,对这些编程技术的掌握也都需要建立在对象和对象处理的概念之上。
图形用户界面(GUl)设计是许多读者感兴趣的课题。从1995年发布的Java 1.o版到现在的1.4版,有关图形用户界面设计的内容已经发生了很大变化。特别是,1.1版用事件委托模型替代原先的事件传递机制来处理事件;1.2版在原先AWT组件的基础上引进了Swing组件,并建议用Swing取代AWT。本书第11、第12章分别介绍了基于Swing的图形用户界面和小应用程序的设计。同样地?图形用户界面和小应用程序设计中涉及的组件、事件、事件监听器、布局管理器等也都表示为对象并采用对象的方式进行处理。
全书立足基本理论和方法,注重实践与应用。从应用的角度来介绍基础理沦知识,通过例子来说明编程的方法和过程。对基本理论、原理、方法和技术的介绍力求概念明确、结构清晰、逻辑严谨。
本书每一章的最后两部分是小结和习题。小结给出了一章的内容要点,便于读者复习与总结;习题主要有选择题和编程题两种形式,用以帮助读者检查学习效果,巩固已学知识,进一步提高能力。
感谢高林教授审阅了全书,并提出了许多宝贵的意见。同时也要感谢清华大学出版社谢琛老师为本书的出版所付出的辛勤工作。另外,作者在编写本书的过程中,参阅过大量的文献和网上资料。特别是Sun Microsystems公司Java网站(http://java.sun.comdocs/books/)上的内容,在此一并表示感谢。
由于作者学识水平有限,错误和不妥之处,敬请广大读者批评和指正。如果读者有好的建议和要求,请与作者联系,电子邮件地址是loubuye@163.com。
作 者
2004年2月