Java 语言程序设计(原书第3版)
作者 : (美)Y.Daniel Liang
译者 : 王镁 李娜
丛书名 : 计算机科学丛书
出版日期 : 2004-04-22
ISBN : 7-111-14057-5
定价 : 65.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 596
开本 : 16开
原书名 : Introduction to Java Programming
原出版社: Prentice Hall,Inc.
属性分类: 教材
包含CD :
绝版 :
图书简介

《Java语言程序设计》是学习Java的入门教材。它全面讲授了Java 2。作者提供了学习程序设计原理和Java核心特征的一个循序渐进的途径。通过具有代表性的例子、详尽的讲解和丰富的练习,将Java介绍给读者。本书适合学生或具有一定程序设计经验的专业人员阅读参考。

图书特色

图书前言

致教师
  讲授Java有三种比较普遍的做法。第一种是将Java applet和图形程序设计与面向对象程序设计的概念相结合讲授。第二种是一开始就介绍面向对象程序设计。第三种讲法是循序渐进地讲授,首先在程序设计的概念、控制语句和方法方面打下坚实的基础,然后介绍面向对象程序设计,最后讲授图形用户界面(GUI)、applet、国际化、多线程、多媒体、I/O和网络等。
  第一种讲法从GUI和applet开始,似乎比较有吸引力,但是它需要牢固的面向对象程序设计知识和对Java事件处理模式有很好的理解。所以,学生可能不太明白它们在做些什么。第二种讲法的出发点是由于Java是一种面向对象的程序设计语言,应该首先介绍对象。但是这种想法不能引起学生的共鸣。鉴于40余门Java课程的执教经验,我认为应该先介绍基本数据类型、控制结构和方法,为学生学习面向对象程序设计做好准备。所以本书采用第三种讲法,首先按部就班地学习所有必备的和重要的基本概念,进而学习面向对象程序设计,然后用面向对象的思想建立多线程、多媒体、I/O和网络等方面的有趣的Java application和applet。
  根据不同的使用方法,本书既适合初学者也适合高年级本科生。本书曾用于大学新生程序设计的两学期课程,用于将Java作为第二门语言来学习的一学期课程。它也曾用于有经验的程序员的短期培训教材。世界各地的一些计算机系、工程系和管理信息系统系都在不同层面上使用过本书。对于没有程序设计经验的学生来说,应重点讲授本书的第一篇,特别要强调如何编写循环结构,可以在一学期中用4学分的课程来讲解本书的前六章。
  CD-ROM上的教师手册(Instructor誷 Manual)有助于教师对本书的使用。它包含以下信息:
* 用做讲义的Microsoft PowerPoint幻灯片。
* 复习题的答案。
* 书中例子的源代码。
* 新版中增加了45%的编程练习。教师手册为教师提供了答案。学生可以得到偶数号练习题的解答。
* 有450多个多项选择题和正误判断题,并提供了它们的答案,这些题依次覆盖了本书各章的内容。这些题目可以用做考试题或附加复习题。
要获得教师手册,请与Prentice-Hall的代理销售商联系。
Microsoft PowerPoint幻灯片、复习题答案、偶数题号编程练习的解答以及本书例题的源代码,也可以从网站www.cs.armstrong.edu/liang/intro3e.html和www.prenhall.com/liang上得到。

本书的教学组织
  本书采用下列要素组织素材:
