皮德常、张凤林编著的《Java简明教程(第4版)》详细介绍了Java面向对象的核心编程思想和方法,特别注重程序设计的实用性,使读者具备运用面向对象的方法分析和解决实际问题的能力。
本书主要内容包括Java编程基础、面向对象编程原理、接口、包、泛型的基本概念、链表、栈、散列、字符串处理、异常处理、输入和输出、多线程、小程序、Swing图形界面设计、事件处理、数据库增删改等操作方法,以及数据库编程综合举例等,非常适合Java初学者阅读。此外,本书还突出了Java与C/C++的异同点,从而非常适合具备C/C++编程经验,又想转向Java编程的读者阅读。
本书语言流畅、实例丰富,讲解了Java程序设计的核心内容。全部代码都在JDK7.0环境下调试通过,并配有大量的习题,同时在指定网站提供了该书的电子教案和程序示例源码,特别适合高等院校用作讲授Java语言编程和面向对象程序设计的教材。
序言
随着高等教育规模的扩大以及信息化在社会经济各个领域的迅速普及,计算机类专业在校学生数量已在理工科各专业中遥遥领先。但是,计算机和信息化行业是一个高度多样化的行业,计算机从业人员从事的工作性质范围甚广。为了使得计算机专业能更好地适应社会发展的需求,从2004年开始,教育部高等学校计算机科学与技术教学指导委员会组织专家对国内计算机专业教育改革进行了深入的研究与探索,提出了以“培养规格分类”为核心思想的专业发展思路,将计算机科学与技术专业分成计算机科学(CS)、软件工程(SE)、计算机工程(CE)和信息技术(IT)四个方向,并且自2008年开始进入试点阶段。
以信息化技术的广泛应用为动力,实现信息化与工业化的融合,这是我们面临的重大战略任务。这一目标的实现依赖于培养出一支新一代劳动大军。除了计算机和网络等硬件、软件的研制开发生产人员外,必须要有大量的专业人员从事信息化系统的建设并提供信息服务。
信息技术方向作为计算机科学与技术专业中分规格培养的一个方向,其目标就是培养在各类组织机构中承担信息化建设任务的专业人员。对他们的能力、素质与知识结构的要求尽管与计算机科学、软件工程、计算机工程等方向有交叉,但其特点也很清楚。信息技术方向培养能够熟练地应用各种软、硬件系统知识构建优化的信息系统,实施有效技术管理与维护。他们应该更了解各种计算机软、硬件系统的功能和性能,更善于系统的集成与配置,更有能力管理和维护复杂信息系统的运行。在信息技术应用广泛深入拓展的今天,这样的要求已远远超出了传统意义上人们对信息中心等机构技术人员组成和能力的理解。
信息技术在国外也是近年来才发展起来的新方向。其专业建设刚刚开始起步。本系列教材是国内第一套遵照教育部高等学校计算机科学与技术教学指导委员会编制的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(以下简称专业规范),针对信息技术方向需要组织编写的教材,编委会成员主要是教育部高等学校计算机科学与技术教学指导委员会制定专业规范信息技术方向研究组的核心成员。本系列教材的着重点是信息技术方向特色课程,即与计算机专业其他方向差别明显的课程的教材建设,力图通过这些教材,全面准确地体现专业规范的要求,为当前的试点工作以及今后信息技术方向更好的发展奠定良好的基础。参与本系列教材编写的作者均为多年从事计算机教育的专家,其中多数人直接参与了计算机专业教育改革研究与专业规范的起草,对于以分规格培养为核心的改革理念有着深刻的理解。
当然,信息技术方向是全新的方向,这套教材的实用性还需要在教学实践中检验。本系列教材编委和作者按照信息技术方向的规范在这一新方向的教材建设方面做了很好的尝试,特别是把重点放在与其他方向不同的地方,为教材的编写提出了很高的要求,也有很大的难度,但对这一新方向的建设具有重要的意义。我希望通过本系列教材的出版,使得有更多的教育界的同仁参与到信息技术方向的建设中,更好地促进计算机教育为国家社会经济发展服务。
中国科学院院士
前言
Java程序设计是高等学校计算机类和电子信息类学科各专业的核心专业基础课程,是培养学生面向对象程序设计能力的主干课程之一,在计算机学科的教学中非常重要。
1995年5月Sun Microsystems公司推出的Java语言是一种令人振奋的新型语言,它具有面向对象、平台无关、可移植性强、安全、支持分布式等诸多特征,特别适合网络编程。目前,Java语言已经成为高校学生学习面向对象程序设计的必选语言。
2004年9月,Sun公司发布了J2SE 1.5,是Java语言发展史上的一个里程碑,同时将J2SE 1.5更名为J2SE 5.0。2005年6月,JavaOne大会召开,Sun公司将Java版本及其平台更名,取消了其中的数字“2”,J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME,JDK 1.6更名为Java SE6。2009年4月,世界一流的数据库软件商Oracle公司收购了Sun公司,我们在本书中称Java是Oracle公司的产品。
从程序设计语言的发展历史来看,Java语言是在C++语言之上推出的新一代语言,其语法与C++语法相似,但剔除了C++中易于出错的成分。Java增加了诸如内存自动回收之类的新功能,删除了C++中令人费解的、不常用的成分,如指针和运算符重载等。Java从问世以来,很快流行于全世界,并获得了极大成功。目前,许多软件项目已选择Java语言作为其编程语言,特别是计算机网络方面的软件。
本书前三版受到了大量读者(高校教师、大学生、程序员等)的热烈欢迎,他们在使用的过程中,给作者提出了一些很好的意见和建议,在此,作者表示深深的感谢。
在本书再版的过程中,张凤林修订了本书的第1~4章,其余的由皮德常修订,全书由皮德常通稿。作者的研究生张伟、王延达等人为本书做了大量的资料收集和程序验证工作。
本书与前版相比的改进之处
(1) 在程序编排上,采用了“程序举例→程序运行结果→程序解析”统一风格,使读者能一目了然地找到关键点。(2) 增加了泛型程序设计。泛型程序设计意味着编写的代码可以被很多不同类型的对象重用,它使得Java程序具有更强的可移植性。
(3) 增加了针对数据库的编程以及综合应用设计,给出了一个针对Access数据库编程的综合举例。为读者采用Java语言进行课程设计和项目研发打下了坚实的基础。
(4) 将GUI布局管理器与事件处理进行了组合;增加了8.6节Java中的文件新特性、9.3节线程的基本操作,以及12.4节数据库操作中的常用接口和类,这些都是新版Java的内容。
(5) 依据最新版JDK 7.0,新版教材增删了部分内容。针对Java语言近几年的进展,新教材与时俱进,与前面的JDK 6.0相比,本书根据JDK 7.0的变化,增删改了许多细微的知识点,并采用醒目的标注方式给出了解释。
本书特点
1) 抓重要概念
Java编程属高等院校计算机相关专业的学生要学习的一门专业课,一般安排在C/C++课程之后学习,理论教学的学时往往比较少,本科教学大多是36学时,大专教学是48学时。在如此少的学时内,教师不可能讲授完Java的所有知识,只能抓住重点内容进行介绍。针对这种情况,本书突出了Java与C/C++的不同之处,对这些语言的共性点不作详细介绍,仅仅讲授Java的核心内容,这不但便于读者学习和掌握,同时也便于教师讲解。
2) 舍弃次要内容
考虑到Java课程的学时安排,以及Java与C/C++之间的关系,本书对Java开发工具的应用、基本数据类型、运算符、控制语句和类库,都没有作过多的讨论。例如,Java中的基本数据类型、运算符及控制语句等内容与C/C++类似,因而只是作了简单的介绍;另外,由于Java类库十分庞大,因此本书仅对常用的类库进行了介绍。
3) 力求培养学生的思考能力
本书就Java的一些实现技术进行了讨论和分析,并介绍了实现内幕。例如,作者结合自己的理解,分析了实例变量和方法的多态性问题(见4.9节);结合String和StringBuffer类,分析了“+”号操作的实现内幕(见6.3.3节)。这些内容对培养学生的思考能力提供了一定的帮助,有助于培养他们勤于思考,勇于实践,敢于创新的能力。
4) 以最新的Java SE为标准
本书采用最新版本的JDK 7 U65(简称JDK 7)和非常优秀的NetBeans IDE 8.0作为Java程序设计的开发环境,读者均可从Oracle网站免费下载。
NetBeans IDE 是一个可用于 Windows、Mac、Linux 和 Solaris平台上的集成开发环境,通过该环境读者可以使用Java平台以及JavaFX、JavaScript和C/C++等语言快速创建Web、企业、桌面和Mobile应用程序。
5) 突出与C/C++的异同点
如前所述,Java课程往往安排在C/C++课程之后。为了便于读者对Java的理解和掌握,本书在内容编排上突出了Java与C/C++的异同点,以免读者误解Java的知识点,做到快速掌握Java编程的核心思想。
6) 力求通俗易懂
编写本书的目的是让读者通过自学或在教师的指导下,学会运用Java进行面向对象的程序设计。因此,本书围绕如何进行Java编程展开。为了便于读者学习,作者力求使本书的语言通俗易懂,将复杂的概念采用浅显的语言来讲述,便于读者理解和掌握。
本书的编排特点
(1) 每章开始均点明本章要讲解的内容和学习要求。
(2) 每章结束时,都进行了小结,给出了该章内容的概括性描述,并对该章的知识点进行了归纳。
(3) 每章安排的习题都具有很强的操作性,读者可通过计算机进行练习。
(4) 书中重要的内容采用黑体标记,特别重要的内容采用下面加点的方式标记。
(5) 本书强调程序的可读性。书中的程序全部采用统一的程序设计风格。例如,类名、方法名和变量名的定义做到“见名知义”;左大括号和右大括号对应,并采用缩排格式组织程序代码;此外,对程序中的语句尽可能多地进行了注释。
(6) 强调程序的可移植性,不以某个Java开发工具为标准,而是以最新JDK 7.0为标准。
(7) 本书包含了大量的程序示例,并给出了运行结果。凡是程序开头带有程序编号的程序,都是完整的程序,可以直接在计算机上编译运行。
(8) 本书采用了醒目的标记来显示知识点。这些标记包括“注意”和“思考”,它们穿插在全书中,能帮助读者尽快找到重要的信息。这些标记的含义如下:
【注意】值得读者关注的地方,它们往往是容易混淆的知识点。
【思考】提出问题,引导读者思考,培养思考能力。创新从“问号”开始。
教学支持
本书的电子教案是采用PowerPoint 2003制作的,可以在讲课时用多媒体投影演示,这部分可取代板书。教师不仅可以使用本教案,还可以方便地修改和重新组织其中的内容以适应自己的教学需要。使用本教案可以减少教师备课时编写教案的工作量,以及因板书所耗费的时间和精力,从而提高单位课时内的知识含量。我们向使用本教材的教师免费提供本书的电子教案和全部程序示例源码,需要本书习题参考答案的教师请在www.tup.tsinghua.edu.cn网站上获取《Java简明教程(第4版)》的参考答案。为了更好地为您服务,请在邮件中附上姓名、工作单位、地址、联系电话、主讲课程等信息。
感谢读者选择本书,欢迎提出批评和修改建议,作者将不胜感激。
作者2015年1月
第1章 Java语言简介
1.1 Java语言的发展历程
1.2 Java语言的特点
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.2.10 多线程
1.2.11 动态性
1.3 Java类库的概念
1.4 网络浏览器
1.5 Java开发工具
1.6 Java程序分类
1.6.1 使用NetBeans运行Java应用程序
1.6.2 使用NetBeans运行Java Applet小程序
1.7 对Java程序的解释
1.7.1 程序注释方法
1.7.2 对Java应用程序的解释
1.7.3 对Java小程序的解释
1.7.4 对HTML文件的解释
1.8 编写Java程序的风格要求
本章小结
思考和练习
第2章 数据类型、运算符和表达式
2.1 常量
2.2 变量
2.2.1 整型变量
2.2.2 字符型变量
2.2.3 浮点型变量
2.2.4 布尔型变量
2.2.5 对原子类型变量生存空间的讨论
2.3 变量赋值问题
2.4 数组
2.4.1 一维数组
2.4.2 二维数组
2.4.3 数组初始化
2.5 Java中的参数传递方式
2.6 Java的运算符
2.6.1 算术运算符
2.6.2 关系运算符
2.6.3 逻辑运算符
2.6.4 位运算符
2.6.5 三元条件运算符
2.6.6 +运算符
本章小结
思考和练习
第3章 控制语句
3.1 分支语句
3.1.1 if语句
3.1.2 switch语句
3.2 循环控制语句
3.2.1 while语句
3.2.2 do-while语句
3.2.3 for语句
3.3 break语句和continue语句
3.3.1 不带标号的break语句和continue语句
3.3.2 带标号的break语句和continue语句
本章小结
思考和练习
第4章 Java的类
……
第5章 接口、包与泛型
第6章 字符串处理
第7章 异常处理
第8章 输入与输出处理
第9章 多线程
第10章 小程序
第11章 Swing图形界面设计
第12章 数据库程序设计
参考文献