概念和知识面 贯穿本书,我们始终强调概念要比数学模型更重要,我们认为对概念的理解必然左右对 模型的理解,概念与模型的结合可以帮助读者更好地掌握所学内容。同时,我们还特别注意 开阔读者的知识面,使读者能够站在现代软件开发和软件工程这个比较开阔的层面上了解程 序设计,而不是局限于繁琐的程序设计语言规则上。为此,我们在全书中贯穿了软件工程的 思想,使用了诸如UML建模、单元测试等与程序设计相关的软件工程实用方法 代码编写和工具使用能力并重 初学Java程序设计的人,大多数会被Java强大的功能所吸引,同时也被Java的代码编 写难度所吓倒。传统的教材让学生使用记事本那样的简单文本编辑器撰写Java程序,并在 控制台中通过命令行编译和调试程序,无形之中增加了初学者学习的难度,这种方法在本教 材中并不提倡。选用优秀的Java集成开发环境(IDE)作为教学平台,一方面可以帮助初学 者发现代码错误(包括难以察觉的拼写错误),方便程序的调试和编译:另一方面可以让学 生了解软件的实际开发环境,学会利用工具来提高学习和编程的效率 鉴于快速应用开发(RAD)的思想正在改变程序设计的方法,而高效率的可视化程序设计 实际上已经重造了开发者的工作平台。以前编写Java程序是通过基于字符的编辑器键入 条条语句的方法,现在某些优秀的 Java Ide也能像 Delphi、VB那样支持我们交互式地在窗 体上点击和拖放( click-and-drop)组件,并使用短小精悍的代码段连接它们。过去,即使是 开发很小的Java图形界面应用程序,也需要很多细心而且繁杂的基础工作,先写出非常长 的源代码文件,然后才可编译和测试其结果。 Java Ide工具的出现和不断发展改变了这种模 式。本教材中,我们采用SUN公司的开源IDE工具 NetBeans,在强调编程能力的同时,我 们鼓励学生使用IDE工具来提高程序设计的效率和质量。 鼓励学生使用IDE工具并不是削弱他们编写代码的能力,更不是宣扬那种无须写任何 程序就可以用控件组装应用程序的神话。而是为了让学生把精力用于学习程序设计上,而不 是浪费在繁琐的配置、设置、调试和重复输入字符上。其实这也是IDE工具进化的目标之 即让程序员面对真正的程序设计任务,而不是浪费在窗口的几个GUI组件上或繁琐的 手工调试上,程序员的创造力应该体现在结构优良,性能出众,稳定可靠,易于扩展的程序 设计上。 真正的程序设计需要很多知识、技能和创造力。基于IDE工具的可视化程序设计只是 手段不是重点。即使是在GUI界面的设计中,我们也同时采用了可视化程序设计和非可视 化程序设计两种实践,以便读者学习、比较。因为本书的重点仍然在学习程序设计语言的本 质,培养代码的编写能力。这与强调代码编写和工具使用能力并重并不矛盾。 图文并茂 阅读本书后将会发现本书图文并茂。全书有100多幅精心设计的图片,这些图片可以帮 助读者增进对文字的理解
概念和知识面 贯穿本书,我们始终强调概念要比数学模型更重要,我们认为对概念的理解必然左右对 模型的理解,概念与模型的结合可以帮助读者更好地掌握所学内容。同时,我们还特别注意 开阔读者的知识面,使读者能够站在现代软件开发和软件工程这个比较开阔的层面上了解程 序设计,而不是局限于繁琐的程序设计语言规则上。为此,我们在全书中贯穿了软件工程的 思想,使用了诸如 UML 建模、单元测试等与程序设计相关的软件工程实用方法。 代码编写和工具使用能力并重 初学 Java 程序设计的人,大多数会被 Java 强大的功能所吸引,同时也被 Java 的代码编 写难度所吓倒。传统的教材让学生使用记事本那样的简单文本编辑器撰写 Java 程序,并在 控制台中通过命令行编译和调试程序,无形之中增加了初学者学习的难度,这种方法在本教 材中并不提倡。选用优秀的 Java 集成开发环境(IDE)作为教学平台,一方面可以帮助初学 者发现代码错误(包括难以察觉的拼写错误),方便程序的调试和编译;另一方面可以让学 生了解软件的实际开发环境,学会利用工具来提高学习和编程的效率。 鉴于快速应用开发(RAD)的思想正在改变程序设计的方法,而高效率的可视化程序设计 实际上已经重造了开发者的工作平台。以前编写 Java 程序是通过基于字符的编辑器键入一 条条语句的方法,现在某些优秀的 Java IDE 也能像 Delphi、VB 那样支持我们交互式地在窗 体上点击和拖放(click-and-drop)组件,并使用短小精悍的代码段连接它们。过去,即使是 开发很小的 Java 图形界面应用程序,也需要很多细心而且繁杂的基础工作,先写出非常长 的源代码文件,然后才可编译和测试其结果。Java IDE 工具的出现和不断发展改变了这种模 式。本教材中,我们采用 SUN 公司的开源 IDE 工具 NetBeans,在强调编程能力的同时,我 们鼓励学生使用 IDE 工具来提高程序设计的效率和质量。 鼓励学生使用 IDE 工具并不是削弱他们编写代码的能力,更不是宣扬那种无须写任何 程序就可以用控件组装应用程序的神话。而是为了让学生把精力用于学习程序设计上,而不 是浪费在繁琐的配置、设置、调试和重复输入字符上。其实这也是 IDE 工具进化的目标之 一,即让程序员面对真正的程序设计任务,而不是浪费在窗口的几个 GUI 组件上或繁琐的 手工调试上,程序员的创造力应该体现在结构优良,性能出众,稳定可靠,易于扩展的程序 设计上。 真正的程序设计需要很多知识、技能和创造力。基于 IDE 工具的可视化程序设计只是 手段不是重点。即使是在 GUI 界面的设计中,我们也同时采用了可视化程序设计和非可视 化程序设计两种实践,以便读者学习、比较。因为本书的重点仍然在学习程序设计语言的本 质,培养代码的编写能力。这与强调代码编写和工具使用能力并重并不矛盾。 图文并茂 阅读本书后将会发现本书图文并茂。全书有 100 多幅精心设计的图片,这些图片可以帮 助读者增进对文字的理解
示例程序 本书尽可能地运用示例程序来表述概念和模型,同时尽量提供完整的范例程序和程序设 计过程。本书所有示例程序和习题中的程序都已在JDK1.5中编译运行通过,建议读者在学 习时选择Java2标准版JDK1.5的版本 习题 每一章的结尾都包括本章习题。本章小结包括了对本章中所有关键内容和知识点的简明 概括,是复习时的参考。本章习题包括了三部分内容:复习题,测试题和练习题 ·复习题:测试本章中所有的要点和概念,帮助学生复习巩固重点内容。 测试题:通过多项选择题,客观地测试学生对所学知识的理解和掌握程度 练习题:通过课后练习题,检查学生能否运用掌握的概念和知识独立思考,解决问 题。 本教材配有专用的习题解答及课程设计教辅书籍《Java程序设计大学教程习题解答与课 程设计》 CC2004课程体系 从1990年开始,美国电气和电子工程师协会计算机社团( the Computer Society of the Institute for Electrical and Electronic engineers,简称IEEE-CS)和计算机学会( Association for Computing Machinery,简称ACM)就着手开发新的本科生计算机课程体系。1991年联合推 出了 Computing Curricula991(简称CC1991),当时仅限于 Computer Science和 Computer Engineering两个专业的课程。1998年秋季开始, IEEE-CS和ACM联合投入新的力量更新 该课程体系,并在2001年开发出 Computing Curricula2001(简称CC2001),并将该计算机 课程体系扩大到 Computer Science、 Computer Engineering、 Software Engineering、 Information Systems等多个专业。在CC2001的实施中,专家们发现,计算机课程所涉及的学科专业和 教学范围正在不断扩大,而且在内容和教学方面的变化也日新月异。 IEEE-CS和ACM意识 到10年一次的 Computing Curricula修订已经难以满足要求,于是联合国际信息处理联合会 ( International Federation for Information Processing,简称IIP)、英国计算机协会( British Computer Society,简称BCS)等更多的组织开发了 Computing Curricula2004(简称CC2004), 使之成为开放的、可扩充的、适合多专业的、整合了计算机教学相关原则体系观点的课程体 系指南。其结构参见下图
示例程序 本书尽可能地运用示例程序来表述概念和模型,同时尽量提供完整的范例程序和程序设 计过程。本书所有示例程序和习题中的程序都已在 JDK 1.5 中编译运行通过,建议读者在学 习时选择 Java 2 标准版 JDK 1.5 的版本。 习题 每一章的结尾都包括本章习题。本章小结包括了对本章中所有关键内容和知识点的简明 概括,是复习时的参考。本章习题包括了三部分内容:复习题,测试题和练习题。 • 复习题:测试本章中所有的要点和概念,帮助学生复习巩固重点内容。 • 测试题:通过多项选择题,客观地测试学生对所学知识的理解和掌握程度。 • 练习题:通过课后练习题,检查学生能否运用掌握的概念和知识独立思考,解决问 题。 本教材配有专用的习题解答及课程设计教辅书籍《Java 程序设计大学教程习题解答与课 程设计》。 CC2004 课程体系 从 1990 年开始,美国电气和电子工程师协会计算机社团(the Computer Society of the Institute for Electrical and Electronic Engineers,简称 IEEE-CS)和计算机学会(Association for Computing Machinery,简称 ACM)就着手开发新的本科生计算机课程体系。1991 年联合推 出了 Computing Curricula1991(简称 CC1991),当时仅限于 Computer Science 和 Computer Engineering 两个专业的课程。1998 年秋季开始,IEEE-CS 和 ACM 联合投入新的力量更新 该课程体系,并在 2001 年开发出 Computing Curricula2001(简称 CC2001),并将该计算机 课程体系扩大到 Computer Science、Computer Engineering、Software Engineering、Information Systems 等多个专业。在 CC2001 的实施中,专家们发现,计算机课程所涉及的学科专业和 教学范围正在不断扩大,而且在内容和教学方面的变化也日新月异。IEEE-CS 和 ACM 意识 到 10 年一次的 Computing Curricula 修订已经难以满足要求,于是联合国际信息处理联合会 (International Federation for Information Processing,简称 IFIP)、英国计算机协会(British Computer Society,简称 BCS)等更多的组织开发了 Computing Curricula2004(简称 CC2004), 使之成为开放的、可扩充的、适合多专业的、整合了计算机教学相关原则体系观点的课程体 系指南。其结构参见下图
Report and Guide to cc2001 S2002 SE2004 cE2005 T2005 cs2001) Curriculum Information Software Information cience Systems Engineering Technology needed for Curriculum Curriculum Curriculum emerging Report Report Report disciplines 为了进一步反映当代计算机科学技术的发展水平,与国际主流计算机教育思想接轨。通 过多年来对IEE-CS和ACM的 Computing Curricula课程体系的跟踪研究,我们在本教材的 编写中,借鉴了CC2004课程体系的最新研究成果,同时吸取了国外同类教材的优秀经验 其目的是进一步推动教材和课程改革,培养有竞争力人才。 致谢 本书是在作者多年科研和教学基础上编写的,主要参考了作者已发表的文章和著作以及 教学中积累的资料。书中还用到了其他中外文教材、资料,由于无法在此一一列举,现谨对 这些教材和资料的作者表示衷心的感谢。 参与本教材编写工作的人员还有昆明理工大学的刘迎春,海军工程大学的王永斌、周安 栋、段立、罗兵、李启元、杜军、吴苗、曹旭峰,南京航空航天大学无人机研究所的吴英 太原师范学院计算机中心的刘星,以及杨德刚、刘藩、吴永逸、洪蕾等。 本书的出版离不开许多人的支持,尤其是这本书。为此感谢我们的家人和朋友。我们 在忍受写作之苦的同时,牺牲了与他们共享天伦之乐的宝贵时光。 由于作者水平有限,本书中难免有疏漏和不妥之处,恳请各位专家、同仁和读者不吝赐 教,并在此表示特别感谢 http://www.liu-yi.net 2005年11月24日南京
为了进一步反映当代计算机科学技术的发展水平,与国际主流计算机教育思想接轨。通 过多年来对 IEEE-CS 和 ACM 的 Computing Curricula 课程体系的跟踪研究,我们在本教材的 编写中,借鉴了 CC2004 课程体系的最新研究成果,同时吸取了国外同类教材的优秀经验, 其目的是进一步推动教材和课程改革,培养有竞争力人才。 致谢 本书是在作者多年科研和教学基础上编写的,主要参考了作者已发表的文章和著作以及 教学中积累的资料。书中还用到了其他中外文教材、资料,由于无法在此一一列举,现谨对 这些教材和资料的作者表示衷心的感谢。 参与本教材编写工作的人员还有昆明理工大学的刘迎春,海军工程大学的王永斌、周安 栋、段立、罗兵、李启元、杜军、吴苗、曹旭峰,南京航空航天大学无人机研究所的吴英, 太原师范学院计算机中心的刘星,以及杨德刚、刘藩、吴永逸、洪蕾等。 一本书的出版离不开许多人的支持,尤其是这本书。为此感谢我们的家人和朋友。我们 在忍受写作之苦的同时,牺牲了与他们共享天伦之乐的宝贵时光。 由于作者水平有限,本书中难免有疏漏和不妥之处,恳请各位专家、同仁和读者不吝赐 教,并在此表示特别感谢! http://www.liu-yi.net 2005 年 11 月 24 日南京
Java程序设计大学教程 目录 第1章绪论 1.1什么是程序设计 1.1.1程序与计算机 1.1.2算法与数据结构 1.1.3程序设计过程 1.2程序设计语言 121发展历史 122语言的类型 123高级语言的分类 10 1.3Jna语言介绍 13.1Java发展的历史 13.2Java是什么,Java不是什么 133下载JDK搭建Java平台 14 1.4Jana程序的编写、编译和运行 141使用命令行工具 142使用Java编辑器 TextPad 7790 143使用集成开发环境 NetBeans ide 144优秀Java开发工具介绍 1.5本章习题 第2章程序设计基础 2.l程序 21.1初识Java程序 21.2标识符和关键字 21.3撰写规范的程序代码 2.2数据和数据类型 03336704 22.1数据… 222常量和变量 22.3数据类型 2,.3表达式与运算符 2.3.1表达式 23.2运算符 233运算符的优先级 2.4流程控制 241顺序结构 242选择结构 889 243循环结构 2.5本章习题 第3章面向对象与对象模型 3.面向对象的概念 3.1.1面向对象基本原理 3.1.2建立面向对象的思维 88&8 3.1.3UML和对象建模
Java 程序设计大学教程 目 录 第 1 章 绪论.....................................................................................................................................1 1.1 什么是程序设计 .................................................................................................................1 1.1.1 程序与计算机................................................................................................................................ 1 1.1.2 算法与数据结构............................................................................................................................ 4 1.1.3 程序设计过程................................................................................................................................ 7 1.2 程序设计语言 .....................................................................................................................8 1.2.1 发展历史........................................................................................................................................ 9 1.2.2 语言的类型.................................................................................................................................... 9 1.2.3 高级语言的分类.......................................................................................................................... 10 1.3 Java 语言介绍................................................................................................................... 11 1.3.1 Java 发展的历史.......................................................................................................................... 11 1.3.2 Java 是什么,Java 不是什么...................................................................................................... 12 1.3.3 下载 JDK 搭建 Java 平台............................................................................................................ 14 1.4 Java 程序的编写、编译和运行.......................................................................................17 1.4.1 使用命令行工具.......................................................................................................................... 17 1.4.2 使用 Java 编辑器 TextPad........................................................................................................... 19 1.4.3 使用集成开发环境 NetBeans IDE.............................................................................................. 20 1.4.4 优秀 Java 开发工具介绍............................................................................................................. 28 1.5 本章习题...........................................................................................................................30 第 2 章 程序设计基础 ...................................................................................................................33 2.1 程序...................................................................................................................................33 2.1.1 初识 Java 程序............................................................................................................................. 33 2.1.2 标识符和关键字.......................................................................................................................... 36 2.1.3 撰写规范的程序代码.................................................................................................................. 37 2.2 数据和数据类型 ...............................................................................................................40 2.2.1 数据.............................................................................................................................................. 41 2.2.2 常量和变量.................................................................................................................................. 43 2.2.3 数据类型...................................................................................................................................... 44 2.3 表达式与运算符 ...............................................................................................................53 2.3.1 表达式.......................................................................................................................................... 53 2.3.2 运算符.......................................................................................................................................... 53 2.3.3 运算符的优先级.......................................................................................................................... 57 2.4 流程控制...........................................................................................................................58 2.4.1 顺序结构...................................................................................................................................... 58 2.4.2 选择结构...................................................................................................................................... 59 2.4.3 循环结构...................................................................................................................................... 64 2.5 本章习题...........................................................................................................................71 第 3 章 面向对象与对象模型 .......................................................................................................80 3.1 面向对象的概念 ...............................................................................................................80 3.1.1 面向对象基本原理...................................................................................................................... 80 3.1.2 建立面向对象的思维.................................................................................................................. 82 3.1.3 UML 和对象建模........................................................................................................................ 83
Java程序设计大学教程 3.2类 32.1什么是Java类 322类成员… 3.23类成员的可访问性 3.3方法 33.1什么是方法 3.32方法参数 333静态字段和静态方法 3.4府象 34.1理解对象 342使用对象 343对象之间的关系 3.5本章习题 第4章面向对象程序设计 4.1原则和方法 4.2继质 116 42.1使用继承 42.2继承与合成 4.3多态 43.1多态与动态绑定 30 4.3.2方法的绑定 44.1接口的概念 136 44.2Java接口 443接口应用实例 4.5本章习题 第5章算法与数据结构 5.1算法 5.1.1算法的描述… 5.1.2常用算法 5.2数组 521数组的创建和使用 522多维数组和不规则数组 .3排序 24查找 5.3对象容器 5.3.1Java容器框架. 532 Collection与 Iterat 7m2247 5.3.3 List listiterator 5.4抽象数据类型 54.l链表 542栈 543队列 5.5本章习题
Java 程序设计大学教程 3.2 类.......................................................................................................................................87 3.2.1 什么是 Java 类............................................................................................................................. 87 3.2.2 类成员.......................................................................................................................................... 88 3.2.3 类成员的可访问性...................................................................................................................... 90 3.3 方法...................................................................................................................................90 3.3.1 什么是方法.................................................................................................................................. 90 3.3.2 方法参数...................................................................................................................................... 93 3.3.3 静态字段和静态方法.................................................................................................................. 94 3.4 对象...................................................................................................................................97 3.4.1 理解对象...................................................................................................................................... 97 3.4.2 使用对象...................................................................................................................................... 98 3.4.3 对象之间的关系........................................................................................................................ 107 3.5 本章习题.........................................................................................................................109 第 4 章 面向对象程序设计 ......................................................................................................... 114 4.1 原则和方法..................................................................................................................... 114 4.2 继承................................................................................................................................. 116 4.2.1 使用继承.................................................................................................................................... 116 4.2.2 继承与合成................................................................................................................................ 128 4.3 多态.................................................................................................................................130 4.3.1 多态与动态绑定........................................................................................................................ 130 4.3.2 方法的绑定................................................................................................................................ 133 4.4 接口.................................................................................................................................136 4.4.1 接口的概念................................................................................................................................ 136 4.4.2 Java 接口.................................................................................................................................... 137 4.4.3 接口应用实例............................................................................................................................ 141 4.5 本章习题.........................................................................................................................147 第 5 章 算法与数据结构 .............................................................................................................152 5.1 算法.................................................................................................................................152 5.1.1 算法的描述................................................................................................................................ 153 5.1.2 常用算法.................................................................................................................................... 155 5.2 数组.................................................................................................................................161 5.2.1 数组的创建和使用.................................................................................................................... 161 5.2.2 多维数组和不规则数组............................................................................................................ 164 5.2.3 排序............................................................................................................................................ 167 5.2.4 查找............................................................................................................................................ 170 5.3 对象容器.........................................................................................................................172 5.3.1 Java 容器框架............................................................................................................................ 172 5.3.2 Collection 与 Iterator ................................................................................................................. 174 5.3.3 List 及 ListIterator...................................................................................................................... 177 5.4 抽象数据类型 .................................................................................................................181 5.4.1 链表............................................................................................................................................ 182 5.4.2 栈................................................................................................................................................ 183 5.4.3 队列............................................................................................................................................ 186 5.5 本章习题.........................................................................................................................187