前言
1995年Java语言诞生,在全世界立刻兴起了学习Java的热潮。随后,1998年12月J2SE平台问世,2000年,企业版J2EE推出。在不到两年的时间,美国500强企业都成功地将自己的原软件系统转为J2EE平台。至今,J2EE 1.4版在网上被下载已逾百万次,充分显示了Java技术在Web服务开发领域的应用潜力。近年来Java技术已为全球17亿电子器件注入新的活力,快速地进入了有线电视、电子游戏、网络电话和汽车等行业。全球已有近4亿部Java电话,Sun公司总裁兼首席运营官Jonathan Schwartz说,“Java技术正在成为全球网络应用的事实标准,它将大大加快和简化提供移动、消费和企业市场的服务。”正是技术创新促进了Java技术的发展,使之成长为价值1200亿美元以上的Java经济。近来,又有几个具有创新意义的新产品,使Java技术进入新的市场。例如,德国宝马系列汽车和西门子VDO汽车内的导航与娱乐系统,MedicTouch公司基于Java技术的移动健康诊断仪,Java技术已经通过电视机顶盒进入了消费者的家庭,美国宇航局(NASA)利用Java 3D技术实现火星漫游等。现在Java平台仍继续为Java经济注入活力,并驱动了全球企业在桌面系统和服务器领域的技术创新。
如今美国许多著名大学也正在应用Java平台。如斯坦福大学用J2EE平台实现了图书馆管理系统,使图书资料可供全世界网络共享。美国马里兰大学学院综合大学(University of Maryland University College,UMUC)自1972年开始提供全球远程教学,选择了Java平台实现它的全球PeopleSoft应用。把UMUC现有的3个异构的系统在J2EE平台上整合为一个集中控制的IT数据库,将其全球的财务、人力资源和学生工作等系统统一管理起来,使UMUC能高度缩放地、安全可靠地扩展它的教学与学术研究活动。该项目的执行结果使全球学生、教师和所有教职员工可以更简单、更快速地访问在线工具与信息。UMUC现在已在28个国家拥有87 000多名在线学生。自1999年以来,UMUC的学生人数以每年5%~10%的速度激增,预计在2005年,全球在线学生总数可达到10万人以上。
由于Web技术的飞速发展,互联网的使用继续爆炸性地增长。面向Web应用的程序已成为软件系统的主流,Java本身就设计为互联网编程的语言,而且,已为应用提供了许多成熟的软件开发工具和应用程序的开发包;体系结构中立的设计使Java具有很好的可移植性;Java对安全与可靠的支持与其自身的设计融为一体,特别适合网络安全与可靠的需求;面向对象使得Java成为现代软件工程和编程概念的良好教学载体。因此,Java非常适合作为普及编程语言的课程。
到2003年为止,全球获得Java认证的人员已有几百万,但根据Sun公司调查,在近几年内,全球需要Java人才超过千万。我国Java学习热潮虽滞后几年,但从2002年,由用户需求的驱动也已兴起。我们的调查结果表明,许多用户都要求在Java平台或用Java编程完成自己的软件系统。市场推动了对Java人才的需求,有Java基础的人也更受到公司的欢迎。目前,虽然全国已有一百多所大学的计算机系开设了Java课程,但仅靠计算机专业培养的Java人才远远不能满足市场需求。实际上,现在有大量非计算机专业人员在Java编程岗位上工作,这也说明了Java语言作为大学一门公共课程的必要性。在教学指导委员会统一规划下,要求我们写这本非计算机专业的大学通用Java编程教材。能为普及和应用Java技术做点贡献,我们也深感欣慰。为此,我们调查了几个典型大学的Java课程情况和国外Java的各类教材。结合我们多年Java教学和培训经验,制定了本书的目标:希望本书既能成为各类读者的第一门编程语言教程,也能成为各大学非计算机专业的一门编程语言的入门教程。本书假定读者没有任何编程技能基础,要求的数学、计算机和科学知识,相当于大学一年级学生的水平。
说实话,人们学会任何一种编程语言都有一定困难。虽然Java语言已使编程得到很多的简化,但编程是一门“身教盛于言教”的课程,它与编写经验密切相关。编程在很多方面与写作很相似。学习写作要学习词汇、文章的组织构思,用优美而恰当的词汇表达。先从造句、段落开始,反复练习,直到能写出很长的文章、故事、报告甚至小说。写作技能在反复的实践中不断地增长。学习程序设计的方法也要先熟悉程序设计的基本知识、流程控制语句、已有类库主要内容等。然后,再练习编写程序段、模块和子系统程序,直到能编写一个完整的应用系统。开始先编写简单但能正确满足需求的软件,以后再编写复杂、优质的典型软件系统。教编程语言更难一些,要能通过与生活很接近的事例,让学生建立对象的基本概念和某些对象方法,结合软件工程原则,利用好的范例分析,很快地把学生领进门。同时能激发学生学习的兴趣,使学生感到Java程序编写是一件容易的事。然后,又如同培养外科医生一样,要强调多动手实践。多编写、多练习,培养良好的编程习惯和严谨的科学作风。在团队中学会沟通,学习他人长处,弥补自己的不足。通过实践不断提高编程技能和兴趣,共享成功的喜悦和累积经验。
本书为适合不同基础的读者,采用分析案例、大量的自我程序练习,给读者提供了设计、组织和编写代码的学习机会。并在讲解中随时提醒编程中容易出现的错误,推荐一些编程的良好习惯。尽可能让读者在积极的参与中学习。
本书的总目标是:
(1) 教材首先要明确读者对象,才能合理取舍内容。本书的对象是没有程序设计实际经验的非计算机专业的大学生。当今,面临信息化的时代,计算机已深入人类生活的方方面面,并成为各行业的应用工具。作为一名大学生,应该具备一定的计算机知识和编程技能。学会Java编写简单程序,能为今后在各专业中进一步的应用,打下良好基础。
(2) 面向对象编程的概念和原则已成为现在编程的主流。因此,本书首先从人们认知规律出发,由浅入深,由具体到抽象地展示和鼓励使用面向对象范例。介绍用对象表示的方法。使读者一开始就可使用标准包中的对象,很快对一些有兴趣的问题,开发出有意义的程序。在这些概念基础上,再提出基本类和面向对象设计。在探索控制结构之后,对方法、类和面向对象设计进行了更深一步的介绍。使初学者不会因编程语言的许多基本概念、算法而感到枯燥乏味,失去了兴趣。同时,通过一步步引导和分析,逐步掌握编写程序的规律、技巧和减少出错的方法,使读者建立编程的自信心。
(3) 注重解决问题的能力。许多初学者面临的最大障碍是不知道解决问题的基本方法。对于这个问题,本书在第1章就介绍了解决问题的基本技能,在以后的每一章里,把一些新概念融于满足不同读者要求而选择的问题中。读者先学习这些有效解决问题的例子,然后再提供独自解决类似问题的练习。特别在书中列举了上百个简单程序实例,都能在最基本的Java运行环境下执行。读者可作为范例进一步动手修改练习。
(4) 教给读者软件工程设计的概念。在书中每一章都有一个或多个案例,从对问题需求分析开始,教读者如何着手解决问题。在某种程度上,都有面向对象的分析和设计,以及实现算法的开发。同时介绍了Java的核心类库和典型的开发工具。每章都有练习题,使读者积极参与和应用。
(5) 只使用标准的Java类,不用购入或由作者自己写的类。这样做的目的是使初学者容易理解。
(6) 除了解释Java和面向对象编程,本书还对在编程风格和技巧上,怎样成为一个更好、更有见地的编程者提出一些忠告。在避免常见的编程错误,编写出可读性好的代码以及遵循软件工程原则等方面,都有一些很重要的技巧。
(7) 本书中带*的小节,可供有兴趣更深入学习的读者学习,初学者可以跳过不学。
本书由柳西玲和许斌编著,书中的实例都在JDK 1.5和NetBeans上运行过。对教育部高等学校非计算机专业计算机基础课程教学指导分委员会和清华大学出版社给予本书的重视和支持深表感谢。有不妥和错误之处,盼望读者给予指正。
作者
2005年6月