* 学习目标:列出了学生学习本章应该掌握的内容,这有助于他们学完各章后判断自己是否达到了目标。
* 引言:由一个简洁的概要开场,讨论在本章中将会学到什么。
* 例子:通过有代表性的例子讲解程序设计的概念,这些例子经过精心挑选,并用易于模仿学习的方式讲述。每个例子都有讲解,包括源代码、运行样例和例子说明。随书的光盘中包含例题的源代码。每个程序都是完整的,可以编译和执行。程序的运行样例是从屏幕上抓取的,将例子生动地展现给学生。阅读这些例子很像在计算机上编写和运行程序。
* 本章小结:复习学生应该在该章中理解和掌握的重要主题,这有助于他们巩固在本章中所学的主要概念。
* 复习题:帮助学生回顾自己的学习过程,评估自己的学习状况。
* 编程练习:在每章的最后,为学生们提供独立应用技能的机会。学习程序设计的窍门就是练习练习再练习。基于此,本书提供了大量的练习题。
* 注和提示:贯穿全书,对程序开发的重要方面提供有价值的建议和深刻认识。
注  提供主题的附加信息,巩固重要概念。
提示  讲解好的程序设计模式和编程实践,帮助学生避开程序设计的误区,少犯错误。

本版的新内容
  本书扩展和改进了《Introduction to Java Programming》的第二版,主要有以下改变:
* UML的使用提高了面向对象设计和程序设计的处理能力。在整本书中,采用UML图符描述类以及它们的关系。
* 从第8章“图形程序设计入门”开始,所有的AWT用户界面组件都被具有最新技术水平的Swing组件所取代。
* 第12章“国际化”是全新的一章。它介绍日期、时间和数字的格式化,并介绍如何为全球用户开发Java程序。
* 提供了几个新的实例学习,为学习程序设计的原理提供了更多的例子,如编写循环结构等。
* 不太重要的章节标记为可选,可以略过或者以后再学,不影响学生对后面各章的理解。这些章节包括“递归”、“高级布局管理器”和“资源簇”等主题。
* 几个新增的附录为读者提供了更多的背景知识。

致学生
  关于计算机发展的未来,没有什么比Internet更重要的了。而Internet上再没有什么比Java更激动人心的了。由Sun Microsystems公司开发的革命性程序设计语言Java,已经成为跨平台应用程序和WWW程序设计的事实标准。
  在Java之前,Web网主要使用HTML浏览Internet上的静态信息,HTML是一种用来进行文档布局和在Internet上链接文档的标记性语言。Java程序可以嵌入HTML网页,由Web浏览器下载运行,给Web用户带来生动活泼的界面和交互方式。
  Java是一种功能齐全、通用的程序设计语言,它能够用于开发健壮的、承担重大任务的应用程序。在最近几年中,Java已经得到广泛普及,并且迅速成为最流行最成功的程序设计语言。现在,它不仅用于网络程序设计,而且用于开发独立的应用程序。许多曾经认为Java言过其实的公司,现在正在使用Java开发供顾客和合作伙伴通过Internet访问的分布式应用程序。今天,每当开发新项目的时候,公司都要考虑如何使用Java使他们的工作变得更容易。

Java的设计和优点
  Java是一种面向对象的程序设计语言。面向对象程序设计是一种更好的程序设计方法,它已经替代了传统的基于过程的程序设计技术。面向对象语言使用抽象、封装、继承和多态性,为软件开发提供了极大的灵活性、模块性和可重用性。
  Java是平台无关的。它的程序可以在任何一台具有Java虚拟机的机器上运行,Java虚拟机是一个解释Java指令并执行相关操作的软件构件。
  Java是分布式的。Java天然地具有内在的网络功能,可以在Internet上的多台计算机上同时处理任务。编写网络程序和数据输入输出一样容易。
  Java是多线程的。多线程是指一个程序同时执行多项任务的能力,比如可以一边下载视频文件一边播放。在图形用户界面(GUI)和网络程序设计中,多线程特别有用。多线程程序设计被稳妥地集成在Java中。在其他语言中,只能通过调用特定操作系统的过程来实现多线程程序设计。
  Java是安全性的。计算机相互连接后,容易受到攻击。病毒和恶意程序可以摧毁你的计算机系统。Java设计了多层安全机制,可以确保对私有数据的正确访问,并且严格限制对磁盘文件的读写。

