java语言程序设计基础篇(第八版)精_完整版ppt课件_第1页
java语言程序设计基础篇(第八版)精_完整版ppt课件_第2页
java语言程序设计基础篇(第八版)精_完整版ppt课件_第3页
java语言程序设计基础篇(第八版)精_完整版ppt课件_第4页
java语言程序设计基础篇(第八版)精_完整版ppt课件_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计,第1章java概述,.,2,学习目标,1.了解计算机的组成及运行原理,了解简单机器语言程序的执行特征;2.理解汇编语言指令与机器语言指令的关系,理解高级语言与汇编语言的关系,理解编译程序或编译器的功能与作用,初步理解掌握执行程序的过程;3.了解高级语言发展简史;初步理解操作系统、客户/服务器以及Internet和WWW的基本概念。,.,3,学习目标,4.了解Java语言的特点,理解Java程序上机执行过程,掌握简单的Java应用程序和Javaapplet程序的基本结构,能上机执行Java应用程序和Javaapplet程序;能初步使用格式化输入输出语句。5.初步理解对象和类的概念,掌握表示它们的UML图形符号。,.,4,内容摘要,1.1计算机、Internet和WWW1.2Java语言1.3Java程序1.4对象与统一建模语言UML,.,5,内容摘要,1.1计算机、Internet和WWW1.2Java语言1.3Java程序1.4对象与统一建模语言UML,.,6,1.1计算机、Internet和WWW,Java语言是当今最为成功的计算机高级语言之一,是开发互联网应用的重要语言。它是富有经验的程序员或计算机及其相关专业的学生不能不学习的语言,事实上,它是许多各类学校计算机及其相关专业学生的一门课程。通过对它的学习,学生将熟悉面向对象程序设计基本知识和基本技能,并积累面向对象编程经验,掌握当流行的应用程序开发技术,而这正是Java语言程序设计教材主要目的之一。本章是学习Java语言程序设计的一个简短入门。,.,7,1.1.1计算机的组成与运行,我们操作过计算机的人都知道,计算机就是一种设备,它能让我们进行文字处理,绘制图形,玩游戏,听音乐,制作动画,上网查询信息和观看网络电影,等等。这是从计算机应用角度上的认识,实际上,计算机是能够以比人快几百万甚至几十亿倍的速度执行计算和逻辑判断的设备。这种说法可能让人感到有点神奇甚至迷惑:,.,8,1.1.1计算机的组成与运行,“文字处理、绘制图形、玩游戏、制作动画、听音乐、上网查询信息和观看网络电影等”是怎样与“执行计算和逻辑判断”联系起来呢?实际上,我们使用的计算机即计算机系统包含两大部分,一是硬件本身,它包括键盘、鼠标、显示器、磁盘和主机(箱)等;另一是软件。,.,9,1.1.1计算机的组成与运行,计算机硬件本身提供了执行计算和逻辑判断的功能,这些功能表现为一组指令,如加法指令、减法指令、取数指令、存数指令、输入指令和输出指令以及逻辑判断类指令等;而软件是程序员利用计算机指令集,规划组织完成令我们激动的玩游戏、听音乐和制作动画等计算机应用的特定指令序列。软件也可简称为程序。实际上,,.,10,1.1.1计算机的组成与运行,软件与程序是不等价的,简单说,软件=程序+相关文档资料。计算机硬件是在程序的指令集控制下处理数据的。计算机程序控制着计算机,使它按顺序执行一系列动作,这些动作是由程序员规划的,并用指令描述的。各种计算机无论外观差别有多大,每一台计算机实际上都可划分为五个逻辑单元(或称五大部分),如图1-1所示。,.,11,.,12,1.1.1计算机的组成与运行,1)输入单元。输入单元是计算机接收信息的部分。它从各种输入设备读取信息(数据和计算机程序),并把这些放置到其它处理信息的单元中。当今计算机的大多数信息是通过键盘输入的,但也逐渐出现使用其它许多输入设备来进行信息输入,如扫描仪、声音输入设备等。,.,13,1.1.1计算机的组成与运行,2)输出单元。输出单元是计算机输出信息的部分。它把计算机处理过的信息放置到各种输出设备中,从而使这些信息能够被计算机外部使用。当今计算机的大多数信息是通过屏幕显示和纸张打印输出的,同时也出现使用其它许多输出设备来进行信息输出,如音箱等。,.,14,1.1.1计算机的组成与运行,3)内存单元。内存单元是计算机中存取速度快、容量相对较少的储存部分。它能够记忆来自输入单元的信息,因而能够在需要的时候立即处理这些信息。内存单元还能够记忆被处理过的信息,直到输出单元把信息放到输出设备上。内存单元经常被称为内存或主存。内存在计算机电源关闭后将不起作用。,.,15,1.1.1计算机的组成与运行,4)中央处理单元(CPU)。中央处理单元是计算机中的“加工”和“管理”部分。它负责执行各种计算如加、减、乘、除等,负责逻辑判断如比较内存中的两个数是否相等,这部分又称为运算器。同时,它还是计算机的协调者,负责管理对其它部分的操作,这部分又称为控制器。在应该把信息读到内存单元中时,CPU就会向输入设备发出请求;,.,16,1.1.1计算机的组成与运行,当要把内存中信息用于计算时,CPU会把这种请求通知其内部的运算器;当要把内存中的信息发送给某个输出设备时,CPU就会告诉输出设备。5)二级存储单元。二级存储单元是计算机中可以长久保存信息的高容量存储部分。没有被其它单元使用的程序和数据通常放在二级存储单元中(如磁盘),,.,17,1.1.1计算机的组成与运行,这些信息可能需要几个小时、几天、几个月甚至几年才会被使用。二级存储单元也称为外存储器,外存或称为辅存。计算机运行的过程,就是顺次执行程序中指令的过程。计算机的指令以及运行时数据都是采用二进制数表示的。下面举一个简单的例子说明计算机的运行。,.,18,1.1.1计算机的组成与运行,例1.1设计一个程序,其运行后接受用户输入的两个数,然后计算其平均值,并输出结果。解答:解决问题的过程为:1)输入两个数存放于变量a和b中;2)计算(a+b)/2,并将其结果存储于变量X中;3)输出X中的值;,.,19,1.1.1计算机的组成与运行,当用计算机的指令来完成上述过程时,需要考虑到计算机的具体特性,如计算机中没有变量,而是用存储单元来表示等。完成上述过程的指令序列及其运行时在内存的存储布局如图1-2所示。,.,20,.,21,1.1.1计算机的组成与运行,例子说明:每8位二进制数称为一个字节(Byte),每一条指令用若干个字节的二进制代码表示,并存储到内存单元中。最小内存单元为1个字节,它必须用一个编号来表示,这个编号称为单元地址。在图1-2中我们并没有把每个单元的地址标出来,只标出每条指令代码存储的起始单元的地址。,.,22,1.1.1计算机的组成与运行,图1-2中的开始三个字节存储单元分别表示变量a、b和X,用于存储它们的值。其它存储单元用于存储指令,这些指令的含义解释如下。第一条指令用2个字节数据“1000011001100000”表示CPU从输入设备读进一个数(a)并放置到寄存器AL中。,.,23,1.1.1计算机的组成与运行,第二条指令用3个字节数据“101000100000010000000000”表示CPU把寄存器AL中数放置到内存中地址编号为00000100的存储单元(1个字节)中保存。其中第3个字节数据和第2个字节数据合成一个16位二进制数据(即0000000000000100),表示存储单元(a)的地址。,.,24,1.1.1计算机的组成与运行,第三条指令用2个字节数据“1000011001100000”表示CPU从输入设备读进一个数(b)并放置到寄存器AL中;第四条指令用3个字节数据“101000100000010100000000”表示CPU把寄存器AL中数放置到内存中地址编号为00000101的存储单元(1个字节)中保存。其中第3个字节数据和第2个字节数据合成一个16位二进制数据(即,.,25,1.1.1计算机的组成与运行,即0000000000000101),表示存储单元(b)的地址。第五条指令用3个字节数据“101000000000010000000000”表示CPU从内存中地址编号为00000100的存储单元读进1个字节数据(a)并放置到AL寄存器中。,.,26,1.1.1计算机的组成与运行,第六条指令用4个字节数据“00000000110000000000010100000000”表示CPU把内存中地址编号为00000101存储单元的数据(b)加到AL寄存器中。第七条指令用2个字节数据“1011000100000010”表示CPU把数00000010即2存储到CL寄存器中。,.,27,1.1.1计算机的组成与运行,第八条指令用2个字节数据“1111011011110001”表示CPU用CL中数支除AL寄存器中数,其结果存储在AL寄存器中。第九条指令用3个字节数据“101000100000011000000000”表示CPU把寄存器AL中数传送到内存中地址编号为00000110的存储单元(X)中保存;,.,28,1.1.1计算机的组成与运行,第十条指令用3个字节数据“101110101101010100000011”表示CPU把数0000001111010101即03D5H(十六进制)存储到DX寄存器中;03D5H表示显示器的端口号。第十一条指令用1个字节数据“11101110”表示CPU把AL寄存器中数送到DX寄存器所指向的端口连接的设备即显示器。,.,29,1.1.1计算机的组成与运行,第十二条指令用1个字节数据“11110100”表示CPU停止执行指令。计算机的指令集也称为机器语言,上述的指令序列也称为机器语言程序。注意,该例子中用汉语描述计算过程时的每一步,在用机器语言描述时需要多条指令。,.,30,1.1.2机器语言、汇编语言和高级语言,机器语言就是计算机CPU的指令集合,用它表示的计算程序即机器语言程序可以直接由计算机执行。我们所谓的使用计算机,其它实质就是通过使用机器语言来完成计算任务,所以从这个角度上讲,机器语言就是机器的“代表”或“化身”。但机器语言程序难理解,因为机器指令是用二进制数据表示的。为了便于记忆、,.,31,1.1.2机器语言、汇编语言和高级语言,理解机器指令或机器语言程序,人们用字母符号来表示机器指令,这种字母符号一般用一个有意义单词的前几个字母组成,如ADD表示加法指令,MOV表示传送数据等等。符号化的指令称为汇编指令,汇编指令的集合称为汇编语言,用它表示的程序称为汇编语言程序。上节例子中的机器语言程序对应的汇编语言程序为下表右部分所示:,.,32,.,33,1.1.2机器语言、汇编语言和高级语言,将该汇编语言程序与上节机器语言程序比较,我们可以发现每一条汇编语言指令与每一条机器指令基本上是一一对应的。注意,该汇编语言程序中,方括号中的数表示存储单元地址,这个数前后加上方括号,表示以该数为地址的存储单元内容,如第2条汇编指令中,0100表示地址为00000100的存储单元(a),寄存器中的数(a)将被放置在其中;,.,34,1.1.2机器语言、汇编语言和高级语言,不加方括号的数表示一般数据,如第10条汇编指令中,03D5H表示16进制数值03D5,将被放置到寄存器DX中。汇编语言可以看作是机器语言的抽象,事实上,它是通过符号化机器代码来实现的。然而用汇编语言表示人类社会的计算,也不大方便和直观,如上例中的,.,35,1.1.2机器语言、汇编语言和高级语言,“MOVDX03D5H和OUTDXAL”是用于“输出数据”,这两者之间几乎看不出有什么直观的联系。于是出现了所谓的高级语言作为对汇编语言的抽象,使得指令更加“概念化”,以便更接近我们的自然语言层次。用高级语言表示的程序称为高级语言程序。Java语言就是一种高级语言,用它写出类似上述例子的程序是:,.,36,1.1.2机器语言、汇编语言和高级语言,1publicclassaverage2publicstaticvoidmain(Stringargs)3inta=12,b=34,c;4c=(a+b)/2;5System.out.println(“Theaverageis:”+c);67,.,37,1.1.2机器语言、汇编语言和高级语言,输出结果:Theaverageis:23程序说明:这里的Java程序由一个所谓的类构成,第1行是该类的开始,定义了名为average的类,第7行以来结束该类的定义。类一般包含多个方法,average类只含一个名为main的主方法,它由方法头部即,.,38,1.1.2机器语言、汇编语言和高级语言,第2行开始到第6行结束,其包含三句即第3、4、5行,其中第3行声明三个整型变量a、b和c,分别存放两个整数和它们的平均值。第4行计算出a和b的平均值,并存放到(赋值给)变量c中。第5行从屏幕上输出文字“Theaverageis:”和结果即c的值。注:上述java程序中,每行开始的数字不是程序中的部分,它是作者加上的,,.,39,1.1.2机器语言、汇编语言和高级语言,用来表示行号,以便解释每行程序时,指明是哪一行。可见,高级语言要比汇编语言容易理解和记忆,事实上,它的抽象程度比汇编语言的高,并且更“接近”我们人类的语言,如高级语言中的变量就是存储单元的抽象。注:这里每一句如c=(a+b)/2对应了完成相应计算的多条汇编语句。,.,40,1.1.2机器语言、汇编语言和高级语言,采用高级语言完成我们的计算任务,确实要比机器语言和汇编语言较自然和直观。但是,计算机毕竟只能执行机器指令,所以,当我们编写出高级语言程序后,还得将它转换成对应的机器语言程序,才能使计算机去执行计算。完成这种转换的过程称为程序翻译。程序翻译犹如是现实中的语言翻译,也,.,41,1.1.2机器语言、汇编语言和高级语言,有两种方式即“笔译”和“口译”。笔译就是一次完整地翻译并记录在纸上,然后可以复印多份,同时供多人阅读。而口译是在实际场景中,边讲边口头翻译,同样的话说两次,就得口译两次。显然。口译快,笔译慢;口译效率低,笔译效率高。,.,42,1.1.2机器语言、汇编语言和高级语言,对程序翻译而言,其“笔译”称为编译,其“口译”称为解释,并且编译和解释工作是由专门的程序来完成的,这种翻译程序分别称为编译程序和解释程序。在编译过程,被翻译的语言程序也称为源程序,相应地翻译结果称为目标程序,并且当源程序是汇编语言程序是,对应的翻译程序称为汇编程序,如图1-3所示。,.,43,1.1.2机器语言、汇编语言和高级语言,.,44,1.1.2机器语言、汇编语言和高级语言,注意:由上可以看出采用机器语言、汇编语言和高级语言分别表示同一个计算时,虽然它们采用的命令或语句的数目不相同,特征也各异,但它们所包含的内在计算步骤或过程是相同的。在后面我们将把这种“计算步骤或过程”称为算法。,.,45,1.1.3高级语言的发展简史,上个世纪50年代早期,开始出现符号化语言。格雷斯.霍帕(GraceHopper)领导一个小组开发了A-0语言,约翰.巴克斯为IBM701开发了加速代码。1955年以后,开始出现一系列高级语言。1955年到1957年间,巴克斯领导一个组开发了公式翻译语言,.,46,1.1.3高级语言的发展简史,ALGOrithmicLanguage,也即ALGOL语言。该语言具有几个不同的目标,即1、ALGOL语言的表示应该接近标准数学。2、ALGOL语言对于描述算法应该是有用的。3、用ALGOL语言编写的程序应该可编译为机器语言程序。,.,47,1.1.3高级语言的发展简史,4、ALGOL语言不局限于某一计算机的体系结构。正是ALGOL语言,引入了传递名字参数的过程调用概念,也是为了定义ALGOL语言,约翰.巴克斯和彼特.瑙尔给出了一种高级语言的语法描述方法,被称为巴克斯-瑙尔范式,或称为BNF。ALGOL语言后来又有了两次发展分别为ALGOL60和,.,48,1.1.3高级语言的发展简史,ALGOL68。ALGOL语言并没有在美国得到推广。FORTRAN语言和ALGOL语言都是基于数值计算的语言。在早期语言的研究与开发的基础上,各种各样的高级语言迅速发展起来,多达几万种,但得到广泛应用的也就是十几种。,.,49,.,50,.,51,1.1.4程序运行的过程,在前面,为了便于写出完成计算的程序,引入了高级语言,而用高级语言写程序确实要比用汇编语言和机器语言来得方便和直观,但由此也改变了我们运行程序的过程。一般地,运行一个高级语言程序需要经历三个步骤:第一就是要把源程序正确无误地输入到计算机内部,这一步称为编辑源程序,.,52,1.1.4程序运行的过程,并且是通过运行一个所谓的编辑程序来完成的;第二步就是运行编译程序,来把源程序翻译成目标程序;第三步就是运行该目标程序,完成特定的计算。如图1-4所示.,.,53,.,54,1.1.5操作系统,我们运行程序时,并不是简单地直接使用计算机硬件来进行,而是通过运行在计算机中的所谓操作系统来完成的。操作系统是计算机中最重要的程序,用来管理和控制计算机的活动。我们经常使用的Windows2000、XP或ME,就是一种常用的操作系统。没有操作系统,应用程序(如字处理程序、Internet浏览器等)就不能运行。硬件、操作系统、应用程序和用户之间的关系如图1-5所示。,.,55,.,56,1.1.5操作系统,1.控制和监督系统的活动操作系统要对系统的安全负责,要确保没有权限的用户不能访问系统,要确保系统信息不受到破坏,要确保合法的操作得到执行,还要确保不同程序和用户在同时使用计算机时不会相互干扰。操作系统不必须提供一些基本功能,如,识别键盘输入,向显示器发送输出,保存文件和目录,控制硬盘驱动器和打印机等。,.,57,1.1.5操作系统,2.分配系统资源操作系统负责确定程序需要使用哪些计算机资源(CPU、内存、磁盘、输入和输出设备),并进行资源分配以便运行程序;程序结束时还要回收资源。3.安排操作的顺序操作系统还要负责安排和确定程序的执行顺序,以便有效地利用资源。为了增强系统的性能,目前许多操作系统支持多道程序设计、多线程和多处理技术。,.,58,1.1.5操作系统,多道程序设计允许多个程序同时运行,共享CPU。例如,Web浏览器下载文件的同时,我们可以用字处理程序来编辑文件。线程是程序中可同时运行的基本单。多线程允许一个程序内部同时有多个“子程序”并发处理,即可以同时运行。例如,Word字处理程序允许用户编辑文字的同时将其保存到文件中。这里编辑和保存就是同一个应用程序中的两个不同任务。多处理也称为并行处理,是指用两个或多个处理器一起执行同一任务。,.,59,1.1.6客户/服务器,客户/服务器是网络系统中应用广泛的一种技术,它的用法有点混乱。客户/服务器有两种用法:一种用来指网络上作为提供信息共享服务的计算机和用户用来查询浏览网络上信息的计算机,前者称为服务器计算机或简称为服务器,后者称为客户计算机或简称为客户机。,.,60,1.1.6客户/服务器,另一种用法是指运行中的程序(进程或线程)之间的关系的处理方式,本书下面开始都是指的这种用法。当一个程序在某一时刻向另一个程序提出请求服务时,则提出请求服务的程序称为客户,而提供服务的程序称为服务器。例如,我们通过Internet浏览器上网查询网络信息时,它就是一个客户程序,而提供信息的Web就是服务器。,.,61,1.1.6客户/服务器,客户与服务器的关系并不是一成不变的,它们是一种相对的关系。在某一时刻是服务器的程序,在另一时刻就有可能成为客户程序。,.,62,1.1.7Internet和WWW,Internet互联网络是上世纪60年代以来,由美国国防部投资开发的。最初只是联接大约十几所大学和研究机构的主要计算机系统。今天,联入Internet的计算机数量已达几亿台。WWW(TheWorldWideWeb)是Internet互联网络上一种最广泛的应用技术或应用形式,它使Internet互联网络上的用户从世界各地访问多媒,.,63,1.1.7Internet和WWW,体电子信息宝库。可以使用WWW查找和查看所有主题的基于多媒体的文档,可以预定旅馆的房间、购买飞机票、注册学习课程、下载各种资料、与朋友聊天、观看电影、收听实况直播等等。,.,64,内容摘要,1.1计算机、Internet和WWW1.2Java语言1.3Java程序1.4对象与统一建模语言UML,.,65,1.2Java语言,Java是功能齐全的能用程序设计语言,可以开发可靠的、要求严格的应用程序。Java不仅可以开发Web应用程序,而且还可以开发跨平台的独立应用程序,这些程序用于服务器、台式机、移动设备等。,.,66,1.2.1Java语言的特点,Java具有许多诱人的特点。这些特点正如Sun公司在Java语言白皮书开始处所说,包括Java是简单的、面向对象的、分布式的、解释型的、健壮的、安全的、结构中立的、可移植的、高效的、多线程的以及动态的等。1.Java是简单的任何一门计算机语言都不是简单的,,.,67,1.2.1Java语言的特点,因为他们都具有进行程序设计所需要的基本功能和基本成份,需要完成常规程序设计。但是与程序设计语言C+相比,Java要显得简单一些。Java部分地模仿了C+,但是进行了极大的简化和改进。例如,C+中的指针和多重继续常常使程序复杂化,而Java丢弃了指针,并使用一种所谓接口(interface)的简单概念代替了多重继续。,.,68,1.2.1Java语言的特点,C+要求程序员自己去进行内存的分配与回收,而Java采用自动内存分配与回收。另外,Java比C+具有更少的语言概念,而功能却更强大。2.Java是面向对象的Java一开始就设计为完全面向对象的,即Java天生就是面向对象的。而许多面向对象语言如C+,包含了面向过程的特征。,.,69,1.2.1Java语言的特点,所谓面向过程,指程序是按照问题解决的既定过程设计而的,它在的运行过程完全符合问题解决的既定过程,这就要求设计过程中必须按照(规定的)解决问题过程来进行,即通过把问题分解为若干小问题来进行求解,也即进行所谓的功能分解。这样,设计出来的程序是由一些功能模块构成,.,70,1.2.1Java语言的特点,(这种“功能模块”在C语言中称为函数),如图1-5所示,该程序是用于计算规则图形面积,它被分解为四个功能模块。,.,71,1.2.1Java语言的特点,而面向对象是指程序是由对象构成的,这种对象是问题中事物的抽象,它包含数据字段和方法;数据字段和方法分别用来表征事物的属性和行为。面向对象还提供了对象的继承和多态性,这用来反映事物之间的关系。面向对象是对现实世界中事物及其关系的一种自然的反映,因而,它便于反映现实世界的变化,并且对付这种变化付出的代价要比面向过程技术小得多。,.,72,1.2.1Java语言的特点,作为面向对象的Java,它提供了封装、继承和多态性,这使得它具有了极大的灵活性、模块性、透明性和可重用性。其中的重用性使我们可以重用代码。3.Java是分布式的分布式计算是网络上的一种高级应用形式,它使网络上的多台计算机整合为一个整体(好象一台计算机一样),,.,73,1.2.1Java语言的特点,透明地完成用户提交的工作。Java的设计使分布式计算变得容易起来,由于Java一开始就设计了网络工作能力,因而编写网络程序如同在文件中存取数一起。4.Java是解释型的Java程序运行前需要编译成一种所谓Java虚拟机(JavaVirtualMachine,JVM)编码,这种编码称,.,74,1.2.1Java语言的特点,为字节码(bytecode)。字节码独立于具体的计算机,运行时需要Java解释器来把它转换成本地计算机代码予以完成,所以它能在任何具有Java解释器的机器上运行。如图1-6所示是Java程序、Java字节码、Java虚拟机和计算机的关系。,.,75,.,76,1.2.1Java语言的特点,大多数高级语言的编译器都把程序编译成机器代码,这种机器代码只能在本地计算机上运行,如果要在其他计算机上运行,还得在这些计算机上重新编译。使用Java,只需要编译一次,其编译而成的字节码即可以在任何具有Java解释器的平台上运行。5.Java是健壮的任何一门程序设计语言都不能是绝对,.,77,1.2.1Java语言的特点,可靠的,其编制的程序都有可能发生这样或那样的错误。所谓健壮的就指避免错误和处理错误的能力较强。Java丢弃了其他语言中容易引起错误的某些程序概念类型,例如,它不支持指针,从而避免了重写内存而造成的数据破坏的可能性。另一方面,Java具有实时异常处理的功能,该特点有助于提高程序的健壮性。Java强,.,78,1.2.1Java语言的特点,制程序员编写处理异常的代码,所以它能够捕获并响应意外情况,从而发生实时错误时程序能够继续正常执行错误处理代码,稳妥地结束。5.Java是安全的Java一开始就是用于Internet程序设计而出现的,网络和分布式环境是它的主要用途之一。所以,Java在安全上进行了精心的考虑,它执行多层安,.,79,1.2.1Java语言的特点,全机制用以保护系统不受到恶意地破坏,从而使用户在下载并运行一个Javaapplet(一种特殊的Java程序,它需要下载到本地计算机Internet浏览器中运行)时,它不会损害本地的系统。安全性的前提是什么也不能信任。6.Java是结构中立的Java是解释型的,这一特点使得Java,.,80,1.2.1Java语言的特点,成为结构中立的(architecture-neutral),即Java是平台无关的。得用Java虚拟机,我们可编写任何平台上都能运行的程序。7.Java是可移植的Java是结构中立的,因而Java程序是可移埴的,它不必重新编译就能在任何平台上运行。Java在不同平台上运行时,用户不用担心数值的最大长度,.,81,1.2.1Java语言的特点,和精度会发生变化。8.Java是高效的9.Java是多线程的多线程使得一个程序可以同时执行多个任务成为可能,因而它被广泛应用于图形用户界面(GraphicsUserInterface,GUI)和网络程序设计中。在GUI程序设计中,有许多任务需要同时进行,如播放音乐、浏览网,.,82,1.2.1Java语言的特点,页等。在网络程序设计中,一个服务器可能同时为多个客户服务,如多台计算机上的浏览器同时向一台WWW服务器请求网页信息时,就需要服务器有多个线程分别响应它们的要求。一般而言,使用多线程必须调用操作系统特定的过程才能实现,但Java语言却平衡地集成了多线程程序设计技术,简化了程序员的编程难。,.,83,1.2.1Java语言的特点,10.Java是动态的Java是为适应变化的环境而设计的,不用重新编译就可以在不知不觉中装入新类。既不需要开发者创建新的软件版本,也不需要用户重新安装,必要时,新特征就可以透明地并入。,.,84,1.2.2Java环境与工具,Java环境由Java应用编程接口(API)和Java虚拟机(JVM)构成。Java应用编程接口是已编译的可在我们的程序中使用的代码库或预定义类库。它们使我们能够添加现成的可定制的功能,以节约编程时间。Java虚拟机是用来解释执行我们的Java程序。,.,85,1.2.2Java环境与工具,Java工具是给我们编写和运行Java程序提供支持的一组程序,它的主要功能就是编译Java程序。为了构建Java环境,Sun公司提供了Java系统,该系统目前已支持1998年公布的Java2平台,主要的有三种即Java2标准版(Java2StandardEdition,J2SE)、,.,86,1.2.2Java环境与工具,Java2企业版(Java2EnterpriseEdition,J2EE)以及Java2微型版(Java2MicroEdition,J2ME)。其中J2SE主要用来开发客户端独立的Java应用程序和Javaapplet程序,J2EE主要用来开发服务端的应用程序如JavaServlets和JavaSeverPage。J2ME主要用来开发移动设备编程。本书主要以,.,87,1.2.2Java环境与工具,J2SE5.0版为主。Java工具都是由一些独立的程序构成,它们都是从命令行运行的,例如,javac用来编译Java源程序,java用来解释执行已编译的Java程序。为了方便程序员编程,多家公司已经提供了快速集成开发环境IDE(IntegratedDevelopmentEnviroment),它们把编辑、编译、,.,88,1.2.2Java环境与工具,链接、调试和在线帮助都集成在一个图形窗口中。只需要在一个窗口中输入源程序或打开已有的程序文件,点击按钮、菜单或者使用功能键就可以编译源程序。主要的Java集成开发工具有:Sun公司的NetBeansOpenSource(),.,89,1.2.2Java环境与工具,Borland公司的Jbuilder()IBM公司的EclipseOpenSource()本书将使用NetBeans集成开发工具。,.,90,1.2.3Java程序及其运行过程,一般地,运行一个Java程序需要经历三个步骤:第一就是要把源程序正确无误地输入到计算机内部,并存放在.java文件中,这一步称为编辑源程序,并且是通过运行一个所谓的编辑程序来完成的;第二步就是运行编译程序,来把源程,.,91,1.2.3Java程序及其运行过程,序翻译成一种Java虚拟机的字节码,并存放在.class文件中;第三步就是解释执行该字节码,完成特定的计算。如图1-7所示Java语言程序运行过程。,.,92,.,93,内容摘要,1.1计算机、Internet和WWW1.2Java语言1.3Java程序1.4对象与统一建模语言UML,.,94,1.3Java程序,Java是一个成熟且功能强大的语言,可用于多种用途。本节介绍两种Java程序,即Java应用程序(JavaApplication)和Javaapplet程序。,.,95,1.3.1简单Java应用程序的基本结构,Java应用程序是由一个或多个所谓的类(class)构成的,其中至少有一个类需要使用public来声明。我们在本节只看最简单的Java应用程序,它由一个类构成。先看一个例子。例1.2给出一个Java应用程序,它把指定两个数的平均值显示在屏幕上。解答:完成该问题的程序前面曾给出过,这里重新给,并配上注释。,.,96,1.3.1简单Java应用程序的基本结构,1/本程序计算两个数的平均值2publicclassaverage34publicstaticvoidmain(Stringargs)56inta=12,b=34,c;7c=(a+b)/2;,.,97,1.3.1简单Java应用程序的基本结构,8System.out.println(“Theaverageis:”+c);910例子说明:该程序由一个类构成,该类由两个部分构成,第一部分是类头,由第2行给出,它用class声明从本处开始的是一个类,用public声明该类是公共的,并,.,98,1.3.1简单Java应用程序的基本结构,给出了本类的类名为average;类的第二部分称为类体,由第3行到第10行构成,它以“”开始且以“”结束,中间部分是由方法构成。该类包含一个称为main的方法(第4行至第9行)。在这个程序中main方法包含有三条语句,语句使用分号(;)结束,其中第6行是一条声明语句,使用int声明三个整型变量a、,.,99,1.3.1简单Java应用程序的基本结构,b和c,且初始化a和b为12和34;第7行计算a和b的平均值,并将计算结果赋值给(存放到)变量c;第8行是System.out.println语句,它在屏幕上输出“Theaverageis:”+c的结果,这里“Theaverageis:”是一个字符串,通过加号(+)把它与变量c的值合并成一个新的串作为结果输出。该程序的第1行是注释行,由/开始,.,100,1.3.1简单Java应用程序的基本结构,后跟注释的文字。注释并不是程序的一部分,它只起到说明的作用,以便使程序可读性强,编译程序在编译源程序时会去除注释,不会编译它的。注:上述程序必须存放到.java文件中,且文件名必须与类同名,即上述程序文件为average.java。注:这里的方法为什么使用main作为名,为什么要这样定义,等等,,.,101,1.3.1简单Java应用程序的基本结构,这些问题留待后续章节回答,现在我们只能暂且接受这些。由上述例子我们可以给出简单Java应用程序的结构为:,.,102,1.3.1简单Java应用程序的基本结构,在图1-8中,由符号“”括起来的部分,如,表示在具体程序中由用户自己根据实际情况给出。,.,103,1.3.2Java应用程序的执行,Java应用程序的执行过程分为三步,即第一步使用编辑程序输入源程序,并存放到.java文件中,该文件名与源程序中的public类同名;第二步使用javac编译源程序,编译结果即字节码存放到.class文件中,该文件与源程序文件同名;,.,104,1.3.2Java应用程序的执行,第三步使用java解释执行.class文件。这样执行例1.2程序的过程是,首先可以使用任一编辑程序,如微软的记事本,输入源程序并存放到average.java文件中;然后,键入如下命令进行编译:javacaverage.java,.,105,1.3.2Java应用程序的执行,最后,输入如下命令进行解释执行:javaaverage注:要使上述后两步过程顺利进行,则进入命令窗口后,就使用path命令设置搜索路径到Java系统目录。例如,如果Java系统安装到C:ProgramFilesJavajdk1.5.0_06中,,.,106,1.3.2Java应用程序的执行,则path命令为:pathC:ProgramFilesJavajdk1.5.0_06bin,.,107,1.3.3简单Javaapplet程序的基本结构,Javaapplet程序是一种小程序,它应用于网页之中,由Internet浏览器执行。Javaapplet程序与Java应用程序在结构上有一定差别。我们先看一个例子。例1.3给出一个Javaapplet程序,它把指定两个数的平均值显示在屏幕上。,.,108,1.3.3简单Javaapplet程序的基本结构,解答:完成该问题的Javaapplet程序如下。1/本程序计算两个数的平均值2importjava.awt.Graphics;/导入类Graphics3importjavax.swing.JApplet;/导入类JApplet4publicclassaverage_appletextendsJApplet5,.,109,1.3.3简单Javaapplet程序的基本结构,6publicvoidpaint(Graphicsg)78inta=12,b=34,c;9c=(a+b)/2;10super.paint(g);11g.drawString(“Theaverageis:”+c,25,25);1213,.,110,1.3.3简单Javaapplet程序的基本结构,例子说明:该Javaapplet程序由一个类构成,该类由两个部分构成,第一部分是类头,由第4行给出,它用class声明从本处开始的是一个类,用public声明该类是公共的,用extends声明本类由类JApplet派生,即本类从类JApplet中继承了它的框架,并给出了本类的类名为average_applet;类的第二部分称为,.,111,1.3.3简单Javaapplet程序的基本结构,类体,由第5行到第13行构成,它以“”开始且以“”结束,中间部分是由方法构成。该程序开始处有两条导入语句(import)即第2、3行,它们分别从java.awt库和javax.swing库中导入类Graphics和类JApplet,这Javaapplet程序必须有的。,.,112,1.3.3简单Javaapplet程序的基本结构,该类包含一个称为paint的方法(第6行至第12行)。在这个程序中paint方法包含有四条语句,语句使用分号(;)结束,其中第8行是一条声明语句,使用int声明三个整型变量a、b和c,且初始化a和b为12和34;第9行计算a和b的平均值,并将计算结果赋值给(存放到)变量c;第10行是调用JApplet类中的paint方法,,.,113,1.3.3简单Javaapplet程序的基本结构,初始化图形对象g,为输出作准备;第11行是g.drawString语句,它在屏幕窗口上(25,25)处输出“Theaverageis:”+c的结果,这里“Theaverageis:”是一个字符串,通过加号(+)把它与变量c的值合并成一个新的串作为结果输出。该程序的第1行是注释行,由/开始后跟注释的文字。注释并不是程序的,.,114,1.3.3简单Javaapplet程序的基本结构,一部分,它只起到说明的作用,以便使程序可读性强,编译程序在编译源程序时会去除注释,不会编译它的。注:这里方法中为什么使用super.paint(g)和g.drawString(),等等,这些问题留待后续章节回答,现在我们只能暂且接受这些。由上述例子我们可以给出简单Javaapplet程序的结构为:,.,115,1.3.3简单Javaapplet程序的基本结构,.,116,1.3.3简单Javaapplet程序的基本结构,在图1-9中,由符号“”括起来的部分,如,表示在具体程序中由用户自己根据实际情况给出。,.,117,1.3.4Javaapplet程序的执行,Javaapplet程序是通过网页调用,由Internet浏览器来执行的,所以执行过程分为四步,即第一步使用编辑程序输入源程序,并存放到.java文件中,该文件名与源程序中的public类同名;第二步使用javac编译源程序,编译结果即字节码存放到.class文件中,该文件与源程序文件同名;,.,118,1.3.4Javaapplet程序的执行,第三步创建一个网页文件(扩展名为.htm或.html),其中包含下列语句:.classwidth=height=,.,119,1.3.4Javaapplet程序的执行,第四步使用Internet浏览器或者appletviewer命令打开上述网页文件。这样执行例1.3程序的过程是:首先可以使用任一编辑程序,如微软的记事本,输入源程序并存放到average_applet.java文件中;然后,键入如下命令进行编译:javacaverage_applet.java,.,120,1.3.4Javaapplet程序的执行,接着,创建一个网页文件,其名为average_ie.htm,其内容为:,.,121,1.3.4Javaapplet程序的执行,最后,输入如下命令进行解释执行:appletvieweraverage_ie.htm或者使用IE浏览器打开average_ie.htm。,.,122,内容摘要,1.1计算机、Internet和WWW1.2Java语言1.3Java程序1.4对象与统一建模语言UML,.,123,1.4对象与统一建模语言UML,我们以后将会发现,面向对象是人们思考现实世界的一种自然方式,也是编写计算机程序的一种自然方法。把现实世界的问题求解编写成计算机程序,一般是需要先建立一个模型的,而模型是我们感兴趣的问题求解中事物及其相互之间关系的数学表达对象。本节将简单介绍对象的基本概念和建立模型的标准语言UML(UnifiedModelingLanguage)。,.,124,1.4.1什么是对象,对象是用来描述现实世界中的事物的,如,张三、李四、杯子、手机、。我们认识对象是从两个方面来进行的,一是对象的行为,一是对象的属性(性质)。对象的行为也就是对象的动作,它包括“施动者”的动作和“受动者”的动作,如,张三选修大学语文,,.,125,1.4.1什么是对象,李四受留级处理,杯子被装满水,手机拔号。对象的属性表示对象的特征和状态,如,张三身高175cm、体重72公

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论