描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302479291
本书适合于从事软件开发的管理人员、系统分析师、架构师和程序员阅读,也可以作为大学计算机相关专业学习Java课程的项目实训教材。
第1章何为面向对象
1.1面向对象的基础知识
1.2面向对象的核心概念
1.2.1对象
1.2.2类
1.2.3继承
1.2.4接口
1.2.5封装与透明
1.2.6多态
1.2.7组合
1.2.8绑定
1.2.9消息
1.3类间关系
1.3.1关联
1.3.2聚合
1.3.3继承
1.3.4实现
1.3.5依赖
1.3.6包
1.4本章小结
第2章Java是什么
2.1Java程序设计语言
2.1.1什么是程序设计语言
2.1.2程序设计语言发展历史
2.2Java发展历史
2.3Java跨平台原理
2.3.1高级程序编译原理
2.3.2Java跨平台原理
2.3.3Java的特点
2.4Java开发环境搭建
2.4.1JDK安装
2.4.2MyEclipse介绍及安装
2.5本章小结
第3章JDK API介绍
3.1关于JDK的讨论
3.2JDK基础类型介绍
3.3数据集合及日期处理
3.4输入输出流
3.5ZIP压缩工具
3.6JAR归档工具
3.7日志工具
3.8网络编程
3.8.1地址
3.8.2套接字
3.8.3接口
3.8.4高级API
3.9用户界面(Java.awt)
3.9.1Java.awt介绍
3.9.2其他包介绍
3.10Java.swing
3.11数据库操作
3.11.1Java.sql
3.11.2Javax.sql
3.12本章小结
第4章规范Java编程
4.1关于编程规范的讨论
4.2帮助文件范例
4.2.1版本信息
4.2.2字段概要
4.2.3方法及构造方法摘要
4.2.4字段详细信息
4.2.5方法或构造方法详细
信息
4.3Java编程规范
4.3.1排版规范
4.3.2注释规范
4.3.3命名规范
4.3.4编码规范
4.4JavaDoc文档
4.4.1JavaDoc介绍
4.4.2JavaDoc标记
4.4.3JavaDoc命令的用法
4.5本章小结
第5章本书唯一案例说明
5.1案例假设
5.2用户资料整理
5.3实现功能
5.3.1学校信息维护
5.3.2学院信息查询
5.3.3系信息查询
5.3.4系分专业学生名录
5.3.5系分专业综合成绩排名
5.3.6关于学生信息维护
5.4“学籍管理软件”在本书中的应用
5.5不可思议的代码
第6章Java源程序组成
6.1Java源程序包含的基本内容
6.1.1包
6.1.2类定义
6.1.3方法定义
6.1.4数据成员
6.2使用JDK编译和运行程序
6.2.1编译Java源文件
6.2.2运行Java程序
6.3代码展示——类初步规划
6.3.1案例分析
6.3.2部分代码展示
6.4代码解析
6.4.1代码分析
6.4.2进程检查
6.5本章小结
第7章探讨类数据成员——数据
类型
7.1基本数据类型
7.1.1基本概念
7.1.2详细说明
7.1.3简单数据类型的转换
7.1.4Java中的高精度数
7.2引用类型
7.3变量和常量
7.3.1变量
7.3.2常量
7.3.3变量的作用范围
7.3.4静态变量的生命周期
7.3.5对象的默认引用
——this关键字
7.4参数传递
7.5“学籍管理软件”数据类型设计
7.5.1JDK Java包引用分析
7.5.2“学籍管理软件”数据类型
与变量设计
7.6代码实现
7.6.1“学籍管理软件”中全局
变量校验实现
7.6.2部分代码摘录
7.7进程检查
7.8本章小结
第8章类方法成员——操作符
8.1运算符
8.1.1算术运算符
8.1.2关系运算符
8.1.3逻辑运算符
8.1.4位运算符
8.1.5其他运算符
8.1.6运算符的优先级
8.2Java修饰符
8.3“学籍管理软件”运算符应用
分析
8.3.1关于业务规则讨论
8.3.2部分实现代码摘录
8.4进程检查表
8.5本章小结
第9章探讨类方法成员——流程
控制
9.1流程控制
9.2条件转换语句
9.2.1if 语句
9.2.2ifelse
9.2.3ifelse if语句
9.2.4if语句的嵌套
9.2.5switch语句
9.3循环语句
9.3.1for循环语句
9.3.2while循环语句
9.3.3do while循环语句
9.3.4循环语句的嵌套
9.3.5转移语句
9.4“学籍管理软件”案例分析运行流程
控制
9.4.1“学籍管理软件”运行
流程
9.4.2类优化设计
9.5“学籍管理软件”业务数据校验
代码展示
9.6进程检查
9.7本章小结
第10章异常处理及应用
10.1Java异常处理机制
10.2用户异常定义
10.3Java异常分类
10.3.1可检测异常
10.3.2非检测异常
10.3.3自定义异常
10.4异常处理
10.4.1Java异常处理方法
10.4.2异常声明及抛出异常
10.5“学籍管理软件”异常设计
10.5.1关于异常的探讨
10.5.2“学籍管理软件”流程优化
——异常思考
10.6“学籍管理软件”异常设计实现类
代码分析
10.6.1“学籍管理软件”
类优化
10.6.2异常设计代码实现
10.7进程检查表
10.8本章小结
第11章类间关系之继承应用
11.1继承设计的基本流程
11.2方法重载
11.3方法覆盖
11.4super关键字
11.5“学籍管理软件”优化设计
11.5.1关于继承的讨论
11.5.2类间关系优化设计
——继承的思想
11.5.3程序运行流程——重载
的思想
11.5.4异常处理——继承
的思想
11.6部分程序代码——继承及重载
的思想
11.6.1父类——学校信息
维护
11.6.2子类——学院信息
维护
11.6.3父类与子类的整合——
学生信息维护页面
11.6.4重载方法——统计分析
类框架代码
11.7继承及重载优化进程检查
11.8本章小结
第12章类间关系之抽象类与
接口应用
12.1抽象类
12.2接口
12.2.1接口的概念
12.2.2接口的实现
12.3接口与抽象类
12.4多态
12.5“学籍管理软件”优化设计
12.6“学籍管理软件”接口及接口
实现代码
12.6.1业务查询接口
(bussinessSearch)
12.6.2数据删除接口
(bussinessDelete)
12.6.3统计分析类
(bussinessStatistics)
12.6.4信息查询类(bussiness
LogicListSearch)
12.7进程检查——类抽象与接口
应用
12.8本章小结
第13章Java数据结构之数组
13.1一维数组创建
13.2一维数组元素访问
13.3二维数组创建
13.4二维数组元素访问
13.5本章小结
第14章Java数据结构之常用集合
14.1Java集合概述
14.2Collection接口和Iterator接口
14.2.1AbstractCollection
抽象类
14.2.2Iterator 接口
14.2.3Collection接口支持的
其他操作
14.3Set
14.3.1HashSet类和
TreeSet类
14.3.2AbstractSet类
14.4List
14.4.1ListIterator接口
14.4.2ArrayList 类和
LinkedList类
14.5Map
14.5.1Map接口概述
14.5.2Map.Entry接口
14.5.3SortedMap接口
14.5.4AbstractMap抽象类
——Abstrac
14.5.5HashMap类和
TreeMap类
14.5.6LinkedHashMap类
14.5.7Map例程
14.6本章小结
第15章数据结构在“学籍管理软件”
中的应用
15.1关于Java集合的讨论
15.2“学籍管理软件”数据
结构设计
15.2.1数据分析
15.2.2数据结构设计
15.3类优化
15.4查询算法设计
15.5“学籍管理软件”数据结构代码
实现
15.5.1学生名单排序实体
15.5.2考试成绩排序
15.6进程检查——数据结构完善
第16章数据输入输出——Java IO流
16.1Java数据流概述和Java.IO
16.1.1流的概念
16.1.2Java.IO包
16.2InputStream与
OutputStream类
16.2.1InputStream类
16.2.2OutputStream类
16.3File类
16.3.1File类的构造函数
16.3.2File类举例
16.4文件输入与输出
16.4.1FileInputStream类和
FileOutputStream类
16.4.2FileInputStream和
FileOutputStream在“学籍
管理软件”中的应用
16.4.3随机文件的读取
RandomAccessFile类
16.5标准输入和输出
16.5.1System.in对象
16.5.2System.out对象
16.5.3数据类型的转换
16.6本章小结
第17章数据存储与读取在“学籍
管理软件”中的应用
17.1数据存储及文件规划
17.1.1数据存储说明
17.1.2数据表间关系
17.1.3表结构设计
17.2类优化设计
17.3程序流程优化
17.4数据保存及查询
17.4.1数据保存
17.4.2数据读取
17.5Java IO异常处理
17.6数据存储与读取代码实现
17.6.1文件管理
17.6.2数据保存
17.6.3多记录查询
17.7数据读取与存储实现进程检查
17.8本章小结
第18章Java图形界面在“学籍管理
软件”中的应用
18.1用AWT生成图形化用户界面
18.2组件
18.3容器
18.4事件处理
18.4.1事件类
18.4.2事件监听器
18.4.3AWT事件相应的监听器
接口
18.4.4事件适配器
18.5AWT组件库
18.6“学籍管理软件”页面设计
18.6.1页面构成
18.6.2主界面程序代码
18.6.3维护页面button影响
矩阵图
18.7案例进程
18.8本章小结
第19章Java Swing在“学籍管理
软件”中的应用
19.1Java Swing介绍
19.2Javax主要控件介绍
19.2.1AbstractButton
19.2.2ButtonGroup
19.2.3JApplet
19.2.4JButton
19.2.5JCheckBox和
JRadioButton
19.2.6JComboBox
19.2.7JScrollPane
19.2.8JTable
19.2.9JTextField
19.2.10JTextArea
19.2.11JTree
19.3基于Java Swing优化“学籍
管理软件”设计
19.3.1基于MVC设计模式设计
“学籍管理软件”
19.3.2类图优化设计——
基于MVC
19.3.3“学籍管理软件”页面
设计实现代码摘录
19.4“学籍管理软件”案例
进程检查
19.5本章小结
第20章多线程简述
20.1Java多线程
20.2Java多线程的5种基本状态
20.3Java多线程的创建及启动
20.3.1继承Thread方法创建线
程并启动线程
20.3.2使用Runnable接口来
创建并启动线程
20.3.3使用 ExecutorService、
Callable和Future创建
线程
20.4Java多线程的优先级和调度
20.5多线程的线程控制
20.6线程的同步
20.6.1同步代码块
20.6.2同步方法
20.6.3使用特殊域变量(volatile)
实现线程同步
20.6.4使用重入锁实现
线程同步
20.6.5使用局部变量实
现线程同步
20.7线程间的通信
20.7.1线程间的通信
20.7.2线程通信的其他几个
常用方法
20.8本章小结
第21章Java学习历程回顾
参考文献
计算机软件工程课程是一门应用型很强的专业学科,能够很好地应用起来才是软件开发语言的重要学习目标。特别是计算机语言类课程,本来就没有什么深奥的理论基础,我们按照既定的语法规则进行编程即可。从理论的角度来说,我们似乎没有什么可发挥的了。
编者应邀承担高校计算机相关专业的Java语言授课工作,在教学中发现学生们最大的疑问点是,Java语言到底是用来干什么的?Java语言在实践项目中是如何应用的?这些知识点的应用场景是什么?Java知识点之间的关系是怎样的?算法是什么东西?为什么要有这些知识点?等等。如果这些疑问无法解决,学生们学习Java语言的兴趣自然而然地就会逐渐地减少。
“边学边用”是学习Java语言最好的办法。目前Java语言教科书非常多,但是不少作者将Java语言中的每个知识点零散地推给学生们,教材中的例子自然只是为知识点服务的,导致整本书中的例子没有连贯性,甚至同一章节中的例子都是分散的。容易导致学生只知其一不知其二,没有形成系统的知识结构,更不会把这些实践案例有效地结合起来。
本书是编者编写的“软件是这样‘炼’成的”系列书的四本之一,其最大的特点是将学院派和应用派的两大著书思想有效地结合起来,既没有空洞的理论,也没有泛泛而谈的应用,而是将理论与实践融合起来,给读者以新的感受和收获。在文字组织上,采取场景再现、情景对话等方式,将Java语言中的每个关键知识点应用到“学籍管理软件”这个案例中,这种“边学边用”的学习过程,使读者能够系统和完整地了解Java的知识结构并应用之。
历经3年之久,编者总算艰难完成了“软件是这样‘炼’成的”系列书的编写,尤其前3本书的出版得到了广大读者的殷切关注和大力支持,并且提出了许多宝贵意见,在此真心地表示感谢。希望各位继续提出宝贵的意见。
在本书的编写过程中,编者得到了家人和朋友的大力支持。在此,我要感谢我的妻子商莉和我女儿王贝思在本书的编写过程中给予的最大帮助和支持。
由于作者水平有限,书中难免有疏漏和不足之处,恳求各位专家和广大读者提出宝贵的意见。如果读者在阅读过程中遇到问题,可以直接和笔者联系。
编者2018年3月
3.1关于JDK的讨论
晨落: 今天我们讨论Java JDK。我是1998年第一次接触Java开发工具(Java Development Kit,JDK)的,Java的一些特点吸引了我,因为Java的一大特点是平台无关性,也就是说一处编译处处运行。对于程序员来说,能够深深地体会到这个福音给我们带来的是什么,可以做到编程不考虑操作系统,太令人振奋了。Java的另外一个特点是面向对象的开发方法,当时面向对象的开发方式不是主流开发方法,所以我出于好奇开始学习了Java。
洪杨俊: 然后呢?
晨落: 当时,很少有Java方面的书籍,我好不容易找来JDK和Java的一些帮助文件以及JDK自带的Java源程序代码。我仔细阅读Java帮助文件并结合JDK源程序代码,发现有许多奥妙在里面。通过阅读帮助文件和源代码能够知道Java JDK背后的故事,在使用任何一个Java函数的时候,Java帮助我们完成了一系列的工作,让我们的编程工作量大大减少。
洪杨俊: 你是如何学习Java的?
晨落: JDK在我们安装的JDK路径下,例如,“我的电脑”是安装在“C: \Program Files\Java\jdk1.6.0_10 ”下,在该路径下有个文件SRC.ZIP,解包后将会发现文件夹的文件夹结构内容与JDK包完全一致。
洪杨俊: 这些代码和JDK类库中的实现是一致的吗?
晨落: 是完全一致,类库中的.class文件其实就是用这些源代码文件编译生成的。
洪杨俊: 在Java学习中用到的数据类型、函数、方法等都能够找到其对应Java源代码吗?
晨落: 是的,完全可以找到,例如,我们在Java中定义的数据类型Integer,就在“\src\Java\lang\Integer.Java”这个类文件中。打开类文件可以读到关于Integer的相关Java代码实现,如图31所示。
图31Integer类的Java代码
通过图31可以看出,关于Integer的Java类是如何实现的,例如,在不少教材中描述Integer数据的取值范围是-2147483648到2147483648,在源代码中可以找到相应的方法,以实现这个数据范围的校验。图32中的代码就是Integer最大值和最小值的判断处理代码片段。
图32Integer类型最大值和最小值的代码实现
洪杨俊: 这么多类库和函数,难道您全部阅读了吗?
晨落: 哈哈,不可能的事,我告诉你的意思是,我们需要了解Java的实现机制,JDK中所包含的主要类库有哪些,至少在学习Java的时候能够明确JDK类库,必要时分析源代码,理解Java中的相关类库的使用方法。
洪杨俊: 如何划分?你可以帮我列出重要的部分吗?
晨落: 我将Java基础阶段需要掌握的Java类库做了个总结,并且以树形结构的形式表现出来,如图33所示。只要我们能够按照这个树形图归纳出这些包中包含的类,知道它们能够完成哪些功能,并在开发过程中快速地查询这些函数的使用就足够了。
评论
还没有评论。