Java的多功能性
  Java允许编写一次程序就可以在任何地方运行,在此优点的激励下,Java已经成为一种最重要的程序设计语言。IBM、Sun和Apple以及许多其他商家正在将Java虚拟机集成到他们自己的操作系统中,这样,Java程序就可以在本地计算机上直接有效地运行。Java程序可以运行在功能完备的计算机上,也可以运行在消费类电子产品中。
  由于Java具有巨大的潜力,可以将不同平台上编写的、已有的应用程序联合起来一起运行,所以认为它可以用做企业数据库的前端。一些领先的数据库公司,IBM、Oracle、Sybase和Informix,已经扩大对Java的应用,将Java与其自身产品结合起来。例如,Oracle允许Java应用程序在它的服务器上运行,并且提供一整套基于Java的开发工具,支持当前的应用程序与Web网的集成。

学习Java
  对于初次接触Java的程序员来说,学习它和学习其他高级程序设计语言一样。学习程序设计的基本原则是训练准确叙述程序求解步骤的基本技能,并且使用选择语句、循环和方法将求解步骤翻译为程序。
在软件工程的设计和实现中运用抽象概念是开发软件的关键。所以,本书的主要目的就是教会学生在解决问题时使用多种层次的抽象,并且能够分解和合成问题。
  没有程序设计经验的学生应该慢一点学习本书的第一篇。我建议完成第3章和第4章的所有习题之后再进入第5章。新接触面向对象程序设计的学生可能需要花一些时间熟悉对象和类的概念。一旦掌握了基本原理,使用Java进行程序设计就变得简单、快速。对诸如C++和Smalltalk的面向对象程序设计语言有了解的学生会发现Java更容易学习。事实上,他们会发现在许多方面Java比C++和Smalltalk更简单。

本书的结构
  本书分为四篇,它们一起构成一部全面介绍Java程序设计的教程。由于知识是循序渐进的,所以前面几章提供理解Java的概念基础,并且通过简单的例子和练习引导学生;后续章节逐步展示Java程序设计的细节,最终达到开发综合应用程序的目的。附录由包括HTML指南在内的多种主题构成。
第一篇:程序设计基础
  本书第一篇是开始学习Java之旅的基石。从这里开始了解Java,学习如何使用基本数据类型、控制语句和方法来编写简单的Java程序。
第1章“Java入门”,给出Java主要特征的概貌,包括面向对象程序设计、平台无关性、Java字节码、安全性、效率、多线程和网络等。这一章还介绍了如何创建、编译和运行Java application和applet。提供了编写application和applet的简单例子,以及对程序结构的简要分析。
第2章“基本数据类型和基本操作”,介绍基本数据类型、运算符和表达式。重要主题有标识符、变量、常量、赋值语句、基本数据类型、运算符和简捷运算符等。还提及Java编程风格和文档。
第3章“控制语句”,介绍判断和循环语句。Java的判断语句包括if语句的各种形式和switch语句。Java的循环语句包括while循环、do循环和for循环。这一章还讨论了关键字break和continue。
第4章“方法”,介绍方法的创建、调用方法、传递参数、返回值、方法重载和递归等。对概念“抽象”的应用是开发软件的关键,这一章介绍了在问题求解中如何应用方法抽象。还介绍了进行基本数学运算的Math类。
第二篇:面向对象程序设计
  本书的第二篇介绍面向对象程序设计。Java是以类为中心的面向对象程序设计语言,它利用抽象、封装、继承和多态性为软件开发提供了极大的灵活性、模块性和可重用性。本篇将学习使用对象和类、数组和字符串以及类的继承性来进行程序设计。
  第5章“使用对象和类编写程序”,首先介绍对象和类。重要主题有:定义类、创建对象、使用构造方法、给方法传递对象、实例变量与类变量、实例方法与类方法、分析类之间的关系以及使用UML图符描述类。提供了一些例子来演示面向对象程序设计方法的威力。从这几个例子中学生能够看到面向对象程序设计的好处(抽象、封装和模块性)。Java有500多个预定义类,它们分别组织在几个包中。从本章开始,学生将逐步学习如何使用Java的类开发自己的程序。这一章还介绍了储存和处理字符串的类String、StringBuffer和StringTokenizer。
  第6章“类的继承性”,讲解如何根据需要扩展和修改已经存在的类。继承是一种非常有力的程序设计技术,进一步拓展了软件的可重用性。Java程序都是通过扩展预定义类构建的。主要议题有:定义子类,使用关键字super和this,使用修饰符protected、final和abstract,多态性和动态绑定,以及转换对象。这一章介绍了Java所有类的根类Object。在本章中还会学到抽象类与接口。
  第7章“数组和向量”,研究处理列表和表格数据的重要数据结构:数组。将学习如何声明、初始化和复制数组。还将学习使用包装类封装基本数据类型的值,以便用于通用程序设计。这一章介绍了Vector类,它用于存储个数不确定的元素。
