本书以Java SE 6和NetBeans IDE为教学和实验平台,重点介绍Java程序设计的基础理论及其应用,内容包括Java应用程序的开发过程、使用NetBeans IDE开发Java应用程序、基本类型、变量和表达式、程序流程图与结构化程序设计、类与对象基础、继承性、封装性和多态性、数组、Java类库及其应用、抽象类、引用类型转换和接口、异常处理、数据输出输入、多线程和Java小程序等。
本书注重基础理论、核心技术与典型应用的结合,力求概念简洁、前后章节呼应、代码规范、深入浅出、突出应用、配套资源齐备。通过学习本书,帮助读者了解结构化程序设计和面向对象程序设计的基础理论,掌握Java程序设计核心技术及其典型应用,为今后学习数据结构与算法以及开发Java软件和网络平台奠定必备基础。
本书面向教学(应用)型大学的计算机科学与技术、信息管理与信息系统、电子商务、软件工程等相关专业,可作为“面向对象程序设计”和“Java程序设计”等课程的教材,尤其适用于各类Java初学者的教学或自学。
程序设计方法主要分为结构化程序设计(Structured Programming,SP)和面向对象程序设计(ObjectOriented Programming,OOP)两种。虽然两种方法都是用来解决程序设计问题的,但基本思想和关键知识点各有侧重。
SP的基本思想是,将整个程序分解为若干模块(子程序),每个模块实现特定的功能。模块内部的程序执行过程可以用顺序、选择和循环等基本控制结构的嵌套式组合表示和实现。模块之间的相互关系也可以用上述组合表示和实现,还可以是包含与被包含(调用与被调用)的关系。SP包括自顶向下、逐步细化、模块化、子程序(过程、函数)、顺序结构、选择结构、循环结构等关键知识点。
OOP的基本思想是,程序的基本单元是对象。在程序中可以用对象描述现实世界中的事物,对象是数据和数据操作的统一整体。每个对象都能够接收消息(包含数据)、处理数据和向其他对象发送消息(包含数据)。OOP包括类、对象、消息传递、继承性、封装性以及多态性等关键知识点。
Java语言融合了结构化程序设计和面向对象程序设计两种方法。
本书从结构化程序设计和面向对象程序设计方法及其应用的角度出发,集中并详细讲解Java程序设计的基础理论及相应的核心技术。
全书共分13章,内容包括Java应用程序的开发过程、使用NetBeans IDE开发Java应用程序、基本类型、变量和表达式、程序流程图与结构化程序设计、类与对象基础、继承性、封装性和多态性、数组、Java类库及其应用、抽象类、引用类型转换和接口、异常处理、数据输出输入、多线程和Java小程序等。
在内容的选取和组织上,本书努力做到以下几点:
(1) 章节之间前后呼应。前面章节的知识点及例题为后面章节的学习进行铺垫,后面章节的例题既针对本章的知识点,又结合和复习前面章节的相关知识点。
如第8章中的“删除字符串中的所有空格”、“将字符串中的全角数字转换为半角数字”和“根据身份证号码计算年龄”等例题,不仅列举了本章有关StringBuffer、Date和SimpleDateFormat等类及其方法在实际问题中的应用,而且结合和复习了顺序、选择和循环等基本控制结构在程序执行过程中的嵌套式组合运用。更重要的是,这些例题强化了顺序结构、选择结构、循环结构、程序流程图和Java API等关键知识点及其应用的重要性。
又如,在第7章中列举了一维整数数组的冒泡排序,阐述了冒泡排序的工作原理。在第8章中分别使用引用类型转换和接口技术,以“对数组中的不同图形对象按照面积大小进行排序”、“按照成绩对一组学生排序”和“按照面积对一组矩形排序”为实际问题,复习并扩展了冒泡排序的应用领域。在第13章中介绍Java小程序时,还以动画形式演示了冒泡法将一维无序数组转换为有序数组的工作过程,这样既举例讲解了如何应用Java小程序制作动画,又再次帮助学生加深对冒泡排序工作原理的理解。
再如,在第7章中分别使用二维数组和一维数组求解八皇后问题。在第13章中又应用Java小程序及其输出以动画形式演示了皇后问题的求解过程。
这一系列例题既体现了章节之间的前后呼应,又可以循序渐进地将相关知识点有机地结合起来。这样,既达到强化和巩固关键知识点的效果,又有助于引导和培养学生综合应用多种技术解决实际问题的能力。
(2) 注重理论、技术与应用的有机结合,尤其突出技术及其应用。
如第12章中的“模拟库存管理流程”例题,既说明了如何使用同步技术解决线程干扰所引发的共享数据不一致,又列举了如何使用wait方法和notify方法协调线程之间的执行进度。在紧接着的“改进库存管理流程”例题中,针对客户需求响应、库存成本和采购成本等因素,在改进前例程序的基础上模拟了设置安全库存、限制最大库存和动态调整单次采购量等策略和方法。这样,既可以将线程及其状态转换等理论、线程同步和通信等技术与“库存管理”应用有机地结合起来,又能够帮助读者了解和理解库存管理知识,从而突出理论和技术的应用价值。
从解决实际问题的角度看,第8章中的“删除字符串中的所有空格”、“将字符串中的全角数字转换为半角数字”和“根据身份证号码计算年龄”等例题也可谓理论、技术与应用的有机结合。
(3) 重点突出,内容紧凑。精选各章关键知识点和核心技术,并围绕关键知识点和核心技术深入展开,避免面面俱到和蜻蜓点水。
本书内容并不覆盖Java程序设计涉及的所有知识点,例如在本书中并没有介绍泛型、正则表达式、Swing图形用户界面和事件处理等知识点。但本书所介绍的知识点以及所提供的例题和习题能够帮助读者了解结构化程序设计和面向对象程序设计的基础理论,掌握Java程序设计的核心技术及其典型应用,为今后学习数据结构和算法以及开发Java软件和网络平台奠定必备基础。
本书面向教学(应用)型大学的计算机科学与技术、信息管理与信息系统、电子商务、软件工程等相关专业,可作为“面向对象程序设计”和“Java程序设计”等课程的教材,尤其适用于各类Java初学者的教学或自学。
本书由西华大学的崔敬东、徐雷共同编著。其中,崔敬东负责第4~13章,徐雷负责第1~3章。此外,本书的出版还得到清华大学出版社有关工作人员的大力支持。在此特向他(她)们表示诚挚的感谢!
欢迎各类高校老师、同学和其他读者选用本书,并敬请各位对书中内容提出批评意见或改进建议。
崔敬东
2015年5月于成都