
本书共分23章,内容涵盖Java SE开发环境配置、程序设计基础、面向对象、工具API、GUI开发、图形开发、网络编程和案例实训。本书使用的开发环境是JDK 11.0.8+Eclipse 4.17.0,逐步引领读者从入门基础到各个知识点的学习,全书内容由浅入深,辅以大量的实例说明,并有针对性地提供了一些编程实训。
本书提供所有实例的源代码,以及开发过程中所用到的软件,供读者学习参考使用。
本书为学校教学量身定做,供高等院校Java SE开发相关课程使用,也可以供没有Java SE开发基础的程序员作为入门用书,还可以为社会Java培训班作为教材使用。对于缺乏项目实战经验的程序员来说,可用于快速积累项目开发经验。
本书为零基础的读者讲解Java SE技术,针对Java SE技术标准编程进行了详细的讲解,以简单、通俗易懂的案例,逐步引领读者从入门基础到各个知识点进行学习。本书内容涵盖Java SE开发环境配置、程序设计基础、面向对象、工具API、GUI开发、图形开发、网络编程和案例实训。每个章节中穿插了上机习题,用于对该章内容进行阶段性总结演练。
作者长期从事教学工作,积累了丰富的教学经验,其“实战教学法”取得了较好的效果。本书有以下几个特点。
(1) 实战性。所有内容都由案例引入,通俗易懂。
(2) 流行性。书中讲解的都是Java SE开发过程中较为流行的方法、框架、模式等。紧扣学生的就业。
(3) 适合教学。书中章节安排适当,将习题融于讲解的过程中,教师可以根据情况选用,也可以进行适当增减。
一、 本书的知识体系
学习Java SE应用开发最好能有计算机操作的基本技能,以及基本的逻辑思维。本书的知识体系结构如下图所示,遵循了循序渐进的原则,逐步引领读者从入门基础到各个知识点的学习。
第1部分入门基础
第1章Java语言入门
第2部分程序设计基础
第2章程序设计基础——变量及其运算
第3章程序设计基础——流程控制和数组
第3部分面向对象
第4章面向对象编程(一)
第5章面向对象编程(二)
第6章面向对象编程(三)
第4部分工具API
第7章Java异常处理
第8章Java常用API
第9章Java多线程开发
第10章Java IO操作
第5部分Java应用开发
第11章GUI程序开发
第12章Java界面布局管理
第13章Java事件处理
第14章Java画图
第15章Java网络应用开发
续表
第6部分Java实训
第16章程序设计基础实训
第17章面向对象实训: 单例模式
第18章面向对象实训: 软件功能扩充
第19章工具API实训: 字符处理与文本翻译
第20章GUI开发实训: 用户管理系统
第21章Java画图实训: 卡通时钟和拼图游戏
第22章网络编程实训: 在线打字游戏
第23章综合实训: 即时通信软件开发
二、 本书内容介绍
全书共分为23章。
第1章为Java语言入门,介绍Java的发展历史和Java的运行机制,以及Java程序开发需要的准备工作。
第2章为程序设计基础——变量及其运算,首先介绍变量的定义、变量的数据类型及其转换,然后讲解Java中的各种运算,最后介绍运算符优先级。
第3章为程序设计基础——流程控制和数组,首先介绍三种结构的用法,并讲解break和continue语句,然后讲解数组的作用、定义、性质和用法,以及二维数组的使用。
第4章为面向对象编程(一),主要介绍面向对象的基本原理和基本概念,包括类、对象、成员变量、成员函数、构造函数以及函数的重载。
第5章为面向对象编程(二),针对面向对象的应用,详细讲解一些比较高级的概念。首先讲解静态变量、静态函数、静态代码块,然后讲解封装、包和访问控制符,最后简单介绍类中类的使用。
第6章为面向对象编程(三),讲解继承和覆盖,多态性、抽象类和接口的应用。最后讲解几个其他问题,包括final关键字、Object类、jar命令,以及Java文档的使用。
第7章为Java异常处理,讲解异常处理的原理以及需要注意的问题。
第8章为Java常用API,讲解数值运算、字符串处理、数据类型转换和常见系统类、集合框架等。
第9章为Java多线程开发,讲解多线程开发、线程控制及线程的安全性。
第10章为Java IO操作,讲解文件的操作、字节流的读写和字符流的读写,介绍RandomAccessFile类和Properties类。
第11章为GUI程序开发,讲解javax.swing中的一些API,主要涉及窗口开发、控件开发、颜色、字体和图片开发,以及一些常见的其他功能。
第12章为Java界面布局管理,讲解几种最常见的布局: FlowLayout、GridLayout、BorderLayout、空布局以及其他比较复杂的布局方式。最后,用一个计算器程序对其进行总结。
第13章为Java事件处理,讲解事件的基本原理、开发流程和几种最常见事件的处理,以及用Adapter简化事件的开发。
第14章为Java画图,讲解画图原理及方法,画图片及图片的缩放、裁剪和旋转。
第15章为Java网络应用开发,利用TCP编程实现一个简单的聊天室。
第16~23章为8个实训案例,可以在讲课过程中穿插使用。
本书为学校教学量身定做,供高等院校Java SE应用开发相关课程使用,也可以供没有Java SE应用开发基础的程序员作为入门用书,还可以供社会Java技术培训班作为教材使用。对于缺乏项目实战经验的程序员来说,可用于快速积累项目开发经验。
本书提供全书所有实例的源代码,供读者学习与参考,所有程序均经过作者精心调试。
由于作者水平有限,书中错误和不妥之处在所难免,敬请读者批评指正。
有关本书的意见反馈和咨询,读者可在清华大学出版社相关版块中与作者进行交流。
郭克华
2021年3月
源码下载
第1章Java语言入门
1.1认识Java语言
1.1.1认识编程语言
1.1.2Java的来历
1.1.3Java语言的优势
1.1.4Java语言的三个版本
1.1.5编程前的准备工作
1.2安装JDK
1.2.1获取JDK
1.2.2安装JDK
1.2.3安装介绍
1.2.4环境变量设置
1.3开发第一个Java程序
1.3.1编写源代码
1.3.2将源代码编译成.class文件
1.3.3执行.class文件
1.3.4常见错误
1.4使用Eclipse开发Java程序
1.4.1认识Eclipse
1.4.2安装Eclipse
1.4.3建立项目
1.4.4开发Java程序
1.4.5维护项目
本章习题
第2章程序设计基础——变量及其运算
2.1认识变量
2.1.1变量
2.1.2变量类型
2.2使用变量
2.2.1整型变量
2.2.2浮点型变量
2.2.3字符型变量
2.2.4布尔型变量
2.2.5基本数据类型之间的类型转换
2.2.6基本数据类型和字符串之间的转换
2.2.7变量的作用范围
2.3注释的书写
2.3.1单行注释
2.3.2多行注释
2.3.3文档注释
2.4Java中的运算
2.4.1算术运算
2.4.2赋值运算
2.4.3关系运算
2.4.4逻辑运算
2.4.5运算符的优先级
本章习题
第3章程序设计基础——流程控制和数组
3.1程序设计的结构
3.1.1判断结构
3.1.2if结构
3.1.3switch结构
3.2认识循环结构
3.2.1循环结构
3.2.2while循环
3.2.3dowhile循环
3.2.4for循环
3.2.5循环嵌套
3.2.6break语句和continue语句
3.3数组
3.3.1数组原理
3.3.2定义数组
3.3.3使用数组
3.3.4数组的引用性质
3.3.5数组的应用
3.3.6多维数组
本章习题
第4章面向对象编程(一)
4.1认识类和对象
4.1.1类
4.1.2定义类
4.1.3使用类实例化对象
4.1.4访问对象中的成员变量
4.1.5对象的引用性质
4.2认识成员函数
4.2.1成员函数
4.2.2定义和使用成员函数
4.2.3函数参数的传递
4.2.4函数重载
4.3认识构造函数
4.3.1构造函数
4.3.2定义和使用构造函数
本章习题
第5章面向对象编程(二)
5.1静态变量和静态函数
5.1.1静态变量
5.1.2静态变量的常见应用
5.1.3静态函数
5.1.4静态代码块
5.2认识封装
5.2.1封装
5.2.2实现封装
5.3使用包
5.3.1包
5.3.2将类放在包中
5.3.3访问包中的类
5.4使用访问控制修饰符
5.4.1访问控制修饰符
5.4.2类的访问控制修饰符
5.4.3成员的访问控制修饰符
5.5使用类中类
本章习题
第6章面向对象编程(三)
6.1使用继承
6.1.1继承
6.1.2实现继承
6.1.3继承的底层本质
6.2成员的覆盖
6.2.1成员覆盖
6.2.2成员覆盖的作用
6.3使用多态
6.3.1多态
6.3.2使用多态
6.3.3父类和子类对象的类型转换
6.4抽象类和接口
6.4.1抽象类
6.4.2接口
6.5其他
6.5.1关键字final
6.5.2Object类
6.6工具的使用
6.6.1将字节码打包发布
6.6.2文档的使用
本章习题
第7章Java异常处理
7.1认识异常
7.1.1生活中的异常
7.1.2软件中的异常
7.1.3为什么要处理异常
7.1.4异常的机理
7.1.5常见异常
7.2异常的就地捕获
7.2.1就地捕获
7.2.2就地捕获异常
7.2.3多种异常
7.2.4用finally保证安全性
7.3异常的向前抛出
7.3.1向前抛出
7.3.2向前抛出的方法
7.4自定义异常
7.4.1自定义异常的意义
7.4.2自定义异常的使用方法
本章习题
第8章Java常用API
8.1数值运算
8.1.1用Math类实现数值运算
8.1.2实现随机数
8.2用String类进行字符串处理
8.3用StringBuffer类进行字符串处理
8.4基本数据类型的包装类
8.4.1认识包装类
8.4.2通过包装类进行数据类型转换
8.5认识Java集合
8.5.1集合
8.5.2Java中的集合
8.5.3认识泛型
8.6使用一维集合
8.6.1一维集合
8.6.2List集合
8.6.3Set集合
8.6.4使用Collections类对集合进行处理
8.7使用二维集合
8.7.1Map集合
8.7.2使用Hashtable和Properties
本章习题
第9章Java多线程开发
9.1认识多线程
9.1.1多线程
9.1.2继承Thread类开发多线程
9.1.3实现Runnable接口开发多线程
9.1.4两种方法的区别
9.2控制线程的运行
9.2.1控制线程运行的意义
9.2.2传统方法的安全问题
9.2.3控制线程运行的方法
9.3线程协作安全
9.3.1线程协作
9.3.2线程协作的问题案例
9.3.3线程协作的解决方案
9.4线程同步安全
9.4.1线程同步
9.4.2线程同步的问题案例
9.4.3线程同步的解决方案
9.4.4线程死锁
9.5认识定时器
9.5.1定时器的作用
9.5.2定时器的使用
本章习题
第10章Java IO操作
10.1认识IO操作
10.2File类操作
10.2.1File类
10.2.2File类操作文件
10.2.3File类操作
10.3字节流的输入与输出
10.3.1字节流
10.3.2字节流读写文件
10.3.3字节流读写对象
10.4字符流的输入与输出
10.4.1字符流
10.4.2字符流读写文件
10.4.3键盘输入
10.5IO操作的其他类
10.5.1RandomAccessFile类
10.5.2Properties类
本章习题
第11章GUI程序开发
11.1认识GUI和Swing
11.1.1图形用户界面
11.1.2Swing
11.2使用窗口
11.2.1JFrame类开发窗口
11.2.2JDialog类开发窗口
11.3使用控件
11.3.1控件
11.3.2标签、按钮、文本框、多行文本框和密码框
11.3.3单选按钮、下拉列表框和复选框
11.3.4菜单
11.3.5使用JOptionPane
11.3.6其他控件
11.4颜色、字体和图片的使用
11.4.1使用颜色
11.4.2使用字体
11.4.3使用图片
11.5其他功能
11.5.1设置界面的显示风格
11.5.2获取屏幕大小
11.5.3使用默认应用程序打开文件
11.5.4将程序显示为系统托盘
本章习题
第12章Java界面布局管理
12.1布局管理
12.1.1认识布局管理
12.1.2认识LayoutManager
12.2FlowLayout布局
12.2.1认识FlowLayout
12.2.2使用FlowLayout
12.3GridLayout布局
12.3.1认识GridLayout
12.3.2使用GridLayout
12.4使用BorderLayout布局
12.4.1认识BorderLayout
12.4.2使用BorderLayout
12.5综合案例——计算器
12.5.1案例需求
12.5.2关键技术
12.5.3代码的编写
12.6空布局
12.6.1认识空布局
12.6.2使用空布局
本章习题
第13章Java事件处理
13.1认识事件处理
13.1.1事件
13.1.2事件处理代码的编写
13.1.3其他编程风格
13.2处理ActionEvent
13.2.1认识ActionEvent
13.2.2使用ActionEvent解决实际问题
13.3处理FocusEvent
13.3.1认识FocusEvent
13.3.2使用FocusEvent解决实际问题
13.4处理KeyEvent
13.4.1认识KeyEvent
13.4.2使用KeyEvent解决实际问题
13.5处理MouseEvent
13.5.1认识MouseEvent
13.5.2使用MouseEvent解决实际问题
13.6处理WindowEvent
13.6.1认识WindowEvent
13.6.2使用WindowEvent解决实际问题
13.7使用Adapter简化开发
本章习题
第14章Java画图
14.1认识Java画图
14.1.1画图
14.1.2实现画图
14.2Graphics画图
14.2.1Graphics
14.2.2使用Graphics
14.2.3用Graphics实现画图
14.2.4综合案例
14.3认识画图片
14.3.1画图片
14.3.2画图片的使用
14.3.3图片的裁剪和缩放
14.3.4图片的旋转
14.4结合键盘事件进行画图
14.4.1实例需求
14.4.2键盘事件
14.4.3代码的编写
14.4.4解决重复画面问题
14.5结合鼠标事件进行画图
14.5.1实例需求
14.5.2复习鼠标事件
14.5.3代码的编写
本章习题
第15章Java网络应用开发
15.1认识网络编程
15.1.1网络应用程序
15.1.2认识IP地址和端口
15.1.3客户端和服务器
15.2用客户端连接到服务器
15.2.1案例介绍
15.2.2实现客户端连接到服务器
15.2.3代码的编写
15.3利用TCP实现双向聊天系统
15.3.1案例介绍
15.3.2实现双向聊天
15.3.3代码的编写
15.4利用TCP实现多客户端相互通信系统
15.4.1案例介绍
15.4.2编写服务器程序
15.4.3编写客户端程序
本章习题
第16章程序设计基础实训
16.1关于变量和数据类型的实践
16.2流程控制和数组的综合实践
第17章面向对象实训: 单例模式
17.1需求简介
17.2不用单例模式的效果
17.3最原始的单例模式
17.4首次改进
17.5再次改进
17.6思考题
第18章面向对象实训: 软件功能扩充
18.1需求简介
18.2实现方法
18.3出现的问题
18.4改进
18.5测试
第19章工具API实训: 字符处理与文本翻译
19.1字符频率统计软件
19.1.1软件功能简介
19.1.2重要技术
19.1.3项目结构
19.1.4代码的编写
19.1.5思考题
19.2文本翻译软件
19.2.1软件功能简介
19.2.2重要技术
19.2.3项目结构
19.2.4代码的编写
19.2.5思考题
第20章GUI开发实训: 用户管理系统
20.1用户管理系统功能简介
20.2关键技术
20.2.1组织界面
20.2.2访问文件
20.2.3保持状态
20.2.4其他公共功能
20.3代码的编写
20.3.1编写util包中的类
20.3.2编写frame包中的类
20.3.3编写主函数所在的类
20.4思考题
第21章Java画图实训: 卡通时钟和拼图游戏
21.1卡通时钟
21.1.1软件功能简介
21.1.2重要技术
21.1.3代码的编写
21.1.4思考题
21.2拼图游戏
21.2.1软件功能简介
21.2.2重要技术
21.2.3代码的编写
21.2.4思考题
第22章网络编程实训: 在线打字游戏
22.1在线打字游戏功能简介
22.2关键技术
22.2.1组织界面
22.2.2掉下的字母
22.2.3分数加减的实现
22.2.4游戏结束的判断
22.3代码的编写
22.3.1服务器端
22.3.2客户端
第23章综合实训: 即时通信软件开发
23.1即时通信软件功能简介
23.1.1服务器界面
23.1.2用户的登录和注册
23.1.3消息收发界面
23.1.4在线人员名单的刷新
23.2项目关键技术
23.2.1传输消息的实现
23.2.2客户信息的实现
23.2.3用户文件保存在服务器端的实现
23.2.4读写用户文件的实现
23.2.5基本模块结构
23.3编写服务器端
23.3.1准备工作
23.3.2编写app.Server类
23.3.3编写app.ChatThread类
23.3.4编写main.Main类
23.4编写客户端
23.4.1准备工作
23.4.2编写app.LoginFrame类
23.4.3编写app.ChatFrame类
23.4.4编写app.RegisterFrame类
23.4.5编写main.Main类
23.5思考题
实战性。所有内容都用案例引入,通俗易懂。
流行性。书中讲解的都是JavaSE开发过程中***的方法、框架、模式等。紧扣学生的就业。
适合教学。书中每一个章节安排适当,将习题融于讲解的过程中,教师可以根据情况选用,也可以进行适当增减。