第三篇:图形程序设计
  本书第三篇介绍图形程序设计。主要议题有:事件驱动程序设计、创建图形用户界面和编写applet。将学习Java图形程序设计的API结构,使用用户界面组件开发application和applet。
  第8章“图形程序设计入门”,介绍使用Swing组件进行Java图形程序设计的概念。主题有:Swing类的层次结构、事件驱动程序设计、框架、面板和简单布局管理器(FlowLayout、GridLayout和BorderLayout)。这一章还介绍了在图形环境中如何绘制几何图形。
  第9章“创建用户界面”,介绍用户界面组件:按钮、标签、文本域、文本区、组合框、列表框、复选框、单选按钮、菜单、滚动条和滚动窗格。现在的客户/服务器和基于Web的应用程序都使用图形用户界面(GUI,发音为“goo-ee”)。Java具有丰富的类库帮助构建自己的GUI。
  第10章“applet和高级图形界面”,深入了解applet,讨论applet的行为和applet与其他Swing类的关系。applet是一种特殊的Java类,它可以在Web浏览器中运行。学生将学习如何进行application与applet之间的转换,以及如何将程序既作为applet又作为application运行。
第四篇:开发综合应用工程
  本书最后一部分集中介绍Java程序设计的几个高级功能。将学习如何使用这些功能开发综合程序,例如,使用异常处理使得程序更健壮,使用多线程使得程序反应更快、交互性更强,使用声音和图像使得程序更友好,使用输入输出管理和处理大量数据,使用Java的网络功能创建客户/服务器应用程序。
  第11章“异常处理”,教会学生如何定义异常、抛出异常和处理异常,使得程序发生运行时错误时仍然能够继续运行或者平稳结束。这一章讨论了预定义的异常类,并且给出创建自定义异常类的例子。
  第12章“国际化”,介绍如何为国际用户开发Java程序。将介绍如何针对不同的地区、国家和语言来格式化日期、数字、货币和百分数。还将学习对于与用户的地区和喜好有关的组件,如何应用资源簇来定义要使用的图像和字符串。
  第13章“多线程”,介绍线程,线程允许在一个程序中同时执行多个任务。学生将学习如何使用Thread类和Runnable接口开发分离的线程。这一章还介绍线程的状态、线程的优先级、线程组和冲突线程的同步。
  第14章“多媒体”,讲解如何合成声音和图像,给Java程序带来生动活泼的气息。介绍了构造平滑动画的各种技术。
  第15章“输入输出”,介绍输入输出数据流。学生将学习I/O数据流的类结构、字节和字符数据流、文件I/O数据流、数据I/O数据流、打印数据流、定界的I/O、随机文件读写和交互的I/O等。
  第16章“网络”,介绍网络程序设计。学生将学习网络通信的概念、数据流套接字、客户/服务器程序设计,以及从Web服务器上读取数据文件。

