本书适合作为学习Java语言及编写Java应用程序的实用型教科书或教学参考书,书中主要阐述了Java语言的关键字、语句、语法规则、类库等的使用方法,其内容包括Java语言开发工具的介绍、面向对象编程、Java基础语句、Java类、Java类的继承与多态、Java接口、Java包、Java异常、Java基础类库的应用,以及通过应用型案例掌握Java语言的输入和输出操作、图形用户界面操作、Applet小程序的编写、图形绘制操作、多线程处理、图像动画制作、网络编程、数据库操作等相关类库的使用。 本书可作为大学、大专等理工科院校与计算机相关专业的本科或专科生使用的教材,也可作为学习Java语言的初、中级读者的参考用书。
《Java程序设计案例教程》由基础原理篇和案例应用篇组成,基础原理篇涵盖了Java语言编程基础知识、语法规则、面向对象编程理念等,通过学习基础原理篇可实现基本具备Java编程的能力;案例应用篇中的应用实例基于J2SE平台,解析J2SE中Java类库的操作机制,通过实例掌握Java类库的应用,所有实例具备极强的应用参考价值,为使用Java语言开发项目奠定坚实基础。本书配有教学课件(PPT),下载地址为清华大学出版社网站本书页面。
本书的作者们都是多年从事Java语言教学和使用Java开发项目的教育工作者和软件工程师,对Java有着深入的理解,了解学生在学习Java语言时遇到的难点并知道如何使学生能够更快、更准确地掌握和使用Java语言,在编写过程中,能使书的内容尽量通俗、易懂,使其符合循序渐进、由浅入深的学习规则,帮助读者规范、系统地学习Java语言,为后续深入学习Java语言奠定扎实的基础。
由于笔者多年从事Java语言的教学工作,有些学习体会在此愿与读者交流,仅供读者学习参考。计算机语言是人与计算机交流时使用的语言,更确切地说是人命令计算机做某些事情的语言。计算机语言与人类交流使用的自然语言功能是一样的,也有单词(被称为关键字)、词组(被称为类库或函数库)、语法规则等。但是计算机语言的单词是有限的,因为计算机CPU中的指令译码器只能理解很少的单词,而语法规则也是规定好的,只可以按照语法规则来编写一些语句,否则计算机会不识别。掌握计算机语言的关键字和语法规则就可以编写计算机识别的可执行语句,而计算机程序就是一些语句遵循语法规则的逻辑组合,它可以让计算机完成特定的功能。顾名思义,计算机好像只能实现计算功能,但它为什么却能用在各行各业?因为几乎所有的事物及事物的改变都可以用“数据”来描述,例如最熟悉的阿拉伯数字、ASCII码(描述文字)、PCM码(描述视频、音频信息)、表格、图等“广义数据”,处理这些“数据”正是计算机的专长。因此,编写计算机程序首先需要通过“数据”和对数据的操作来建立一些模型(称为数学模型),然后计算机执行程序则是针对数据的操作来实现要达到的目的。目前的面向对象编程的理念就是帮助实现或建立这样的模型,它可以使编写计算机程序变得简单。掌握面向对象编程思想是编写应用程序的基础,而Java语言就是适用于面向对象编程的语言。另外,一种计算机语言除了有关键字和规定的语法规则外,还提供了大量的类库或函数库,这些类库或函数库则是针对各种类型的“数据”实施处理的,在编写应用程序时,几乎所有需要处理的数据类型都可以在类库或函数库中找到处理方法,类库或函数库可以说包罗万象。总之学习计算机语言在理解了其使用的编程思想后,剩下的就是学习关键字、语法规则和类库或函数库的使用了。
本书分为两部分: 第一部分包含6章,主要是讲解Java语言的关键字、由关键字组成的表达式、程序流控制、类定义、接口定义、对象的使用、异常的处理等语句以及Java语言的语法规则; 第二部分包含9章,主要介绍关于Java基础类库JFC的应用,在JFC中每一个类库都是针对一类数据进行的操作,类库提供了许多数据操作方法,每一类操作都制定了操作机制,了解操作机制是更好地使用类库的前提。Sun公司提供的J2SDK中类库使用说明文档是最直接的使用类库的学习资料,本书则是通过案例理解类库的操作机制和使用方法,案例涉及的内容有计算机输入和输出操作、图形用户界面操作、Applet小程序的编写、图形绘制操作、多线程处理、图像动画制作、网络编程、数据库操作等,为读者深入学习各个应用领域中Sun公司提供的Java API奠定一些基础。
书中所有案例都是通过编译可运行的Java应用程序,并且实现了主要功能,读者稍加修改(添加一些辅助功能)就可以应用到实际项目中。出版社网站上会提供这些案例的源代码和编译后可执行类代码,方便读者学习和使用。
本书由北京师范大学信息科学与技术学院孙一林副研究员主编,参加编写与进行案例程序调试的还有中国农业大学信息与电气工程学院彭波教授、北京师范大学教育技术学院张庆利高级工程师、北京联合大学师范学院电子信息系曾文琪老师,以及胡治国、崔永普、张伟娜、王平等研究生,在此表示感谢。
由于水平有限,书中难免有疏漏之处,敬请读者批评指正。如果读者有问题需要与作者讨论,可发送电子邮件到: yilins@bnu.edu.cn。
作者2016年1月
孙一林,北京师范大学信息科学与技术学院副研究员,主讲“微机系统与接口技术”、“嵌入式系统”、“Java程序设计”等课程,主编《微型机系统与接口技术》(北京高等教育精品教材建设项目)、《Java程序设计》、《汇编程序设计》等教材。长期从事微机接口应用、嵌入式系统等硬件及底层驱动、相关软件的设计与研发工作,曾获北京市科学技术进步奖。
第一部分基础原理篇
第1章Java程序设计基础
1.1Java程序与运行
1.1.1Java语言的特征
1.1.2Java虚拟机
1.1.3Java字节代码
1.1.4Java编译单元
1.2Java程序的开发
1.2.1Java语言程序开发平台
1.2.2Java程序基础开发运行平台——J2SDK
1.2.3在Windows操作系统中搭建Java程序的开发和运行环境
1.2.4Java程序的编译和运行
1.3Java语言的标识符和关键字
1.3.1Java注释语句
1.3.2Java标识符
1.3.3Java关键字
1.4Java基本数据类型
1.4.1数据值的表示法
1.4.2变量
1.4.3变量的数据类型转换
1.4.4常量
1.5Java运算符和表达式
1.5.1Java运算符
1.5.2Java表达式
1.5.3表达式中运算符的使用规则
1.6Java程序流控制语句
1.6.1分支结构语句
1.6.2循环结构语句
1.6.3辅助流控制语句
1.6.4流控制语句应用示例
1.7小结
1.8习题
第2章面向对象编程
2.1面向对象程序设计
2.1.1面向对象的程序设计方法
2.1.2Java面向对象程序设计
2.2Java类
2.2.1Java类的定义
2.2.2方法的定义
2.2.3Java修饰符及其权限
2.3Java对象
2.3.1对象的创建
2.3.2构造方法的使用
2.3.3对象的使用
2.3.4对象的清除
2.3.5Java类和对象的关系
2.4数组对象
2.4.1一维数组的声明和创建
2.4.2多维数组的声明和创建
2.4.3数组的应用
2.5小结
2.6习题
第3章Java类的继承与多态
3.1Java类的继承
3.1.1概念和语法
3.1.2Java类继承关系的测试
3.1.3隐藏、覆盖和重载
3.1.4构造方法的重载
3.2abstract和final修饰符
3.2.1abstract修饰符
3.2.2final修饰符
3.3this和super变量
3.3.1this变量
3.3.2super变量
3.4Java的多态性
3.4.1多态的概念
3.4.2多态的应用
3.4.3构造方法与多态
3.5小结
3.6习题
第4章Java接口和Java包
4.1Java接口
4.1.1接口的定义
4.1.2接口的实现
4.1.3接口的继承
4.1.4Java类同时继承父类并实现接口
4.1.5接口与Java抽象类
4.1.6接口的应用
4.2Java包
4.2.1package语句
4.2.2Java包与路径
4.2.3import语句
4.2.4直接引用Java包中的类和接口
4.2.5Java包的应用
4.3小结
4.4习题
第5章Java异常处理
5.1Java异常处理机制
5.1.1异常的类型
5.1.2异常处理机制
5.1.3Java的异常处理
5.2Java异常的捕获与处理
5.2.1trycatch语句
5.2.2finally语句
5.3Java异常的抛出
5.3.1从方法体中抛出异常对象
5.3.2针对被抛出的异常对象的处理
5.4Java基础包中定义的常用异常类
5.4.1异常类的根类与直接子类
5.4.2java.lang包中定义的具体异常类
5.5自定义异常类
5.5.1异常类定义规则及抛出
5.5.2捕获自定义异常对象
5.6小结
5.7习题
第6章Java基础类的应用
6.1java.lang包
6.2Object类
6.3基本数据类型类
6.3.1整型类
6.3.2浮点类
6.3.3其他常用类
6.4字符串String类
6.4.1String类
6.4.2创建String对象并对其进行操作
6.4.3StringBuffer类
6.4.4创建StringBuffer对象并对其进行操作
6.5Math类
6.6Runtime类
6.7System类
6.8小结
6.9习题
第二部分案例应用篇
第7章Java输入和输出操作案例
7.1Java的输入、输出机制
7.1.1Java数据流传输模式
7.1.2Java数据流的主要操作类
7.2控制台输入、输出操作案例
7.3文件输入、输出操作案例
7.3.1字节流文件输入、输出操作
7.3.2字符流文件输入、输出操作
7.4文件随机读写操作案例
7.5对象序列化传输案例
7.6小结
7.7习题
第8章Java图形用户界面设计案例
8.1构成GUI的组件
8.1.1Java组件类
8.1.2组件属性控制
8.1.3GUI的组成
8.2组件事件处理
8.2.1Java组件事件监听处理机制
8.2.2Java组件事件监听标准程序代码
8.3java.awt包中组件应用案例
8.3.1鼠标操作应用案例
8.3.2键盘操作应用案例
8.4javax.swing包中组件应用案例
8.4.1修改组件属性案例
8.4.2记事本应用程序案例
8.4.3Excel表格文件内容显示案例
8.5小结
8.6习题
第9章Applet小程序案例
9.1Applet类及Applet小程序
9.1.1Applet小程序类
9.1.2Applet小程序编程框架
9.2Applet小程序的运行机制
9.3Java程序Application和Applet
9.4Applet小程序应用案例
9.4.1显示外部参数Applet小程序
9.4.2显示时间Applet小程序
9.4.3播放声音Applet小程序
9.4.4Applet小程序界面添加菜单
9.5小结
9.6习题
第10章Java基础绘制图形案例
10.1Java基础图形绘制功能
10.1.1Graphics图形类
10.1.2绘图坐标体系
10.1.3Graphics类中主要绘图操作方法
10.2Java图形绘制案例
10.2.1绘制各种图形和图像
10.2.2绘制数学函数图形
10.2.3绘制直方图
10.2.4绘制文字
10.2.5简单绘图程序
10.3小结
10.4习题
第11章Java高级图像处理案例
11.1Java 2D绘制图形案例
11.1.1二维图形的绘制机制
11.1.2绘制二维图形案例
11.2Java 2D图形、文字处理案例
11.2.1二维图形后期处理案例
11.2.2二维文字后期处理案例
11.3Java 2D图像处理案例
11.3.1二维图像处理机制
11.3.2二维图像边缘检测案例
11.3.3二维图像综合处理案例
11.4小结
11.5习题
第12章Java多线程应用案例
12.1线程
12.1.1Runnable接口和Thread类
12.1.2创建启动线程对象
12.1.3创建具有多线程功能的Applet小程序
12.2Java多线程机制
12.2.1线程对象的生命周期和状态
12.2.2线程对象的基本控制
12.2.3多线程问题
12.2.4线程间的同步控制机制
12.3多线程应用程序案例
12.3.1Thread类中的sleep()方法
12.3.2Object类中的线程控制方法
12.3.3账户数据操作问题
12.3.4实时时钟显示Applet小程序
12.3.5滚动显示文字信息Applet小程序
12.4小结
12.5习题
第13章Java动画制作案例
13.1简单图形动画制作案例
13.2文字动态显示案例
13.3图像动态显示案例
13.3.1动态显示多幅图像
13.3.2单幅图像变形动态显示
13.4图像缓冲技术动态显示案例
13.4.1缓冲技术
13.4.2利用缓冲技术实现动态显示图像案例
13.5小结
13.6习题
第14章Java网络应用案例
14.1URL通信
14.1.1创建并连接URL对象
14.1.2获取网络资源案例
14.1.3Web服务器提供HTTP服务案例
14.2Socket通信
14.2.1建立服务器和客户机Socket通信程序框架
14.2.2Socket通信案例
14.2.3网络聊天室程序案例
14.3UDP通信
14.3.1建立UDP通信程序框架
14.3.2UDP通信案例
14.4小结
14.5习题
第15章Java数据库应用案例
15.1JDBC概述
15.1.1JDBC API
15.1.2JDBC的组成
15.1.3JDBC的任务
15.2数据库操作命令SQL
15.2.1创建、删除数据库
15.2.2创建、删除、修改基本表格
15.2.3创建、删除索引
15.2.4创建、删除视图
15.2.5数据查询
15.2.6数据更新
15.3创建Java数据库应用模型
15.3.1创建数据源
15.3.2加载数据库驱动程序
15.3.3连接数据库
15.3.4操作数据库
15.3.5获取数据结果集
15.4JDBC API应用案例
15.4.1显示查询数据库结果
15.4.2向数据库中追加记录
15.4.3SQL命令操作数据库
15.4.4Applet数据库应用案例
15.5小结
15.6习题