《高等学校教材·计算机科学与技术:Java面向对象程序设计(第2版)》的内容大体可分为三个部分。第1章~第7章为第一部分,着重介绍Java面向对象的基本知识点,主要有Java的基本环境、Java语言基础、Java工程规范、面向对象基本概念、基本特征、概念深化、异常处理等,读者通过这部分的学习可以用Java语言建立起面向对象思维的能力,其中第4章~第6章是本部分的重点;第8章~第16章为第二部分,着重介绍Java语言的应用,主要有Java常用类库与工具、线程、集合类框架、AWT与Swing图形用户界面、输入/输出、网络通信、JDBC,读者通过这部分的学习可以了解Java工程应用的基础知识,其中第8章~第10章以及第14章、第16章是本部分的重点;第17章~第20章为第三部分,着重介绍Java软件体系结构设计,主要有UML、设计模式、软件框架和分布式对象技术,读者通过这部分可以掌握和了解进行软件结构设计时需要用到的模型表达方式、设计思想、框架编程思维和分布式软件设计的主要方法。
这三部分的内容,囊括了Java语言和Java软件结构设计的主要知识点,丰富了Java面向对象程序设计的内涵,可由浅入深、循序渐进地带领读者进入Java面向对象程序设计的艺术殿堂。
突出软件设计各要点间的关联性。以UML表达设计,以设计模式蕴含设计思想,以软件框架表达软件设计的基础,以分布式对象技术体现软件系统的设计架构,这四个方面是进行软件设计不可分割的有机组成要素。 软件设计与代码实现紧密结合。针对当前很多软件教材普遍存在的软件设计缺乏实现代码支撑而编程语言缺乏设计指导这一问题,本书加强了它们之间的联系并使二者相辅相成。用图形表达抽象的概念。图形具有信息容量大且清晰直观的特点,用图形表达抽象的软件概念有助于引起读者的兴趣,提升他们理解的准确度和记忆的持久性。 对Java与C++两种语言进行对比。虽然Java与C++都是面向对象的语言,但许多类似的概念在语言的实现中却迥然不同。对这些不同进行对比有助于读者深化对这两种语言的理解,避免混淆。注重细节。本书特别强调语言和设计的细节,这也是由计算机软件实践性很强这个特点决定的。
具备什么样的知识与技能才算是具有面向对象程序设计的能力呢?显然只掌握面向对象的语言是远远不够的,至少还需要掌握UML、设计模式、软件框架、分布式对象技术才行。如果将面向对象程序设计看成一个有机整体,那么语言是细胞,UML是血液,设计模式是神经,软件框架是骨架,分布式对象技术是器官和组织。也就是说,知识的理解应该彼此渗透。正是基于这样的理念,本书在第1版的基础上扩充出了软件设计理论的相关内容,同时也对Java语言学习内容进行了一些必要的调整,从而形成了如下三个特点:
(1) 软件设计知识的彼此贯通: Java编程语言、UML、设计模式、软件框架、分布式对象技术5个方面通常会以5本教材的形式出现,这样很容易就割裂它们的内在联系。没有面向对象编程语言作为基础,面向对象设计就没有根基; 而只有编程语言没有设计,则程序将会失去风景和艺术感染力。设计的知识基础是UML,设计模式那深邃的思想再也找不到比UML更好的表达形式了,而将设计模式用得炉火纯青之处正是框架和中间件,离了框架和中间件的支持,在业界应用广泛的分布式设计与编程则寸步难行。因此将它们集成在一本书中讲述,将会给读者关于软件设计的一个全景认识,因而本书适合作为大专院校的Java语言、UML、软件体系结构设计等课程的教学用书。
(2) 软件设计知识讲解的深入浅出: 集“全景认识”于有限篇幅,对设计知识就不得不进行浓缩,因而不要把本书当成手册来看待,如果进行深入的学习还需参考相关书籍,但这并不意味着本书在设计内涵的完整性和深刻性方面打了折扣。秉承第1版的一贯风格,本书第2版仍然采用图的方式来展现设计的深刻内涵。
(3) Java语言面向对象设计学习的深入性: 语言具有规则学习和规则运用两个层次,规则学习主要表现在本书的第1章~第16章,而规则运用则表现在第17章~第20章。现在多数Java程序设计教材都停留在规则学习阶段,对运用鲜有提及。因而选用本书作为有限学时的Java语言教学时,可留给教师和学生进一步的应用发展空间,而选用本书讲授软件设计时,前16章的Java语言部分以及后4章的设计案例又可作为坚实的支撑材料——将设计与实际编程紧密结合是本书编撰始终坚持的一个重要原则。同时照顾到一些学校先学C++后学Java的教学安排,书中在许多关键之处将Java和C++进行了对比,以防止两种语言差异性引起的混淆。
本书第2版得到多人的帮助才得以完成。长安大学安毅生老师负责了本书第8章~第14章的编撰工作,张少博老师指出了本书第1版中存在的一些不当和错误之处。另外,赵祥模老师、葛玮老师以及清华大学出版社的编辑给予了一如既往的支持,提出了许多宝贵意见,在此一并表示感谢。
编者
2012年3月于西安
第1章 初次接触Java
1.1 Java语言——网络时代的编程语言
1.1.1 网络时代编程问题
1.1.2 问题的解决方法
1.2 Java语言的特点
1.3 Java程序的编译环境和执行环境
1.4 第一个Java程序——Hello World
1.5 Java程序的分类
1.6 Java平台
小结
习题
第2章 Java语言基础
2.1 数据类型
2.1.1 标识符和保留字
2.1.2 数据类型概括
2.1.3 基本数据类型简介
2.1.4 数据类型转换
2.1.5 基本数据类型及其对应的包装类
2.2 表达式
2.2.1 算术表达式
2.2.2 关系表达式
2.2.3 逻辑表达式
2.2.4 赋值表达式
2.2.5 条件表达式
2.2.6 运算符优先级
2.3 控制语句
2.3.1 分支语句
2.3.2 循环语句
2.3.3 跳转语句
2.4 数组
2.4.1 一维数组
2.4.2 二维数组
小结
习题
第3章 Java程序工程规范
3.1 为什么要有规范
3.2 Java程序编程规范
3.3 帮助文档的自动生成
小结
习题
第4章 面向对象(上)
4.1 抽象的含义
4.2 类与对象
4.3 类的域(属性)与方法(操作)
4.4 对象
4.4.1 对象的创建
4.4.2 对象作为参数的特点
4.4.3 对象数组
4.4.4 数组对象特点及常用方法
4.5 构造方法
4.5.1 构造方法的概念
4.5.2 构造方法的特征
4.5.3 构造方法赋值的注意事项
4.5.4 finalize方法与垃圾回收
4.6 类成员属性和方法的非访问修饰符
4.6.1 static
4.6.2 abstract
4.6.3 fina1
4.6.4 native修饰的本地方法
4.7 包
小结
习题
……
第5章 面向对象(中)
第6章 面向对象(下)
第7章 异常
第8章 Java常用类库与工具
第9章 线程
第10章 集合类
第11章 Applet程序
第12章 AWT图形用户界面
第13章 Swing图形用户界面
第14章 I/O输入/输出
第15章 Hava网络通信
第16章 JDBC
第17章 UML简介
第18章 设计模式
第19章 软件框架
第20章 软件体系结构与分布式对象技术