附录
  本书的这一部分是一个多种主题的混合集。附录A列出了Java关键字。附录B给出ASCII字符以及它们对应的十进制和十六进制编码表。附录C说明操作符的优先级。附录D总结Java修饰符和它们的用途。附录E介绍数系与二进制、十进制和十六进制数之间的转换。附录F介绍HTML基础。附录G列出了描述类及其关系的UML图形符号。附录H介绍了组织类的包。附录I给出了JBuider 3.5使用指南。最后,附录J对本书中的关键术语进行汇总。

本书的相关网站
  与本书相关的网址是:www.cs.armstrong.edu/liang/intro3e.html或www.prenhall. com/liang。这些网站包含下列资源:
* Microsoft PowerPoint幻灯片讲义
* 复习题的答案
* 偶数号编程练习的解答
* 书中例子的源代码
* 自测题
* 如何获得和安装Java 2 SDK v1.3
* JBuilder 4 指南
* Java数据结构
* 勘误表
* 常见问题解答

作者简介

(美)Y.Daniel Liang:Y.Daniel Liang:  Y. Daniel Liang 普度大学终身教授,阿姆斯特朗亚特兰大州立大学计算机科学系教授。他所编写的Java教程在美国大学Java课程中采用率最高,同时他还兼任Prentice Hall Java系列丛书编辑。

译者简介

王镁 李娜:暂无简介

译者序

Internet和Java的影响与地位毋庸多言。有关Java的课程正在逐步纳入各种层次高校的教学计划。Java已经成为开发网络软件的首选语言,并且逐步成为企业数据库的前端。
  本书是一本Java程序设计的入门教材。从Java的历史和特点讲起,一直到多媒体、多线程、网络和国际化等程序设计主题。本书把握程序设计的基本思想,遵循人类的认知规律,循序渐进、脉络清晰、极具可读性。它的风格更像教学讲义,适合课堂讲授,同时也是一本很好的自学教材。
  它在内容组织和讲授方式上颇具匠心。那些没有任何计算机语言基础的初学者,阅读本书时会发现,Java程序设计并不难学,面向对象技术自然、亲切。而那些有其他语言基础的读者,也不会觉得本书繁琐,处处可见新意。即使是程序设计的教师,也能从中获得教学方法上的收益。
  本书每一章的开头都有“学习目标”,列出学习该章时应该掌握的内容。结尾都有“本章小结”,复习应该在本章中理解和掌握的重要主题。每章的“引言”是一个简洁的概要说明,使读者明白将要学习什么,不至于堕入细节而产生迷茫。穿插全书的“注”和“提示”对帮助读者开拓视野、加深认识、获取经验具有重要价值。特别值得一提的是,本书的例题经过精心挑选,讲解细致,极具代表性和可模仿性。本书还配有大量复习题和编程练习,为读者提供自我评估、巩固知识和训练技能的机会。
  随书光盘包括书中例子的源代码、复习题的答案、偶数题号编程练习的解答和JBuider 3.5。这为制作CAI课件提供了方便。
  除了翻译工作外,呼和浩特市管理干部学院的李娜同志还做了大量的文字录入工作。感谢席瑞斌、张凤荣、张海娟、张少华、刘雅君和唐春燕等同学,他们为译文的初稿做了大量工作。

王  镁
于内蒙古大学

图书目录

