您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Java程序设计教程1-6
“Java程序设计教程”拟编写内容主编:陈波钱能前言本书是“C++程序设计教程”的姊妹篇。在Internet发展和Web普及的信息时代,Java成为互联网应用程序开发的主流语言,社会对Java程序员的需求越来越强烈。本书是作者多年程序设计教学和实际科研项目开发经验的总结。全书以实用新颖为主要目标,全面、系统地介绍了如何使用Sun公司的标准版开发工具JDK6来开发Java应用程序。作者使用设计精巧的实例,形象生动地说明基本的程序设计思想、概念和技术方法,使初学者能够很快地掌握相关的概念。即使是有经验的程序员也可以从新的角度来认识这些概念。本书对于学过或没有学过程序设计语言的读者都是适用的。对初次接触程序设计的读者,可以先在本书配套的网站上,查找有关程序设计的准备知识的内容介绍,练习网站提供的自测题,从而快速地入门。本书适合用作各类大学计算机专业和非计算机专业的程序设计基础课程教材,也适合用做Java就业培训班的基础教材。在配套网站上有参考的教学时数安排。通过本书的学习,可以达到以下三个培养目标:程序设计入门,领略什么是面向对象的程序设计;掌握程序设计方法,领会面向对象程序设计;了解Java语言的特性,掌握利用Java语言开发应用程序的方法.本教程的内容分成三大部分:第1章至第10章是基础部分,着重介绍程序设计语言的基础知识与面向对象技术的基本思想,包括1.程序设计语言的基本知识,包括程序和程序设计的基本概念、程序的基本数据类型、基本控制结构、方法、复合数据类型.2.面向对象程序设计的基本思想,包括类与对象、继承与多态、接口与程序包,这些章节贯穿面向对象编程的基本思想,包括封装与信息隐藏、继承聚合与软件重用、多态与表示独立性等.第11章至第15章是提高部分,针对Java语言的特点,介绍能体现Java语言优势的一些高级编程内容,这些内容可为程序员开发大型应用程序打下良好的基础。1基本数据结构,通过这一章的学习,可增强程序中组织和管理大批量数据的能力2文件和流通过这一章的学习,了解电脑与外界交换数据的抽象概念,为以后实现通用输入/输出打下基础。3多线程与并发了解线程、同步、调度的概念4软件项目与团队合作了解软件项目的管理,了解ant、Log、Junit等主要的项目开发管理工具。本书的特点1基础部分以面向对象程序设计的基本概念为导向,从程序设计的最基本概念开始,介绍基本数据类型与控制结构,并逐步过渡到讨论方法、类、继承、多态、异常处理等复杂机制,循序渐进、深入浅出地引导读者步入面向对象程序设计的大门。在这部分的编写过程中,我们强调理清基本概念,把握程序设计思想的精髓,从而为后续的学习打下扎实的基础。2把类和对象的概念,提前到控制结构前介绍。这是因为现在Java课程的教学学期越来越提前,许多学校在大一就开设本课程。因此,先介绍类和对象,再介绍控制结构,可以避免结构化程序设计思想的先入为主,充分理解面向对象方法论的灵魂。3强调应用性。力求帮助读者使用面向对象编程方法,编写一定规模的程序。书中所选用的实例和章节后安排的习题,力求覆盖Java认证和实践项目最常接触到的领域。4每章的正文中还使用特别的字体穿插了一些注意、启示、思考等,促进读者的思维。5将Java的图形用户接口提到比较重要的位置,并穿插在各章节中介绍。许多教材都认为GUI开发只是Java的某个扩展功能,一般用较少的篇幅。但我们在实践中发现,如今基于Java的GUI应用越来越广泛。另外,编写GUI程序,对增强读者的编程兴趣,深入了解面向对象、事件驱动等设计原理,有非常好的作用,因此本书用了一定的篇幅介绍GUI,并基本上分布在各章中,使得读者能从实例中潜移默化地掌握这一重要的编程内容。目录第1章程序设计入门现今的社会科技发达,计算机的使用已经非常普遍,其应用也不仅仅局限于刚发明时的科研和高精密度的工作,而是融入了我们日常生活的方方面面。通过本书,您将学会如何命令计算机去做这些工作。计算机(通常被称为硬件)是由软件(也就是您或者您的同行所编写的指令,用来命令计算机去执行动作和做出判断)来控制的。学习编程是一条充满挑战且回报丰厚的旅途,我们期望您能够在学习过程中获得享受。1.1硬件和软件计算机是能够执行运算和做出逻辑判断的设备,其速度比人类的速度要快数百万(甚至数十亿)倍。而且有趣的是,计算机虽然算得飞快,但它却只能做一种运算,也就是加法。如果您是计算机专业的学生,在后面的课程里会学到,减法是靠转换成特殊的加法来实现的,乘法呢就是不断地加,除法自然就是不断地减了。计算机和计算器的主要区别就是,计算机在一系列指令的控制下处理数据,这些指令就是计算机程序。计算机程序通过一系列认为指定的有序动作来控制计算机,设计这些程序的人就被称为程序员。由于程序本身更像是一部电影的剧本或者情节,所以人们把它和可见的计算机的实物(硬件)相对应,称为软件。近年来,计算机(硬件)的价格一直在惊人地下降,然而,软件开发费用却一直在上升。这是因为用于软件开发的技术并没有显著的提高,而程序员却被要求开发出功能更加强大而且更加复杂的应用程序。从某些方面来说,Java语言的产生,正是为了适应这一潮流,努力减轻程序员的负担。1.2计算机程序开发1.2.1程序设计语言语言是人类创造的工具,它用来表达意思,交流思想。程序设计语言(programminglanguage)是人类与计算机交流的工具。人们用程序设计语言描述需要解决的问题,用“编译器”(您可以先把它理解成人类和计算机之间的一个翻译)加工以使计算机理解人类的描述,然后使计算机代替人们工作。重要的是,人类的语言带有激越的情感,词汇丰富、语法优雅,适合在具有灵性知觉的人们之间相互交流。程序设计语言则要刻板的多,软件刚开始发展的时候,几乎就是数学公式的翻版(有个语言叫FORTRAN,它的名字来自FORmulaTRANslate,意思就是“公式翻译”),不过Java在这方面要比它的前辈们好很多,至少不是数学公式的翻版了。但由于编程语言的最终目的是教计算机怎样工作,因此它和我们平时使用的“自然语言”还是有很大的区别。计算机刚发明的时候,用计算机的人,也就是造计算机的那些专家,因此专家们对机器非常非常熟悉,他们直接用0和1的序列作为机器指令来编程,难写难读(你可以想象一下面对成百上千个0和1的组合)。即使是专家,时间一长也受不了。为了方便编程,专家们用名字来代替0和1的序列所规定的操作与数据,这个被称为汇编语言。用汇编语言编程,虽然相对地提高了编程的效率,但仍然不够直观方便,还是只适合于很少一部分专业人士使用。随着计算机的不断普及,能够带来编程方便的各种用途的高级语言相继诞生。在高级语言中,单个语句就能够实现基本任务。采用高级语言编写的程序,看上去和日常英语有很多相似的地方,而且高级语言通过编译器转换成机器语言,这使得更多的人士(而不是计算机的制造者)也加入到程序开发的队伍,使软件成为一个发展突飞猛进的产业。计算机上的机器指令也称为机器代码,它是机器语言的程序。机器语言是低级语言,汇编语言是机器语言的直接符号表示,所以基本上也是低级语言。而Java则是高级语言,例如,我们用Java写一个表达式:a=3*a-2*b+1;//含义是计算3a-2b+1,然后赋值给a写成某个特定机器的汇编语言和机器语言则为:MOVEAX,DWORDPTRa_$[EBP]8b45fcLEAEAX,DWORDPTR[EAX+EAX*2]8d0440MOVECX,DWORDPTRb_$[EBP]8b4df8ADDECX,ECX03c9SUBEAX,ECX2bc1INCEAX40MOVDWORDPTRa_$[EBP],EAX8945fc上列语句中的右边为某个机器的机器代码,我们用16进制来表示了,如果用0和1来表示的话,第一行的“8b45fc”要写成“100010110100010111111100”。显然,对于刚涉足编程学习的人来说,几乎是在看天书(更麻烦的是,如果我们换一种型号的机器,则各个指令又要重新学习!),而看上面的Java语句,则大致能知道计算的内容。在Java语句中,我们可以只需关注数值和运算,无须关心具体的实现。程序语言越低级,则必须对计算过程描述的越具体,指令也就越接近机器的硬件电路。相反,程序语言越高级,就越接近对问题的描述和表达,因而更直观,更容易被人类所理解。这就是所以“低级”和“高级”语言这两个名字的由来,并不是说有种语言比另外的语言更优越,所谓的“高级”语言,最后还是自动转化成机器的具体实现,并在机器上执行的。用编程语言编写完了程序,之后就要翻译成机器代码,以便让计算机运行获得结果。翻译的方式一般由两种,一种是解释型,也就是边读程序边翻译,翻译成机器代码后就执行。另一种是编译型,它是先整篇翻译成机器代码,保存在可执行文件中,然后启动该程序文件,运行获得结果。程序设计语言发展到现在,无论是编译型还是解释型,一般都附带提供一个集成开发环境(IntegratedDevelopmentEnvironment,IDE)。在解释型环境中,编辑代码后,可以保存程序文件,可以直接运行获得结果。没有编译和链接的中间环节,方便编程开发。但由于程序运行不能离开解释器,需要不断与之交互,所以,效率上会受到影响。相应的,我们也可以想到,作为“高级语言”到“低级语言”的转换器,编译器的作用至关重要,而Java的编译器则更加复杂,编译器在将Java语言转换成机器语言的过程中,先会把Java语言转换成一种称为“字节码(bytecode)”的中间语言。这主要是因为Java需要实现“一次编写、处处运行”的编程思想,关于这一点,我们在后续的章节里再描述。1.2.2程序的执行过程计算机解题的过程,通常是这样。通过输入设备把程序和原始数据按指定地址送入存储器保存,然后启动计算机,计算机按照存入的顺序依次取出存储器中的指令送入控制器分析,控制器根据分析结果发出相应的控制命令,从而按照人的意图自动完成全部运算,最后在通过输出设备输出计算结果。在运算过程中,数据从存储器取入运算其进行运算,运算的中间结果和最后结果可存入存储器保存,也可由运算器通过输出设备输出。虽然大大小小的计算机的处理能力差别很大,但程序的执行过程都是一样的。从上面的步骤我们可以看到,要让计算机准确地执行特定的任务,必须详细准确地描述解题的过程。也就是说,当人们用程序语言表达自己意图指挥计算机工作时,必须向计算机详细说明怎样完成预定的功能:第一步做什么、第二步做什么、第三步做什么……哪些操作按程序书写的顺序只做一遍,哪些操作重复做多少遍,为了让计算机体现出“智能”,还需要告诉计算机哪些操作在某个条件成立时做,等等。早期的计算机,主要的作用就是“计算”,比如发明第一台计算机的目的,就是为了能根据复杂的物理公式,计算弹道导弹的运行轨迹。程序设计工作主要围绕设计解题过程来进行,因此这种程序设计方法称为面向过程的程序设计,程序设计语言也被称为过程性语言。使用过程性语言编写的程序,其功能隐含在程序代码中。为了搞清楚程序的功能,必须反复阅读程序,仔细分析程序的每个语句,根据该程序设计语言的语法确定语句的执行车程序,并要综合每个语句的语义及执行顺序才能推断出程序的功能。因此,理解面向过程的程序比较困难。1.2.3面向对象的程序设计随着计算机的普及,用计算机进行“计算”的工作所占的比重越来越少,相反,计算机更多地被用来进行文字处理、图形设计等。用术语来讲,就是“非数值计算”类的应用越来越多,以至于人们更习惯称计算机为“电脑”。在这些应用里面,程序的规模十分庞大(你可以算算装一个MicrosoftOffice占了你多大的硬盘),包含的语句也很多,程序模块之间的相互关系也十分复杂。对这类程序,如果仍然采用面向过程的程序设计方法开发,需要耗费大量的人力物力,即使开发完成,维护起来也十分困难。(所谓维护,就是软件交付后,由于种种原因,还需要对软件进行修改)。基于这类应用的需求,出现了面向对象的编程方法,并逐渐在程序设计界占了上风。面向对象(Object-Oriented
本文标题:Java程序设计教程1-6
链接地址:https://www.777doc.com/doc-2878860 .html