Java程序设计实用教程(第4版)pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:Java程序设计实用教程(第4版)pdf/doc/txt格式电子书下载
推荐语:
作者:叶核亚著
出版社:电子工业出版社
出版时间:2013-11-01
书籍编号:30467593
ISBN:9787121217333
正文语种:中文
字数:147808
版次:4
所属分类:教材教辅-大学
版权信息
书名:Java程序设计实用教程(第4版)
作者:叶核亚
ISBN:9787121217333
版权所有 · 侵权必究
第4版前言
程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程,在计算机学科的本科教学中起着非常重要的作用。
面向对象程序设计方法是目前软件开发的主流方法。Java语言是目前功能最强、应用最广泛的一种完全面向对象程序设计语言,具有面向对象、跨平台、多线程以及强大的网络编程功能等特点。今日Java应用无处不在,Java语言作为程序设计的首选语言,其重要性毋庸置疑。因此,以Java语言作为程序设计和面向对象方法的基础训练课程是十分恰当的。开设Java程序设计课程的目的是,进行程序设计和面向对象方法的基础训练,应用新技术开发各种适用于网络环境的应用程序。
本书是普通高等教育“十一五”国家级规划教材,定位于普通高等学校计算机及相近专业本科生的Java语言程序设计课程教材。
本书以“理论基础厚实、全面展现应用技术、注重实践环节”为编写目标,力求探索出一套适合工科院校计算机及相关专业的教学方案,确立Java语言作为专业主干课程的重要地位。
本书具有以下特点。
(1)理论基础厚实
本书全面、系统地介绍构成Java应用程序的基本要素和必备知识,包括Java语言跨平台的运行机制、Java语言的语法基础和面向对象基本概念,着重介绍类的封装、继承和多态等面向对象的核心特性,以及接口、内部类、包、异常处理等Java语言特有的实现机制。章节之间有机衔接,前后呼应。全书结构安排合理,由浅入深,层次分明,内容涉及的广度和深度符合本科培养目标的要求。
(2)全面展现应用技术
本书介绍Java语言的图形用户界面、多线程、输入/输出流和文件操作、网络通信、数据库应用、Web应用等多种实用技术。这些知识和技术与现实世界联系紧密,实用性较强,学生易于理解,但实现起来较困难。本书以面向对象理论为基础,以广阔的实际应用为背景,采用一个个贴近生活实际的实例展现Java语言的应用技术,展现面向对象思想的作用和使用方法,说明为什么Java语言能够在网络环境中被广泛应用,Java语言的哪些机制使其具有独特的魅力,从而能够更深入地理解面向对象思想的精妙。
(3)注重实践环节
“Java程序设计”是一门理论与实践并重的课程,不仅要理解基础知识,更要培养软件设计的基本技能。实践性环节是巩固所学理论知识、积累程序设计经验的必不可少的重要环节,是提高程序设计能力和计算机操作技能的有力保障。
注重理论知识和实用新技术相结合,注重在实践环节培养程序设计的基本技能,是本书的重要特色。本书将程序设计能力的锻炼和提高设计为一个循序渐进的过程,从原理叙述、例题、思考题等课堂讲授环节,到课后习题、上机实验、课程设计等实践性环节,经历先见识、再模仿、最后自主创新设计的学习过程,并培养良好的程序设计习惯。
每章安排有习题和上机实验题,给出详细的实验训练目标、设计内容和设计要求。精心选择实验题,题目形式多样,生动有趣,引人入胜,难度逐步增加。
针对课程设计的实践性环节,本书给出了综合应用程序设计实例,详细说明需求方案、设计目标、设计任务、模块划分、功能实现、调试运行等环节的设计方法,贯彻了理论讲授和案例教学相结合的教学方法,训练学生既具有扎实深厚的基本功,又具有可扩展素质,创新能力强。
本书采用的运行环境包括JDK 7、MyEclipse 8.5、MySQL 5.6数据库及Tomcat 7.0。
这是一本写程序设计的书。程序设计有一些基本原则和道理。程序是设计出来的,程序员必须具备基础知识和基本技能。在动笔写程序之前,需要根据实际应用需求,从全局角度通盘规划考虑,精心策划,选择采取什么策略,清楚有哪些方法可以做得成,每种方法都有什么优缺点,明白为什么要这样做,那样做为什么就不可以,等等。
程序中发现错误了怎么办?这是什么错误,是否能改正,如何改正?这种思路的程序是否值得再继续做下去?作为一个有价值的软件系统,程序要能够预见可能出现的错误,不能预见的错误要事后补救。程序员要知道如何避免和如何补救,不能补救的错误要及时放弃,采取别的策略。总之,无论采用什么方法都要把事情做成。
程序写完了,即使调通了,还必须再想想,程序还有哪些不足?还有哪些情况没有考虑到?是否还能进一步提高算法效率?不但要把事情做成,还要把事情做好,尽一切努力做得更好。这样,不知不觉间,程序设计能力就会提高很多,“轻舟已过万重山”。
写程序是创作,创作过程是艰苦的,也是快乐的。当程序调试通过时,我们会自鸣得意,哼着小曲,心情畅快,“春风得意马蹄疾”。人的一生能有值得沉浸其中的事业是幸福的。
全书由叶核亚编著,南京大学计算机科学与技术系陈道蓄教授主审。
本书第1版于2003年出版,岁月如梭,转眼已十年。感谢电子工业出版社十年来对我的坚定支持;感谢陈老师认真细致地审阅全稿;感谢我的同事们提供了许多帮助;感谢众多读者朋友的坚定支持及提出的宝贵意见。大家对我的指导和帮助使我受益匪浅,受用终身。能与志同道合的人一起讨论共同关心的问题是愉快的,工作也因此变得更有动力。
对书中存在的不妥与错漏之处,敬请读者朋友批评指正。
本书的全部例题和配套课件可从华信教育资源网站(http://www.hxedu.com.cn)下载,也可发邮件至unicode@phei.com.cn或yeheya@x263.net索取。
作者
第1章 Java概述
物竞天择,适者生存。同自然界的进化规律一样,程序设计语言、程序设计思想的变化和发展也是随着实际应用需要而变化和发展的。我们今天所看到、所使用的程序设计语言,经历了一系列竞争和淘汰之后仍然存在,说明它们有存在的道理,必定各有所长。这是一种自然选择的结果。
1995年,作为一种完全面向对象的程序设计语言,Java以一种全新的面貌问世。凭借平台无关、健壮、安全、高效这些适应网络运行需要的特点,Java快速成长,不仅在Internet上游刃有余,而且通过Java ME、Java SE、Java EE三大平台,其应用领域全面覆盖了嵌入式应用、桌面应用和企业级应用,所表现出的强大的应用系统设计能力,使Java无处不在。
本章简要介绍Java特点和核心技术;介绍Java Application应用程序的基本形式,以及由虚拟机支持的程序运行机制;以Windows平台的Java SE7版本为例,介绍JDK的安装和设置方法,以及编译、运行Java程序的方法;介绍在MyEclipse集成开发环境中编辑、编译和运行Java程序的方法。
1.1 了解Java
1.1.1 Java的诞生和发展
1.前身
1991年,Sun Microsystems公司成立Green项目组,目的是开发嵌入家用电器的分布式软件系统,如交互式有线电视和家用电器的设备控制等,使电器更加智能化。由于这些电子设备品种繁多且标准各异,Green项目组希望该控制系统具有简单、可靠、安全、容易联网和跨平台等特性,并且具有支持系统开发的编程工具。
Green项目组最初采用C++语言开发,由于C++语言太复杂而且安全性差,不能满足要求,于是Green项目组研究设计了一种新语言,取名为Oak(橡树),这是因为Green项目组负责人James Gosling办公室窗外有一棵大橡树。
Oak是一种适用于网络编程的精巧而安全的语言,保留了C++语言的语法,同时放弃了一些具有潜在危险特性的内容,如资源引用﹑指针、运算符重载等。并且,Oak语言具有与硬件无关的特性,制造商只需要更改芯片,就可以将烤面包机上的代码应用到微波炉或其他电器上,而不必改变软件,这显著降低了开发成本。不仅如此,Oak还适合于Internet编程。1994年,Green项目组用Oak语言编写的Web浏览器(称为HotJava)展示了Oak作为Internet开发工具的能力。
2.诞生
由于商标冲突,1995年,Oak语言更名为Java语言。Java取名于印度尼西亚位于印度洋中的爪哇岛,它盛产咖啡。Java语言的标志就是一杯热咖啡。美国著名杂志《PC Magazine》将Java语言评为1995年十大优秀科技产品。
Java包括Java编程语言、开发工具和环境、Java类库等。JDK(Java Development Kit,Java开发工具包)提供Java运行时环境。1996年,Sun公司发布JDK 1.0和HotJava。HotJava通过嵌入在Web网页中的Applet运行Java程序,一年之内,Microsoft公司和Netscape公司的Web浏览器宣布支持Applet,IBM、Apple、DEC、Adobe、Silicon Graphics、HP、Oracle和Microsoft等公司相继购买Java技术许可证。从此,Java成了日益流行的计算机语言。
3.Java 2平台
1998年,Sun公司发布JDK 1.2,称为Java 2 SDK(Software Development Kit)。得益于跨平台特性,Java 2不仅能够应用于智能卡和小型消费类设备,还能够应用于大型服务器系统;它提供的接口机制使得软件开发商、服务提供商和设备制造商能够紧密配合,降低了软件开发和维护的工作量。
Sun公司采取开放性策略,在其网站上可以免费获取JDK,这也是Java语言能够迅速发展的一个重要因素。不同的操作系统平台需要使用不同版本的JDK。
4.Java ME、Java SE、Java EE三大平台
1999年6月,Sun公司推出的JDK 1.3将Java平台划分为J2ME、J2SE和J2EE,这三个平台分别定位于嵌入式应用、桌面应用和企业级应用,使Java技术获得了最广泛的应用。用户可根据实际应用领域的需求选择不同的Java平台。
2004年,Sun发布J2SE 1.5,自此J2SE 1.5更名为J2SE 5.0。2005年,发布Java SE6,并取消Java 2名称,Java三大平台被更名为Java EE、Java SE、Java ME。
三大平台说明如下。
① Java ME(Java Micro Edition)是适用于小型设备和智能卡的Java嵌入式平台,提供智能卡(Java Card)业务、移动通信(Java Telephony)、电视机顶盒(Java TV)等智能电器控制功能。
② Java SE(Java Standard Edition)是适用于桌面系统的Java标准平台。Java SE SDK也简称JDK,它为创建和运行Java程序提供了最基本的环境,包含Java编译器、Java类库、Java运行时环境和Java命令行工具。
③ Java EE(Java Enterprise Edition)是Java的企业级应用平台,提供分布式企业软件组件架构规范,具有开放性、可扩展性、集成性以及Java EE服务器之间的互操作性。随着Web应用技术日益成熟成为展示和操纵数据的主流技术,Java EE在Web应用技术开发过程中表现出愈来愈显著的优势,成为开发电子商务应用的事实标准。
2009年,Oracle公司收购Sun Microsystems公司。2011年7月Oracle公司发布JDK 7。
1.1.2 Java的特点
Java伴随着网络的飞速发展而发展,作为软件开发的一种革命性技术,其地位已被肯定。它在如此短暂的历史过程中,经历如此规模的发展壮大,显然并不是偶然的,而是有着内在的基础和外在的机遇。Java语言建立在成熟的算法语言和坚实的面向对象理论的基础之上,具有强大的应用系统设计能力,它所具备的跨平台特性、面向对象和可靠性、安全性等特点是其能够充分适应网络需要的无可比拟的优势。Java成为目前网络编程的首选语言,充分说明了Java语言的设计思想和其所具有的特点适应了网络发展的特殊需要。不仅于网络应用,在企业级应用领域,Java以更简单、更精练的方式实现了C++语言的所有功能。如今,Java技术是当今世界信息技术的主流之一。
Java应用如此广泛是因为Java具有多方面的优势,其特点说明如下。
1.跨平台特性
跨平台特性,也称平台无关性,是指一个应用程序能够运行于不同的操作系统平台,也就是Sun公司设计Java的宗旨“Write once,run anywhere”。跨平台特性使Java应用程序可以运行在多种操作系统(Windows、UNIX等)平台上,这是Java区别于其他高级语言的最重要标志。
Java采用虚拟机技术支持跨平台特性。Java虚拟机(Java Virtual Machine,JVM)是一套支持Java语言运行的软件系统,定义了指令集、寄存器集、类文件结构栈、垃圾收集堆、内存区域等,提供了跨平台能力的基础框架。Java虚拟机运行于操作系统之上。
C++等其他高级语言通常将程序编译生成可执行文件(*.exe),再由操作系统直接执行。与此方式不同,Java源程序(*.java)经编译生成的是字节码文件(*.class),也称类文件,它由Java虚拟机解释执行,解释一句,执行一句。Java虚拟机执行Java程序过程如图1.1所示。Sun公司为各种操作系统配有相应的Java虚拟机,因此,Java源程序能够跨平台运行在不同操作系统之上,无须移植。
Java虚拟机执行应用程序具有以下3个特点:
① 动态性。管理功能全部采用动态方式,如动态分配数组的存储空间、动态创建对象、动态链接数据库等,使得Java程序适合在网络上运行。
图1.1 Java虚拟机执行Java程序过程
② 异常处理。提供可靠的异常处理机制。
③ 多线程。采用多线程方式运行,各线程独立执行,并协调一致地处理共享数据。
Java语言本身设计也体现出平台无关性。例如,int型整数占用32位,与操作系统是16位、32位或64位无关。
2.完全面向对象和简单性
面向对象是当前软件开发的先进技术和重要方法。面向对象的概念是基于信息隐藏和数据抽象类型的概念,利用类和对象的机制将数据和方法封装在一起,通过统一的接口与外界交互;通过类的继承机制实现代码重用。面向对象方法反映了客观世界中现实的实体在程序中的独立性和继承性。这种方法有利于提高程序的可维护性和可重用性,还有利于提高软件开发效率和程序的可管理性。
Java语言从C++语言发展而来,有选择地继承了C++语言的语法规则和面向对象的基本机制,放弃了C++语言中一些含义模糊、过于复杂、安全性差、不适合网络应用的规则,但没有放弃与此相关的功能。Java语言采用更简单、功能更强、性能更好的方式代替。
Java语言对C/C++语言的基本语法改进说明如下。
① 不支持全局变量和宏替换,使用最终变量代替宏替换,避免全局变量和宏替换的副作用。
② 为每种数据类型分配固定长度,实现数据类型的平台无关性。
③ 进行类型相容性检查,防止不安全的类型转换。
④ 不支持goto语句。
⑤ 不支持指针类型,通过引用模型实现了指针的功能。
⑥ 不支持结构类型,使用类代替;不支持联合类型。
⑦ 不支持头文件,用import语句声明导入指定包中的类或接口。
⑧ 内存动态存储且自动管理,动态申请数组和对象的存储空间,自动释放空间,没有指针操作方式。
Java语言是完全面向对象的,所有设计都必须在类中实现,一个Java程序就是多个类的集合。Java语言对C/C++语言的面向对象机制改进说明如下。
① 为8种基本数据类型提供相应的基本数据类型包装类,使基本数据类型与类相关联,体现完全面向对象。
② 将数组设计为引用类型,每个数组都有长度属性。
③ 不支持类似C语言那样的面向过程设计,不支持全局函数,所有函数都是类中成员方法;方法参数不支持默认值形式,避免因默认值造成的二义性;成员方法内不能用static声明局部变量。
④ 不支持友元类和运算符重载,因为友元破坏封装性。
⑤ 提供单继承机制,即一个类只有一个父类,这样使得所有类(包括Java声明的类和程序员声明的类)能够形成具有树结构的类的层次体系,Java语言为这个树结构设置了根类Object。Object类声明对象的基本状态和行为,这些行为可被所有对象继承。子类不能继承父类的构造方法,但可以继承析构方法;所有成员方法都可在运行时被覆盖,都是C++含义的虚方法;不支持多继承,提供接口,通过“单继承+接口”方式实现多继承功能。
Java语言提倡简单性原则,对一个问题只提供一种简单精练的表达方法,这样使程序简单、直接并且不造成歧义。例如,使用下标形式对数组元素进行操作,则不需要使用指针;方法(函数)采用返回值或引用类型参数返回结果,也不需要使用指针;有了类,则不需要结构类型;构造方法采用重载方式,则不需要采用参数默认值形式,避免产生歧义;通过成员方法实现类的操作,则不需要重载运算符等。因此,放弃结构、指针、多继承等,并没有影响Java语言的功能,Java提供的机制具有更强的功能和更高的性能。
3.可靠性
C++语言在稳定性和可靠性方面最大的隐患是使用指针和内存缺乏自动管理。
Java在语言和运行架构两个级别上提供程序运行稳定性和可靠性保证。
① 语言级别。Java语言提供严密的语法规则,在编译和运行时进行严格检查,降低程序出错的可能性。例如,boolean与int类型数据不能进行运算;数组下标不能越界,避免有效数据被覆盖;等等。
Java语言提供异常处理机制,使程序具备在运行过程中及时发现并处理运行时错误的能力,保证Java程序运行的稳定和可靠。
② 运行架构级别。Java语言提供的资源回收机制,对内存资源进行自动管理,跟踪程序使用的所有内存资源,自动收回不再被使用的内存资源。因此,程序中不需要写释放内存空间的语句。Java语言自己操纵内存减小了内存出错的可能性,减少了程序员的工作量,提高了程序运行的可靠性。
4.安全性
Java语言采用域管理方式的安全模型,无论是本地代码还是远程代码,都可以通过配置策略,设定可访问的资源域。这种策略使未经授权的代码不能对用户本地资源进行操作,更好地支持企业级应用,同时消除了区分本地代码和远程代码带来的困难。例如,Applet应用程序在将远程Web页面下载到本地运行时,Java语言将进行严格的代码安全性检测,限制许多可能危害网络安全的操作,如不能访问本地文件、不能建立新的网络连接等。
5.多线程
就像多进程机制能够使一个应用程序的多个进程并发执行一样,多线程机制使一个进程能够被划分成多个线程,每个线程执行一个特定功能,多个线程能够并发执行。Java语言具有内置的多线程机制,多线程的同步特性提供对共享数据操作的正确性。多线程是实现Socket通信的技术基础。
6.支持分布式网络应用
Java早期采用将Applet嵌入浏览器运行的方式实现Web应用,完成动画、游戏、交互式事务处理等功能,使Web页面具有动态特性,提高了Web页面的智能化和灵活性。目前,JSP(Java Server Pages)提供服务端的动态Web页面设计,功能更强,效率更高。
Java支持多种协议的URL寻址,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统相同。Java支持Socket网络通信方式。Java核心类库包括一个支持HTTP等基于TCP/IP协议的类库,为分布式环境尤其是Internet提供动态内容。
1.1.3 Java核心技术
Java支持的多种核心技术,满足了企业级应用对软件在安全性、可靠性、高效性上的高要求,使Java EE成为开发分布式企业级应用的工业标准。
Java的部分核心技术说明如下。
① JDBC(Java DataBase Connectivity,Java数据库连接)定义Java应用程序与关系型数据库连接规范,类似于Windows的ODBC(Open DataBase Connectivity,开放式数据库连接)。
② JSP是Sun公司1999年推出的一种动态网页技术标准,是一种运行于Web服务端的标记语言,它将Java语言嵌入到HTML文档中。JSP是基于Java体系的Web开发技术,可以建立跨平台、安全、高效的动态网站。
JSP与Microsoft的ASP(Active Server Pages)技术相似。ASP基于Windows操作系统,采用VBScript、JavaScript脚本语言;JSP是跨平台的,采用Java语言,功能更强,效率更高,具有动态页面与静态页面分离、编译后运行的特点。
③ JavaBean是Java的对象组件技术,提供组件复用的关键技术,类似于Windows的ActiveX。在JSP中可以使用JavaBean。EJB(Enterprise JavaBean)提供企业级的JavaBean。
④ JavaMail提供E-mail邮件服务的支持类库,支持SMTP和POP3服务器。
1.1.4 Application应用
Java应用程序有两种形式:Application和Applet。
Application是能够独立运行的应用程序,有控制台和图形用户界面两种运行方式。
Applet是可以嵌入Web页面的最小应用,它不能独立运行,必须嵌入超文本(*.html)中,由浏览器中的Java解释器解释执行。Applet是Application的特殊形式,详见第11章。
【例1.1】 接受命令行参数的Application应用程序。
Java应用由一个或多个文件组成,文件类型为“.java”。一个Java应用程序是多个类的集合,类由关键字class声明,类中包含成员变量和成员方法,main()是类首先执行的方法,语句必须写在类的成员方法中。
本例演示基于控制台运行的Application应用程序,没有图形用户界面。程序如下:
其中,class是声明类的关键字,Hello是类名,必须符合标识符语法,约定类名首字母大写。文件名为“Hello.java”,文件名与类名必须相同。main(String args[])方法的参数args是字符串数组,它接受命令行参数。System.out是标准输出常量,调用print()或println()重载方法,可将基本数据类型、字符数组、字符串及对象等各数据类型参数值转换成字符串输出。
Java源程序文件(*.java)通过编译器编译生成字节码文件(*.class),再由解释器执行,运行流程如图1.2所示。
图1.2 Java程序运行流程
1.2 JDK
JDK是Java开发工具包,包括Java类库、Java编译器、Java解释器、Java运行时环境和Java命令行工具。JDK提供Java程序的编译和运行命令,但没有提供程序编辑环境。Eclipse、MyEclipse、JBuilder等Java开发工具提供集成开发环境(Integrated Development Environment,IDE),它们依赖JDK提供运行环境。
1.2.1 JDK的安装与设置
1.安装JDK
从Oracle公司网站http://www.oracle.com/technetwork/java下载以下两个文件:
⊙ jdk-7u7-windows-i586.exe,32位Windows的JDK 7安装程序。
⊙ jdk-7u7-apidocs.zip,JDK 7文档。
运行安装文件,安装过程中可以设置安装路径及选择组件,系统默认安装路径为C:\\Program Files\\Java\\jdk1.7.0_07,默认组件选择是全部安装。注意:默认安装路径中包含当前版本信息。
安装成功的JDK目录结构如图1.3所示。
JDK的目录结构说明如表1-1所示,bin中包括的主要工具如表1-2所示。
图1.3 JDK的目录结构
表1-1 JDK的目录结构

表1-2 bin中的主要工具

2.设置环境变量
由于Java是平台无关的,安装JDK时Java不会自动设置路径,也不会修改注册表,需要用户自己设置环境变量,但不需要修改注册表。
在Windows中需要设置path和classpath两个环境变量。path变量指出可执行文件路径,classpath变量指出Java包的路径。以下介绍设置环境变量的批命令,创建一个批命令文件jdk7.bat,添加两行设置命令如下:
设置环境变量需要注意的事项如下:
① C:\\Program Files\\Java\\jd
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询