第一篇  程序设计基础
第1章  Java入门 2
1.1  引言 2
1.2  Java简史 2
1.3  Java的特点 3
1.3.1  Java是简单的 3
1.3.2  Java是面向对象的 3
1.3.3  Java是分布式的 4
1.3.4  Java是解释型的 4
1.3.5  Java是健壮的 4
1.3.6  Java是安全的 5
1.3.7  Java是体系结构中立的 5
1.3.8  Java是可移植的 5
1.3.9  Java的效率 5
1.3.10  Java是多线程的 6
1.3.11  Java是动态的 6
1.4  Java和WWW 6
1.5  Java语言规范 7
1.6  Java开发工具 8
1.7  Java application 8
1.8  application程序剖析 10
1.8.1  注释 10
1.8.2  保留字 10
1.8.3  修饰符 11
1.8.4  语句 11
1.8.5  块 11
1.8.6  类 11
1.8.7  方法 11
1.8.8  main方法 12
1.9  Java applet 12
1.9.1  编译applet 13
1.9.2  创建HTML文件 13
1.9.3  浏览applet 13
1.9.4  applet浏览工具 14
1.10  applet程序剖析 15
1.10.1  import语句 15
1.10.2  类的实例 15
1.10.3  方法paint和类Graphics 15
1.10.4  关键字extends和类继承 16
1.11  application与applet 16
1.12  本章小结 17
复习题 17
编程练习 18
第2章  基本数据类型和基本操作 19
2.1  引言 19
2.2  编写简单的程序 19
2.3  标识符 23
2.4  变量 23
2.5  赋值语句 23
2.6  常量 24
2.7  数值数据类型 25
2.7.1  算术运算符 25
2.7.2  数值字面量 26
2.7.3  简捷赋值运算符 26
2.7.4  数值类型转换 27
2.8  字符数据类型 28
2.9  布尔数据类型 29
2.10  实例学习 31
2.11  编程风格和文档 34
2.11.1  适当的注释 34
2.11.2  命名习惯 34
2.11.3  适当的缩进和空白 35
2.11.4  块的对齐方式 35
2.12  程序错误 35
2.12.1  编译错误 35
2.12.2  运行时错误 36
2.12.3  逻辑错误 37
2.13  调试(可选) 37
2.14  本章小结 38
复习题 39
编程练习 41
第3章  控制语句 42
3.1  引言 42
3.2  条件语句 42
3.2.1  简单if语句 42
3.2.2  if...else语句 43
3.2.3  if语句的嵌套 44
3.2.4  switch语句 46
3.2.5  条件表达式 48
3.3  循环语句 48
3.3.1  while循环 48
3.3.2  do循环 50
3.3.3  for循环 51
3.4  使用关键字break和continue 54
3.5  实例学习 57
3.6  本章小结 61
复习题 62
编程练习 64
第4章  方法 66
4.1  引言 66
4.2  创建方法 66
4.3  调用方法 67
4.4  参数传递 69
4.5  重载方法 71
4.6  方法抽象 72
4.7  Math类 73
4.7.1  三角函数方法 73
4.7.2  指数函数方法 73
4.7.3  方法min、max、abs、round和random 73
4.8  实例学习 75
4.9  递归(可选) 80
4.9.1  计算阶乘 80
4.9.2  计算斐波那契(Fibonacci)数 82
4.9.3  汉诺(Hanoi)塔问题 84
4.9.4  递归与迭代 87
4.10  本章小结 87
复习题 88
编程练习 90
第二篇  面向对象程序设计
第5章  使用对象和类编写程序 94
5.1  引言 94
5.2  对象和类 94
5.2.1  声明和创建对象 96
5.2.2  简单类型变量和对象类型变量的区别 96
5.2.3  垃圾回收 97
5.2.4  访问对象的数据和方法 97
5.3  构造方法 99
5.4  给方法传递对象 101
5.5  可见性修饰符与访问器方法 103
5.6  类变量、类常量和类方法 105
5.7  变量的作用域 105
5.8  关键字this 110
5.9  对象关系分析 110
5.9.1  关联 110
5.9.2  聚集 111
5.9.3  继承 111
5.9.4  类抽象 112
5.10  实例学习 112
5.11  Java应用程序接口 122
5.12  String类 123
5.12.1  构造一个字符串 123
5.12.2  字符串比较 123
5.12.3  字符串连接 124
5.12.4  子串 124
5.12.5  字符串长度和获取字符串的单个字符 125
5.13  StringBuffer类 126
5.13.1  在StringBuffer类中追加和插入新内容 126
5.13.2  常用方法 127
5.14  StringTokenizer类 128
5.15  本章小结 130
复习题 131
编程练习 134
第6章  类的继承性 138
6.1  引言 138
6.2  父类和子类 138
6.3  使用关键字super 140
6.3.1  调用父类的构造方法 140
6.3.2  调用父类的方法 140
6.4  方法覆盖 141
6.5  Object类 142
6.5.1  equals方法 142
6.5.2  toString方法 143
6.5.3  clone方法 143
6.6  修饰符protected和final 143
6.6.1  修饰符protected 143
6.6.2  修饰符final 144
6.7  抽象类 144
6.8  多态性和动态绑定 149
6.9  对象转换和instanceof运算符 151
6.10  接口 153
6.10.1  接口与抽象类 156
6.10.2  Cloneable接口 157
6.11  内部类 160
6.12  软件开发过程 161
6.13  类的设计原则 162
6.14  本章小结 163
复习题 163
编程练习 168
第7章  数组和向量 170
7.1  引言 170
7.2  声明和创建数组 170
7.3  数组的初始化和处理 171
7.4  数组排序 173
7.5  数组中元素的查找 175
7.5.1  线性查找法 175
7.5.2  二分查找法 177
7.6  对象的数组 179
7.7  数组的复制 181
7.8  多维数组 183
7.9  将基本数据类型处理为对象 186
7.10  Number类及其子类 186
7.10.1  数值包装类的构造方法 187
7.10.2  数值类的常量 187
7.10.3  类型转换方法 187
7.10.4  静态方法valueOf、parseInt和parseDouble 188
7.11  命令行参数 188
7.11.1  向Java程序传递参数 188
7.11.2  处理命令行参数 188
7.12  实例学习(可选) 190
7.13  向量类Vector(可选) 196
7.14  本章小结 199
复习题 199
编程练习 200
第三篇  图形程序设计
第8章  图形程序设计入门 204
8.1  引言 204
8.2  Java图形API 205
8.3  框架 206
8.3.1  创建框架 207
8.3.2  框架居中(可选) 208
8.3.3  在框架中添加组件 209
8.4  布局管理器 209
8.4.1  布局管理器FlowLayout 210
8.4.2  布局管理器GridLayout 212
8.4.3  布局管理器BorderLayout 213
8.5  使用面板作容器 214
8.6  在面板上绘制图形 216
8.7  Color类 217
8.8  Font类和Fontmetrics类 217
8.9  绘制几何图形 221
8.9.1  绘制直线 221
8.9.2  绘制矩形 222
8.9.3  绘制椭圆 223
8.9.4  绘制圆弧 224
8.9.5  绘制多边形 225
8.10  实例学习 227
8.11  事件驱动程序设计 230
8.11.1  事件和事件源 230
8.11.2  事件注册、监听和处理 231
8.11.3  事件处理 233
8.12  本章小结 237
复习题 237
编程练习 239
第9章  创建用户界面 242
9.1  引言 242
9.2  JavaBean 242
9.3  按钮 244
9.4  标签 248
9.5  文本域 250
9.6  文本区 252
9.7  组合框 256
9.8  列表框 259
9.9  复选框 262
9.10  单选按钮 264
9.11  边框 268
9.12  消息对话框 273
9.13  菜单 277
9.14  创建多个窗口 282
9.15  滚动条 285
9.16  滚动窗格 288
9.17  选项卡 291
9.18  本章小结 294
复习题 295
编程练习 296
第10章 applet和高级图形界面 300
10.1  引言 300
10.2  Applet类 300
10.2.1  init方法 301
10.2.2  start方法 301
10.2.3  stop方法 301
10.2.4  destroy方法 301
10.3  JApplet类 302
10.4  在Java Plug-In中运行applet(可选) 304
10.5  HTML的<applet>标记 306
10.6  向applet传递参数 307
10.7  application与applet之间的转换 308
10.8  程序作为applet和application运行 313
10.9  鼠标事件 315
10.10  键盘事件 320
10.11  利用顺序图和状态图模拟动态行为 323
10.11.1  顺序图 323
10.11.2  状态图 323
10.12  实例学习 324
10.13  Java工程的打包解包(可选) 329
10.13.1  清单文件Manifest 330
10.13.2  运行存档的工程 330
10.14  CardLayout布局管理器(可选) 331
10.15  GridBagLayout布局管理器(可选) 334
10.16  不使用布局管理器(可选) 337
10.17  本章小结 339
复习题 339
编程练习 340
第四篇  开发综合应用工程
第11章  异常处理 344
11.1  引言 344
11.2  异常和异常类 345
11.3  理解异常处理 346
11.3.1  声明异常 347
11.3.2  抛出异常 347
11.3.3  捕获异常 347
11.4  重新抛出异常 353
11.5  finally子句 353
11.6  慎用异常 353
11.7  创建自己的异常类(可选) 354
11.8  本章小结 358
复习题 358
编程练习 364
第12章  国际化 366
12.1  引言 366
12.2  Locale类 366
12.3  处理日期和时间 369
12.4  数字格式化 380
12.5  资源簇(可选) 384
12.6  本章小结 391
复习题 391
编程练习 391
第13章  多线程 394
13.1  引言 394
13.2  扩展Thread类创建线程 395
13.3  实现Runnable接口创建线程 397
13.4  控制线程和线程状态 398
13.5  线程组 400
13.6  同步 401
13.7  为applet创建线程 404
13.8  使用Timer类控制动画 408
13.9  实例学习 409
13.10  本章小结 413
复习题 414
编程练习 415
第14章  多媒体 418
14.1  引言 418
14.2  播放音频 418
14.3  在独立的线程中播放音频 422
14.4  显示图像 424
14.5  在Java application中装入图像和音频文件 427
14.6  播放一系列图像 431
14.7  使用MediaTracker类 434
14.8  本章小结 436
复习题 436
编程练习 436
第15章  输入输出 439
15.1  引言 439
15.2  数据流的类 440
15.2.1  InputStream类和Reader类 441
15.2.2  OutputStream类和Writer类 441
15.3  File类与外部文件处理 442
15.4  过滤器流 445
15.5  数据流 445
15.6  打印数据流 448
15.7  缓冲数据流 450
15.8  文件对话框 453
15.9  控制台文本输入输出 457
15.10  对象数据流 459
15.11  随机读写文件 463
15.12  分析文本文件(可选) 472
15.13  其他常用的数据流(可选) 475
15.14  本章小结 475
复习题 476
编程练习 477
第16章  网络 480
16.1  引言 480
16.2  客户/服务器计算模式 480
16.3  多客户服务和InetAddress类 484
16.4  applet客户 488
16.5  发送和接收对象型数据 492
16.6  URL类与使用applet浏览网页 496
16.7  从Web服务器上读取文件 498
16.8  使用JEditorPane类浏览HTML文件 500
16.9  实例学习(可选) 503
16.10  本章小结 515
复习题 515
编程练习 516
附   录
附录A  Java关键字 520
附录B  ASCII码字符集 521
附录C  操作符优先级表 522
附录D  Java修饰符 523
附录E  数系 524
附录F  HTML指南 527
附录G UML图形符号 538
附录H  Java包 541
附录I  JBuilder 3.5使用指南 544
附录J  术语表 558
索引 563

教学资源推荐
作者: (美)Barry Wilkinson, Michael Allen
作者: 杨颂华 熊海灵 主编 杨明 黄春伦 等编著
作者: [美]雷蒙德?盖拉多( Raymond Gallardo) 斯科特?霍梅尔(Scott Hommel) 索亚?坎南(Sowmya Kannan) 琼尼•戈登(Joni Gordon) 沙伦?比奥卡?扎卡沃(Sharon Biocca Zakhour) 著
作者: 皮德常 编著