描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302472155丛书名: 面向“工程教育认证”计算机系列课程规划教材
本书提供了所有实例的源代码以及开发过程中用到的软件,供读者学习参考。
本书为学校教学量身定做,可供高校Java开发相关课程使用,也可作为没有Java开发基础的程序员的入门用书,更可作为Java培训班的培训教材,还可以帮助缺乏项目实战经验的程序员快速积累项目开发经验。
目录
第1章Java入门
本章术语
1.1认识Java
1.1.1认识编程语言
1.1.2Java的来历
1.1.3Java为什么流行
1.1.4Java的3个版本
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章实践指导1
本章术语
4.1关于变量和数据类型的实践
4.2流程控制和数组的综合实践
第5章面向对象编程(一)
本章术语
5.1认识类和对象
5.1.1为什么需要类
5.1.2如何定义类
5.1.3如何使用类实例化对象
5.1.4如何访问对象中的成员变量
5.1.5对象的引用性质
5.2认识成员函数
5.2.1为什么需要函数
5.2.2如何定义和使用成员函数
5.2.3函数参数的传递
5.2.4认识函数重载
5.3认识构造函数
5.3.1为什么需要构造函数
5.3.2如何定义和使用构造函数
本章知识体系
第6章面向对象编程(二)
本章术语
6.1静态变量和静态函数
6.1.1为什么需要静态变量
6.1.2静态变量的常见应用
6.1.3认识静态函数
6.1.4静态代码块
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.4.3成员的访问控制修饰符
6.5使用类中类
本章知识体系
第7章面向对象编程(三)
本章术语
7.1使用继承
7.1.1为什么需要继承
7.1.2如何实现继承
7.1.3继承的底层本质
7.2成员的覆盖
7.2.1什么是成员覆盖
7.2.2成员覆盖有何作用
7.3使用多态性
7.3.1什么是多态
7.3.2如何使用多态性
7.3.3父类和子类对象的类型转换
7.4抽象类和接口
7.4.1为什么需要抽象类
7.4.2为什么需要接口
7.5其他内容
7.5.1final关键字
7.5.2Object类
7.6一些工具的使用
7.6.1将字节码打包发布
7.6.2文档的使用
本章知识体系
第8章实践指导2
本章术语
8.1单例模式的设计
8.1.1需求简介
8.1.2不用单例模式的效果
8.1.3最原始的单例模式
8.1.4首次改进
8.1.5再次改进
8.1.6思考题
8.2利用继承和多态扩充程序功能
8.2.1需求简介
8.2.2实现方法
8.2.3出现的问题
8.2.4改进
8.2.5测试
第9章Java异常处理
本章术语
9.1认识异常
9.1.1生活中的异常
9.1.2软件中的异常
9.1.3为什么要处理异常
9.1.4异常的机理
9.1.5常见异常
9.2异常的就地捕获
9.2.1为什么要就地捕获
9.2.2如何就地捕获异常
9.2.3如何捕获多种异常
9.2.4用finally保证安全性
9.3异常的向前抛出
9.3.1为什么要向前抛出
9.3.2如何向前抛出
9.4自定义异常
9.4.1为什么需要自定义异常
9.4.2如何自定义异常
本章知识体系
第10章Java常用API(一)
本章术语
10.1数值运算
10.1.1用Math类实现数值运算
10.1.2实现随机数
10.2用String类进行字符串处理
10.3用StringBuffer类进行字符串处理
10.4基本数据类型的包装类
10.4.1认识包装类
10.4.2通过包装类进行数据类型转换
10.5常用系统类
10.5.1认识System类
10.5.2认识Runtime类
本章知识体系
第11章Java常用API(二)
本章术语
11.1认识Java集合
11.1.1为什么需要集合
11.1.2Java中的集合
11.2使用一维集合
11.2.1认识一维集合
11.2.2使用List集合
11.2.3使用Set集合
11.2.4使用Collections类对集合进行处理
11.2.5使用泛型简化集合操作
11.3Java中的二维集合
11.3.1使用Map集合
11.3.2使用Hashtable和Properties
11.4日期操作
11.4.1认识Date类
11.4.2认识Calendar类
11.4.3如何格式化日期
11.4.4更进一步: 如何格式化数值
本章知识体系
第12章Java多线程开发
本章术语
12.1认识多线程
12.1.1为什么需要多线程
12.1.2继承Thread类开发多线程
12.1.3实现Runnable接口开发多线程
12.1.4两种方法有何区别
12.2控制线程的运行
12.2.1为什么要控制线程的运行
12.2.2传统方法的安全问题
12.2.3如何控制线程的运行
12.3线程协作安全
12.3.1什么是线程协作
12.3.2一个有问题的案例
12.3.3如何解决
12.4线程同步安全
12.4.1什么是线程同步
12.4.2一个有问题的案例
12.4.3如何解决
12.4.4小心线程死锁
12.5认识定时器
12.5.1为什么需要定时器
12.5.2如何使用定时器
本章知识体系
第13章Java IO操作
本章术语
13.1认识IO操作
13.2用File类操作文件
13.2.1认识File类
13.2.2使用File类操作文件
13.2.3使用File类操作目录
13.3字节流的输入与输出
13.3.1认识字节流
13.3.2如何读写文件
13.3.3如何读写对象
13.4字符流的输入与输出
13.4.1认识字符流
13.4.2如何读写文件
13.4.3如何进行键盘输入
13.5和IO操作相关的其他类
13.5.1用RandomAccessFile类进行文件的读写
13.5.2使用Properties类
本章知识体系
第14章实践指导3
本章术语
14.1字符频率统计软件
14.1.1软件功能简介
14.1.2重要技术
14.1.3项目结构
14.1.4代码的编写
14.1.5思考题
14.2文本翻译软件
14.2.1软件功能简介
14.2.2重要技术
14.2.3项目结构
14.2.4代码的编写
14.2.5思考题
14.3用享元模式优化程序性能
14.3.1为什么需要享元模式
14.3.2重要技术
14.3.3代码的编写
14.3.4思考题
第15章用Swing开发GUI程序
本章术语
15.1认识GUI和Swing
15.1.1什么是GUI
15.1.2什么是Swing
15.2使用窗口
15.2.1用JFrame类开发窗口
15.2.2用JDialog类开发窗口
15.3使用控件
15.3.1什么是控件
15.3.2标签、按钮、文本框和密码框
15.3.3单选按钮、复选框和下拉列表框
15.3.4菜单
15.3.5使用JOptionPane
15.3.6其他控件
15.4颜色、字体和图片
15.4.1如何使用颜色
15.4.2如何使用字体
15.4.3如何使用图片
15.5几个有用的功能
15.5.1如何设置界面的显示风格
15.5.2如何获取屏幕大小
15.5.3如何用默认应用程序打开文件
15.5.4如何将程序显示为系统托盘
本章知识体系
第16章Java界面布局管理
本章术语
16.1认识布局管理
16.1.1为什么需要布局管理
16.1.2认识LayoutManager
16.2使用FlowLayout
16.2.1什么是FlowLayout
16.2.2如何使用FlowLayout
16.3使用GridLayout
16.3.1什么是GridLayout
16.3.2如何使用GridLayout
16.4使用BorderLayout
16.4.1什么是BorderLayout
16.4.2如何使用BorderLayout
16.5一个综合案例: 计算器
16.5.1案例需求
16.5.2关键技术
16.5.3代码的编写
16.6使用空布局
16.6.1什么是空布局
16.6.2如何使用空布局
本章知识体系
第17章Java事件处理
本章术语
17.1认识事件处理
17.1.1什么是事件
17.1.2事件处理代码的编写
17.1.3另外几种编程风格
17.2处理ActionEvent
17.2.1什么情况发出ActionEvent
17.2.2使用ActionEvent解决实际问题
17.3处理FocusEvent
17.3.1什么情况发出FocusEvent
17.3.2使用FocusEvent解决实际问题
17.4处理KeyEvent
17.4.1什么情况发出KeyEvent
17.4.2使用KeyEvent解决实际问题
17.5处理MouseEvent
17.5.1什么情况发出MouseEvent
17.5.2使用MouseEvent解决实际问题
17.6处理WindowEvent
17.6.1什么情况发出WindowEvent
17.6.2使用WindowEvent解决实际问题
17.7使用Adapter简化开发
本章知识体系
第18章实践指导4
本章术语
18.1用户管理系统功能简介
18.2关键技术
18.2.1如何组织界面
18.2.2如何访问文件
18.2.3如何保持状态
18.2.4还有哪些公共功能
18.3代码的编写
18.3.1编写util包中的类
18.3.2编写frame包中的类
18.3.3编写主函数所在的类
18.4思考题
第19章Java画图之基础知识
本章术语
19.1认识Java画图
19.1.1为什么要学习画图
19.1.2如何实现画图
19.2用Graphics画图
19.2.1什么是Graphics
19.2.2如何使用Graphics
19.2.3用Graphics实现画图
19.2.4一个综合案例
19.3画字符串
19.3.1为什么需要画字符串
19.3.2如何画字符串
19.3.3案例: 产生验证码
19.4画图片
19.4.1为什么需要画图片
19.4.2如何画图片
19.4.3如何进行图片的裁剪和缩放
19.4.4如何进行图片的旋转
本章知识体系
第20章Java画图之高级知识
本章术语
20.1结合键盘事件进行画图
20.1.1实例需求
20.1.2复习键盘事件
20.1.3代码的编写
20.1.4解决重画问题
20.2结合鼠标事件进行画图
20.2.1实例需求
20.2.2复习鼠标事件
20.2.3代码的编写
20.3动画制作
20.3.1实例需求
20.3.2关键技术
20.3.3代码的编写
20.3.4如何使用双缓冲保存图片到文件
本章知识体系
第21章实践指导5
本章术语
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章用TCP开发网络应用程序
本章术语
22.1认识网络编程
22.1.1什么是网络应用程序
22.1.2认识IP地址和端口
22.1.3客户端和服务器
22.2用客户端连接到服务器
22.2.1案例介绍
22.2.2如何实现客户端连接到服务器
22.2.3代码的编写
22.3利用TCP实现双向聊天系统
22.3.1案例介绍
22.3.2如何实现双向聊天
22.3.3代码的编写
22.4利用TCP实现多客户聊天系统
22.4.1案例介绍
22.4.2编写服务器程序
22.4.3编写客户端程序
本章知识体系
第23章用UDP开发网络应用程序
本章术语
23.1利用UDP实现双向聊天系统
23.1.1案例介绍
23.1.2服务器和客户端是如何交互的
23.1.3如何收发信息
23.1.4代码的编写
23.2利用UDP实现多客户聊天系统
23.2.1案例介绍
23.2.2编写服务器程序
23.2.3编写客户端程序
本章知识体系
第24章URL编程和Applet开发
本章术语
24.1认识URL编程
24.1.1什么是URL
24.1.2认识URL类
24.1.3如何获取网页的内容
24.2认识Applet
24.2.1什么是Applet
24.2.2如何开发Applet
24.2.3如何使用Applet
24.3深入理解Applet
24.3.1Applet是如何运行的
24.3.2Applet功能的限制
24.3.3如何向Applet内传参数
本章知识体系
第25章实践指导6
本章术语
25.1网络打字游戏功能简介
25.2关键技术
25.2.1如何组织界面
25.2.2客户端如何掉下字母
25.2.3客户端如何实现加减分数
25.2.4客户端如何判断输了
25.3代码的编写
25.3.1服务器端
25.3.2客户端
第26章Java加密和解密
本章术语
26.1认识加密
26.1.1为什么需要加密
26.1.2认识加密算法和密钥
26.2实现对称加密
26.2.1什么是对称加密
26.2.2用Java实现对称加密
26.3实现非对称加密
26.3.1什么是非对称加密
26.3.2用Java实现非对称加密
26.4实现单向加密
26.4.1什么是单向加密
26.4.2用Java实现MD5
本章知识体系
第27章Java数字签名
本章术语
27.1认识数字签名
27.1.1为什么需要数字签名
27.1.2数字签名的过程
27.2实现数字签名
27.2.1发送方生成签名
27.2.2接收方验证签名
27.3利用数字签名解决实际问题
27.3.1解决篡改问题
27.3.2解决抵赖问题
本章知识体系
第28章Java反射技术
本章术语
28.1为什么要学习反射
28.1.1引入配置文件
28.1.2配置文件遇到的问题
28.2认识Class类
28.2.1什么是Class类
28.2.2如何获取一个类对应的Class对象
28.2.3如何获取类中的成员信息
28.3通过反射机制访问对象
28.3.1如何实例化对象
28.3.2如何给成员变量赋值
28.3.3如何调用成员函数
28.4何时使用反射
本章知识体系
第29章用反射技术编写简单的框架
本章术语
29.1什么是框架
29.2动态异常处理框架
29.2.1框架功能简介
29.2.2重要技术
29.2.3框架代码的编写
29.2.4使用该框架
29.3动态对象组装框架
29.3.1框架功能简介
29.3.2引入工厂
29.3.3引入配置文件
29.3.4重要技术
29.3.5框架代码的编写
29.3.6使用该框架
第30章综合案例:
用TCP技术开发即时通信软件
本章术语
30.1即时通信软件功能简介
30.1.1服务器界面
30.1.2客户的登录和注册
30.1.3消息收发界面
30.1.4在线名单的刷新
30.2项目关键技术
30.2.1传输消息如何表示
30.2.2客户信息如何表示
30.2.3客户文件如何保存在服务器端
30.2.4如何读写客户文件
30.2.5基本模块结构
30.3编写服务器端
30.3.1准备工作
30.3.2编写app.Server类
30.3.3编写app.ChatThread类
30.3.4编写main.Main类
30.4编写客户端
30.4.1准备工作
30.4.2编写app.LoginFrame类
30.4.3编写app.ChatFrame类
30.4.4编写app.RegisterFrame类
30.4.5编写main.Main类
30.5思考题
前言
本书针对Java技术标准编程进行了详细的讲解,以简单、通俗易懂的案例逐步引领读者从基础到各个知识点进行学习。本书涵盖了Java入门、程序设计基础、面向对象编程、API、GUI开发、图形开发、网络编程、密码编程、反射和综合案例。在本书的每个章节中穿插了上机习题,用于对该章内容进行阶段性总结演练。
本书作者长期从事教学工作,积累了丰富的经验,其“实战教学法”取得了很好的效果。
本书的特点如下。
(1) 实战性: 所有内容都用案例引入,通俗易懂。
(2) 流行性: 书中所讲解的都是Java开发过程中流行的方法、框架、模式等,紧扣学生的就业。
(3) 适合教学: 书中的每一个章节安排适当,将习题融于讲解的过程中,教师可以根据情况选用,也可以进行适当增减。
一、
本书的知识体系
学习Java应用开发最好有计算机操作的基本技能以及基本的逻辑思维。本书的知识体系结构遵循循序渐进的原则,逐步引领读者从基础到各个知识点的学习,具体如下所示。
第1部分:
入门
第1章Java入门
第2部分:
程序设计基础
第2章程序设计基础之变量及其运算
第3章程序设计基础之流程控制和数组
第4章实践指导1
第4部分: API
第9章Java异常处理
第10章Java常用API(一)
第11章Java常用API(二)
第12章Java多线程开发
第13章Java IO操作
第14章实践指导3
第3部分:
面向对象编程
第5章面向对象编程(一)
第6章面向对象编程(二)
第7章面向对象编程(三)
第8章实践指导2
第5部分: GUI开发
第15章用Swing开发GUI程序
第16章Java界面布局管理
第17章Java事件处理
第18章实践指导4
续表
第6部分: Java图形开发
第19章Java画图之基础知识
第20章Java画图之高级知识
第21章实践指导5
第8部分: Java密码编程
第26章Java加密和解密
第27章Java数字签名
第7部分: Java网络编程
第22章用TCP开发网络应用程序
第23章用UDP开发网络应用程序
第24章URL编程和Applet开发
第25章实践指导6
第9部分: Java反射
第28章Java反射技术
第29章用反射技术编写简单的框架
第10部分:
综合案例
第30章综合案例:
用TCP技术开发即时通信软件
二、
本书内容介绍
全书共分为10个部分。
第1部分为入门部分,包括1章。
第1章为Java入门,介绍Java的发展历史和运行机制,以及进行Java程序开发需要的准备工作。
第2部分为程序设计基础部分,包括3章。
第2章为程序设计基础之变量及其运算,首先介绍变量的原理以及变量的数据类型,然后详细介绍各种变量数据类型及其转换,之后讲解Java中的各种运算,最后介绍运算符的优先级。
第3章为程序设计基础之流程控制和数组,首先介绍3种结构的用法,并讲解break和continue语句,然后讲解数组的作用、定义、性质和用法,以及二维数组的使用。
第4章为实践指导1,利用几个案例对程序设计基础进行复习。
第3部分为面向对象编程部分,包括4章。
第5章为面向对象编程(一),主要介绍面向对象的基本原理和基本概念,包括类、对象、成员变量、成员函数、构造函数以及函数的重载。
第6章为面向对象编程(二),针对面向对象的应用,详细讲解一些比较高级的概念。首先讲解静态变量、静态函数、静态代码块,然后讲解封装、包和访问控制修饰符,最后简单介绍类中类的使用。
第7章为面向对象编程(三),首先讲解继承和覆盖,然后讲解多态性、抽象类和接口的应用,最后讲解几个其他问题,包括final关键字、Object类、jar命令以及Java文档的使用。
第8章为实践指导2,利用几个案例对面向对象内容进行复习。
第4部分为API部分,包括6章。
第9章为Java异常处理,讲解异常处理的原理以及需要注意的问题。
第10章为Java常用API(一),讲解数值运算、字符串处理、数据类型转换和常用系统类。
第11章为Java常用API(二),讲解Java编程中重要的工具类,重点讲解集合和日期操作。
第12章为Java多线程开发,对多线程的开发、线程的控制以及线程的安全性进行讲解。
第13章为Java IO操作,对文件的操作、字节流的读写和字符流的读写进行讲解,并对RandomAccessFile类和Properties类进行介绍。
第14章为实践指导3,利用几个案例对API进行复习。
第5部分为GUI开发部分,包括4章。
第15章为用Swing开发GUI程序,首先讲解javax.swing中的一些API,主要涉及窗口开发、控件开发、颜色、字体和图片开发,然后讲解一些常见的其他功能。
第16章为Java界面布局管理,首先讲解几种最常见的布局,即FlowLayout、GridLayout、BorderLayout、空布局,以及其他一些比较复杂的布局方式,然后用一个计算器程序对其进行了总结。
第17章为Java事件处理,首先讲解事件的基本原理、开发流程,然后讲解几种常见事件的处理,最后讲解用Adapter简化事件的开发。
第18章为实践指导4,利用一个用户管理系统案例对Java事件处理的内容进行复习。
第6部分为Java图形开发部分,包括3章。
第19章为Java画图之基础知识,首先讲解画图的原理以及画图的方法,然后讲解如何画字符串,最后讲解如何画图片,以及图片的缩放、裁剪和旋转。
第20章为Java画图之高级知识,首先重点围绕用键盘和鼠标操作画图进行讲解,然后讲解动画的原理和实现,以及双缓冲和图片的保存问题。
第21章为实践指导5,利用两个小软件的开发对Java画图的内容进行复习。
第7部分为Java网络编程部分,包括4章。
第22章为用TCP开发网络应用程序,利用TCP编程实现一个简单的聊天室。
第23章为用UDP开发网络应用程序,介绍基于UDP的客户端和服务器端之间的通信。
第24章为URL编程和Applet开发,针对网络编程中的另外两个比较常见的内容——URL编程和Applet开发进行讲解。
第25章为实践指导6,利用一个网络打字游戏对网络编程内容进行复习。
第8部分为Java密码编程部分,包括2章。
第26章为Java加密和解密,以Java语言为例实现了一些常见的加密和解密算法。
第27章为Java数字签名,讲解了数字签名的原理,以Java语言为例实现了数字签名算法。
第9部分为Java反射部分,包括2章。
第28章为Java反射技术,对反射技术进行了讲解。
第29章为用反射技术编写简单的框架,通过两个小框架进行讲解。
第10部分为综合案例部分,包括1章。
第30章为综合案例:
用TCP技术开发即时通信软件,用一个即时通信软件案例对本书的大部分内容进行复习。
本书为学校教学量身定做,可供高校Java应用开发相关课程使用,也可作为没有Java应用开发基础的程序员入门用书,更可作为Java技术培训班的培训教材,还可以帮助缺乏项目实战经验的程序员快速积累项目开发经验。
本书提供了全书所有实例的源代码,供读者学习参考,所有程序均经过了作者精心的调试。
由于时间仓促和作者的水平有限,书中的不妥之处在所难免,敬请读者批评指正。
有关本书的意见反馈和咨询,读者可在清华大学出版社网站的相关版块中与作者进行交流。
郭克华
2017年10月
前面所列出的程序一般都是顺序结构,顺序结构就是程序从前到后一行一行执行,直到程序结束。但是,计算机软件是个智能化产品,需要根据一定的情况进行判断。例如在聊天软件中,当客户收到聊天信息时必须进行提示,这就需要软件进行判断,因此要用判断结构来实现这个功能。在Java中判断结构包括if和switch两种。3.1.2if结构if是最常见的判断结构。1. 最简单的if结构if结构最简单的格式如下:
if (条件表达式){
代码块A;
}
以上结构表示如果条件成立执行代码块A,否则不执行。例: 输入一个客户的年龄,如果在0~100,打印年龄,否则不打印。代码如下:
IfTest1.java
Public class IfTest1 {
public static void main(String[] args) {
String strAge=
javax.swing.JOptionPane.showInputDialog(“输入客户年龄”);
int age=Integer.parseInt(strAge);
if((age>=0)&&(age<=100)){
System.out.println(“年龄为:” age);
评论
还没有评论。