Java课件一

上传人:仙*** 文档编号:243748909 上传时间:2024-09-30 格式:PPT 页数:60 大小:2.79MB
返回 下载 相关 举报
Java课件一_第1页
第1页 / 共60页
Java课件一_第2页
第2页 / 共60页
Java课件一_第3页
第3页 / 共60页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java,语言,第,1,章,Java,系统环境概述,Java,语言,陕西理工学院 魏佳,wj_snut,第,1,章,Java,系统环境概述,1.1,编程语言的发展,1.2,网络时代的编程语言,Java,1.3 Java,的开发运行环境,1.4 Java,程序的运行步骤,Java,语言是美国加州,Sun Microsystem,公司于,1995,年正式推出的纯,面向对象,(,Object-oriented,)的程序设计语言。由于它很好地解决了网络编程语言中的诸多问题,一经推出,便受到计算机界的普遍欢迎和接受,得到广泛应用和发展,成为目前,网络时代最为流行的程序设计语言。 面向对象的编程语言使程序能够比较直观地反映客观世界的本来面目,并且使软件开发人员能够运用人类认识事物所采用的一般思维方法进行软件开发,是当今计算机领域中软件开发和应用的主流技术。所有面向对象的程序设计语言都支持对象、类、消息、封装、继承、多态等诸多概念。而这些概念是人们在进行软件开发、程序设计中逐渐提出来的。要弄清面向对象及其相关概念,先看看程序设计语言的发展。,图,1.1,语言的发展使鸿沟变窄,1.1,编程语言的发展,人类的任何思维活动都是借助于人们所熟悉的某种自然语言进行的。若希望借助计算机完成人类的一种思维活动,就需要把用自然语言表达的东西转换成计算机能够理解和执行的形式语言,这便是编程语言或程序设计语言。计算机毕竟是一种机器,它能够理解和执行的编程语言和自然语言之间存在着较大的差距,这种差距被人们称作“语言的鸿沟”。这一鸿沟虽不可彻底消除,但可以使其逐渐变窄。事实上,各种编程语言的发展变迁,其目的就是为了缩小这一鸿沟。图,1.1,展示了从机器语言发展到面向对象的语言使“语言的鸿沟”逐渐缩小,。,1.1.1,机器语言,用,“,0,”,和,“,1,”,两种符号来代表电路的通、断两种状态是最早的编程语言,机器语言。,特点:,1,、用机器语言编写的程序,无论是指令、数据还是其存储地址,都是由二进制的,“,0,”,和,“,1,”,组成;,2,、用机器语言编写的程序,离计算机最近,机器能够直接执行,离人类的思维最远,语言之间的鸿沟最宽;,3,、用机器语言编写的程序,效率最低、最容易发生错误。,1.1.2,汇编语言,用一些易于理解和记忆的符号来代替二进制码的语言,汇编语言,也称为符号化的机器语言 。,特点:,1,、用汇编语言编程在适合人类形象思维的道路上前进了一步;,2,、汇编语言仍然是一种与具体机器硬件有关的语言,是一种面向机器的语言。,1.1.3,高级语言,与具体机器指令系统无关、表达方式接近自然语言的计算机语言称为高级语言。,特点:高级语言进一步体现客观事物的结构和逻辑涵义。,在结构化程序设计中,把程序概括为:,程序,=,数据结构,+,算法,其中数据结构是指对所解决问题的数据及其关系的表达,而算法则是研究如何高效而快捷地组织解决问题的具体过程。以结构化程序设计为代表的高级语言是一种面向数据过程的程序设计语言,人们把这类语言也称为面向过程的语言。,面向过程的语言特点:,1,、面向过程的语言精确地用计算机所理解的逻辑来描述和表达待解问题的具体解决过程;,2,、面向过程的语言很难使数据与程序始终保持相容,重用性较差。,1.1.4,面向对象的语言,面向过程的语言直接地描述问题域中客观存在的事物(即对象)以及它们之间的关系。,面向过程的语言追求的是软件系统对现实世界的直接模拟。,在面向对象的程序设计语言中,可以把程序描述为:程序,=,对象,+,消息,面向对象的语言对现实世界的直接模拟体现在下面几个方面:,(,1,)用一组数据描述事物的静态特征(属性),用一组方法来刻划事物的动态特征(行为)。,(,2,)用类(,Class,)来表示一组具有相同属性和方法的对象。,(,3,)用父类与子类的概念来描述每个事物既具有同类的共同性,又具有自己的特殊性这一事实。,(,4,)用封装,(Encapsulation),机制把对象的属性和方法结合为一个整体,并且屏蔽了对象的内部细节。,(,5,)通过消息连接来表示对象之间的动态联系。,(,6,)提供了描述复杂的事物由其它一些比较简单的事物构成的这种组成关系的功能。,1.1.5,面向对象的语言的发展,面向对象的语言也是在人们的软件开发实践中逐步提出并不断得到完善的。,1967,年由挪威计算中心开发的,Simu1a,67,语言首先引入了类的概念和继承机制,被看作是面向对象语言的鼻祖。,20,世纪,70,年代出现的,CLU,、并发,Pasca1,、,Ada,和,Modula-2,等编程语言,对抽象数据类型理论的发展起到了重要作用。这些语言支持数据与操作的封装。,1980,年提出的,Smallta1k-80,是第一个完善的、能够实际应用的面向对象语言。它在系统的设计中强调对象概念的统一,并引入和完善了类、方法、实例等概念和术语,应用了继承机制和动态连接。它被看作是一种最纯粹的面向对象程序设计语言。,20,世纪,80,年代中期到,90,年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的,OOPL,的涌现,例如,C+,,,Objective-C,,,Object Pascal,,,COLOS,(,Common Lisp Object System,),,Eiffel,Actor,,,Java,等。,面向对象程序设计语言分为两大类:,纯粹的面向对象语言。在纯粹的面向对象语言中,几乎所有的语言成分都是,“,对象,”,。如:,Smalltalk,、,Java,。这类语言强调开发快速原型的能力;,混合型的面向对象语言。如:,C+,,,Object Pascal,。它是在原传统的过程化语言中加入了各种面向对象的语言机构。这类语言所强调的是运行效率。,1991,年初,美国加州的,Sun Microsystem,公司,(,以下简称,Sun,公司,),成立了一个以,James,Gosling,为首、名为,Green,的项目研发小组,其目标是开发一个面向家用电器市场的软件产品,用软件实现一个对家用电器进行集成控制的小型控制装置。他们首先注意到这个产品必须具有平台独立性,即让该软件在任何,CPU,上都能运行。为达到此目的,,Gosling,首先从改写,C+,语言的编译器着手。但是,他们很快便意识到这个产品还必须具有高度的简洁性和安全性,而,C+,在这方面显然无法胜任。因此,,Gosling,决定自行开发一种新的语言,并将该语言命名为,Oak(,橡树,),。,1.2,网络时代的编程语言,Java,1.2.1,Java,的产生,Oak,是,Green,项目小组开发的一个名为“*,7”(StarSeven),产品中的一个组成部分。,StarSeven,是一个集成了,Oak,、,GreenOS(,一种操作系统,),、用户接口模块和硬件模块四个部分的类似于,PDA(Personal Digital Assistant,,个人数字助理,),的设备。,StarSeven,的第一个原型于,1992,年,8,月问世。尽管这个原型非常成功,但在竞争激烈的家用电器市场上却败给了竞争对手。失败的原因故然是多方面的,但笔者认为这与,Sun,公司的主业是计算机产品而不是家用电器产品这一因素密切相关。,“,有心栽花花不红,无意插柳柳成荫。”有趣的是,在这段时间里,,WWW,的发展却如日中天。,1993,年,7,月,伊利诺斯大学的,NCSA,推出了一个在,Internet,上广为流行的,WWW,浏览器,Mosaic 1.0,版。然而,这时的,WWW,页面虽然内容丰富,可以实现声、图、文并茂,但它却是静态的,若想增强,WWW,的动感,需要通过一种机制来使它具有动态性。其解决方案显然是嵌入一种既安全可靠,又非常简练的语言。,Oak,完全满足这一要求。但是,要将它推向市场,为人们所广泛接受,还必须采用一种合适的策略。,1994,年,,Sun,公司的创始人之一,Bill Joy,的介入,使,Oak,成为,Java,而得以走红。,Bill Joy,深知网络对,Unix,的推广所起的作用。因此,他不仅指定,Gosling,继续完善,Oak(,发布时改名为,Java),,同时要求,Naughton,用,Oak,编写一个真正的应用程序,WebRunner,,也就是后来被命名为,HotJava,的,WWW,浏览器。,1994,年底,两人均出色地完成了各自的任务。这时,在这个产品的发布问题上,,Bill Joy,力排众议,采取了“让用户免费使用来占领市场份额”的策略,促成了,Java,与,HotJava,于,1995,年初在,Internet,上的免费发布。由于,Java,确实是一种分布式、安全性高、包括编译器在内又非常小的适合网络开发环境的语言,因而一经发布,立即得到包括,Netscape,在内的各,WWW,厂商的广泛支持。工业界一致认为:“,Java,是,(20,世纪,)80,年代以来计算机界的一件大事。”微软总裁,Bill Gates,认为“,Java,是长期以来最卓越的程序设计语言”。,名称的由来:,由于,Oak,这个名称与其他产品的名称类同,所以开发小组后来为这个新语言取了一个新名称,Java(,爪哇,),,据说取这个名称的灵感来自于这样一个故事:研发小组的成员经常在公司附近的一家咖啡厅喝咖啡,而咖啡的原产地是,Java,。,Sun,公司在“,Java,白皮书”中对,Java,的定义:“,Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high-performance, multi-threaded, and dynamic language.”,。按照这个定义,,Java,是一种具有“简单、面向对象的、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行”等特性的语言。下面我们简要叙述,Java,的这些特性。,1.2.2 Java,的特点,Java,的定义:,1.,简单性,Java,语言简单而高效,基本,Java,系统(编译器和解释器)所占空间不到,250KB,。当然,这与,Java,的起源有很大关系。,Java,最初是为对家用电器进行集成控制而设计的一种语言,因此它必须具有简单明了的特性。,Java,的特性:,2.,面向对象,Java,语言是纯面向对象的,面向过程的编程语言把程序概括为:,程序,=,数据结构,+,算法,而面向对象的编程语言可把程序概括为:,程序,=,对象,+,消息,在面向对象的技术中,把现实世界中的任何实体,都可以看作是对象。对象其实就是现实世界模型的一个自然延伸。现实世界中的对象均具有属性和行为,映射到计算机程序上,属性用数据表示,行为用程序代码实现。面向对象的程序设计技术较传统的面向过程的程序设计技术更能真实地模拟现实世界。,3.,可移植性,(,平台无关性,),程序的可移植性指的是程序不经修改而在不同硬件或软件平台上运行的特性,可移植性在一定程度上决定了程序的可应用性。可移植性可分两个层次:源代码级可移植性和二进制可移植性。,Java,不仅是源代码级可移植的,甚至源代码经过编译之后形成的二进制代码,字节码,也同样是可移植的。,Java,采用了多种机制来保证可移植性,其中最主要的有两条:,第一,,Java,既是编译型又是解释型的。,Java,程序的最终执行需经过两个步骤:编译和解释。,Java,将源程序编译成字节码,二进制代码,这种字节码通过,Java,解释器来解释执行。任何一台机器,只要配备了,Java,解释器,就可以运行,Java,字节码,而不管这种字节码是在何种平台上生成的。因此,,Java,编程人员在进行软件开发时,不必考虑软件的运行平台。此外,,Java,通过预先把源程序编译成字节码,避免了传统解释型语言的执行效率低的性能瓶颈。,Java,语言与传统语言的不同运行机制如图,1.2,所示。,图,1.2 Java,语言与传统语言的不同运行机制,(a),传统语言程序的运行机制;,(b) Java,语言程序的运行机制,源代码,目标码,(.obj,文件,),可执行代码,(.exe,文件,),操作系统,源代码,(.java,文件,),字节码,(.class,文件,),Java,解释器,编译,编译,连接,运行,解释执行,第二,,Java,采用的是基于国际标准,IEEE,标准的数据类型。,Java,的数据类型在任何机器上都是一致的,它不支持特定于具体的硬件环境的数据类型,它还规定同一种数据类型在所有实现中必须占据相同的空间大小,(C+,的数据类型在不同的硬件环境或操作系统下占据的内存空间是不同的,),。通过在数据类型的空间大小方面采用统一标准,,Java,成功地保证了其程序的平台独立性。,此外,,Java,的可移植性还体现在,Java,的运行环境上。,Java,编译器是用,Java,语言本身编写的,而其他编程语言运行的环境则是用,ANSI C,编写的,,Java,的整个运行环境体现了一个定义良好的可移植性接口。,Java,语言规范还遵循,POSIX,标准,这也是使,Java,具有良好可移植性的重要原因。,4.,稳定性和安全性,网络分布式计算环境要求软件具有高度的稳定性和安全性。,Java,首先摒弃了指针数据类型,这样,程序员便不再能够凭借指针在任意内存空间中“遨游”;,其次,,Java,提供了数组下标越界检查机制,从而使网络“黑客”们无法构造出类似,C,和,C+,语言所支持的那种指针;,第三,,Java,提供了自动内存管理机制,它可以利用系统的空闲时间来执行诸如必要的垃圾清除等操作,同时也避免了恶意的使用者利用指针去改变不属于自己程序的内存空间。,此外,,Java,的运行环境还提供了下述安全保障机制:,(,1,)字节码校验器(,Byte Code Verifier,)。当,Java,字节码进入解释器时,首先必须经过字节码校验器的检查。即使,Java,编译器生成的是完全正确的字节码,解释器也必须再次对其进行检查。因为在从,Java,程序的编译直到解释执行这段时间内,字节码可能被有意无意地改动过。,(,2,)运行时内存布局和类装载器(,Class Loader,)。,Java,解释器将决定程序中类的内存布局,这意味着“黑客”们将无法预先得知一个类的内存布局结构,从而也就无法利用该信息来“刺探”或破坏系统。随后,类装载器负责把来自网络的类装载到其单独的内存区域,避免应用程序之间的相互干扰或破坏作用。,(,3,)文件访问限制。客户机一端管理员还可以限制从网络上装载的类只能访问某些被允许的文件系统。,5.,高性能,一般情况下,可移植性、稳定性和安全性几乎总是以牺牲性能为代价的,解释型语言的执行效率一般也要低于直接执行源码的速度。但,Java,所采用的措施却很好地弥补了这些性能差距。这些措施包括:高效的字节码;多线程。,Java,的多线程支持体现在两个方面:,(,1,),Java,环境本身就是多线程的,它可以利用系统的空闲时间来执行诸如必要的垃圾清除和一般性的系统维护等操作;,(,2,),Java,还提供了对多线程的语言级支持。利用其多线程编程接口,编程人员可以很方便编写出支持多线程的应用程序,提高程序的执行效率。 必须注意的是,,Java,的多线程支持在一定程度上可能会受其运行时支撑平台的限制,并且依赖于其他一些与平台相关的特性。,Java,运行时环境还提供了另外两种可选的性能提高措施:及时编译和嵌入,C,代码。,6.,动态特性,在面向对象的程序设计中,经常会用到各种类库,很多时候还需要一些从第三方厂商处购买的类库。销售应用程序时,类库有时是单独出售的。对于,C+,应用程序,这就会导致一个问题:类库一旦升级,用这些类库编写的应用程序就必须重新编译,并且重新发送到用户手中,否则就无法利用升级后类库的新增功能。,Java,采用“,滞后联编,”机制避免了这个问题。,Java,程序的基本组成单元为类,这些类是在运行过程中动态装载的。因此,,Java,可以在分布式环境中动态地维护应用程序及其支持类库之间的一致性。这样,对于,Java,而言,其支持类库升级之后,相应的应用程序不必重新编译,也一样可以利用升级后类库的新增功能。“滞后联编”机制使得,Java,完全利用了面向对象编程模式的优点,使,Java,程序能够适应不断变化的执行环境。,此外,,Java,的动态性还体现在对动态数据类型和动态协议的支持上。利用一种特殊的,Applet,,即内容句柄,编程人员可很方便地使,HotJava,支持新的数据类型。类似地,通过编写协议句柄,可以使,HotJava,支持新的、自定义的传输协议。,简言之,,Java,的动态性使用户能够真正拥有“即插即用”,(p1ug-and-play),的软件模块功能。,7.,分布式,分布的概念包括数据分布和操作分布两个方面。,数据分布,是指数据可以分散存放于网络上不同的主机中,以解决海量数据的存储问题;,操作分布,则指把计算分散到不同的主机上进行处理,这就如同由许多人协作共同完成一项大而复杂的工作一样。,Java,支持,WWW,客户机服务器计算模式。对于数据分布,,Java,提供了一个,URL,对象,利用此对象我们可以打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。对于操作分布,,Java,的客户机服务器模式可以把计算从服务器分散到客户端,从而提高整个系统的执行效率,避免瓶颈制约,增加动态可扩充性。 对于编程人员来说,,Java,的网络类库是对分布式编程的最好支持。,Java,网络类库是支持,TCP,IP,协议的子例程库。目前支持的协议有,HTTP,和,FTP,等。同时,通过编写协议句柄,编程人员还可以扩充,Java,支持的协议集合。,由上述特征可以看出,,Java,的确是一门适合,Internet,和分布式环境的编程语言。,Sun,公司的,J2SDK,有针对不同操作系统的,Solaris SPARC/x86,、,Linux x86,、,Microsoft Windows,等版本,它们的建立过程略有不同。以下我们以,Microsoft Windows,版本的,Java 2 SDK,为蓝本,说明在,Windows 2000 /XP,操作系统下安装,J2SDK,的过程:,(1),从,Sun,公司的网站,(),上下载,J2SDK,工具包。,(2),从,J2SDK,工具包中找到运行文件,jdk-1_4_2_16-windows-i586-p.exe,并运行之,完成,J2SDK,的安装。注意:在安装时需要指定文件的安装目录,安装完成后的环境配置都与这个目录有关。我们将,J2SDK,安装在,D:j2sdk1.4.2,目录中。,1.3 Java,的开发运行环境,1.3.1,建立,Java,2,SDK,的开发环境,(3),设置,Windows XP,系统环境变量,(Windows 2000,的设置与此基本相同,),。,在系统桌面上右击“我的电脑”图标,将弹出如图,1.4,所示的菜单。,选择“属性”命令,将弹出如图,1.5,所示的“系统特性”对话框。,图,1.4,选择“属性”命令,图,1.5 “,系统特性”对话框,在“高级”选项卡中单击“环境变量”按钮,将弹出如图,1.6,所示的“环境变量”对话框。,图,1.6 “,环境变量”对话框,在“环境变量”对话框中单击“新建”按钮,将弹出如图,1.7,所示的“新建系统变量”对话框。,在“变量名”文本框中添加“,JAVA_HOME,”,在“变量名”文本框中添加“,C:j2sdk1.4.2,”然后单击“确定”按钮。如果你的安装目录不是,D:j2sdk1.4.2,,请按你的安装目录设置此项。,图,1.7 “,编辑系统变量”对话框,在“环境变量”对话框中的“系统变量”选项组中找到“,path”,变量后,单击“编辑”按钮,将弹出如图,1.8,所示的“编辑系统变量”对话框。,在“变量值”文本框中添加“,%JAVA_HOME%bin;%JAVA_HOME%jrebin,”,,然后单击“确定”按钮。,图,1.8 “,编辑系统变量”对话框,在“环境变量”对话框中单击“新建”按钮,将弹出如图,1.7,所示的“新建系统变量”对话框。,在“变量名”文本框中添加“,CLASSPATH,”,在“变量名”文本框中添加“,.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar,”然后单击“确定”按钮。注意环境变量中的“,.;”,不能少,它表示当前路径。,1.3.1,Java,工具集,Java,工具集为开发人员提供了创建和运行,Java,代码的工具,这些工具见表,1-1,。,表,1-1 Java 2 SDK,开发工具集,工具名称,说明,Javac,Java,编译器,用于将,Java,源程序编译成字节码,Java,Java,解释器,用于解释执行,Java,字节码,appletviewer,小应用程序浏览器,用于测试和运行,Java applet,程序,Javadoc,Java,文档生成器,Javap,Java,类文件反汇编器,Jdb,Java,调试器,Javah,C,文件生成器,利用此命令可实现在,Java,类中调用,C+,代码,用,Java,语言编写的,Java,源程序,经,Java,编译器编译后形成字节码,这些字节码由,Java,运行系统负责解释和执行。解释和执行的过程可分为三步:,(1),字节码的装入。这是由类装载器完成的。类装载器负责装入运行程序需要的所有代码,包括被程序代码中的类所继承的类和被其调用的类。,(2),字节码校验。字节码校验器对字节码进行安全性校验。,(3),字节码的翻译和执行。这可以取两种途径之一来实现。一种是解释型工作方式:通过解释器将字节码翻译成机器码,然后由即时运行部件立即将机器码送硬件执行。另一种是编译型工作方式:通过代码生成器先将字节码翻译成适用于本系统的机器码,然后再送硬件执行。,Java,运行系统一般采用解释型工作方式。,1.4 Java,程序的运行步骤,1.4.1,运行系统的结构及工作原理,图,1.9 Java,语言程序的编译、解释和执行过程,Java Application,程序的建立及运行可分为下述三个步骤:,(1),利用某一种文本编辑器建立,Java,源程序文件;,(2),利用,Java,编译器,(Javac),编译该,application,,产生,.class,字节码文件;,(3),利用解释器,(java),解释字节码文件,完成该程序的运行过程。,1.4.2,Java Application,程序的建立及,运行,1.,建立,Java,源程序文件,可以利用任何一个文本编辑器来建立,Java,源程序文件。这里我们利用,Windows XP,环境下的“记事本”编辑器来输入,Java,源程序代码,如图,1.10,所示。输入并编辑完成后,点击“保存”,将出现“另存为”对话框,如图,1.11,所示。在此对话框的“文件名”文本框中输入文件名“,c1_1.java”,,在“保存类型”文本框中选择“所有文件”。,图,1.10 “,记事本”编辑器,图,1.11 “,另存为”对话框,【,程序示例,c1_1.java】,public class c1_1,public static void,main(String,args, ),System.out.println(My,first Java application!);,2.,编译,利用,Java,编译器,Javac,对源文件进行编译。在,DOS,提示符后键入如下命令:,javac c1_1.java,按,Enter,键后,开始编译该文件。若源文件中无错误,则产生,c1_1.class,字节码文件;若源文件中有错误,则编译器将指出错误位置,此时需返回上一步对源文件进行修改。,3.,运行,编译无误的,Java,字节码文件,由,Java,解释器,(Java),负责装入和执行。可在,DOS,提示符后输入如下命令来运行该程序:,java c1_1,运行后在屏幕上输出:,My first Java Application!,在,DOS,提示符下,,Java Application,程序,c1_1.java,的编译、运行及输出结果如图,1.12,所示。,图,1.12 Java Application,程序的编译、运行及输出结果,4.,程序分析,(1) public class c1_1,这一行表示声明此程序要建立一个新类,类名为,c1_1,。,public,指出这个类是公共类,而这个类定义的内容就在后面紧跟的花括号内。任何,Java,程序都必须以类的形式出现。一个程序中可以定义若干个类,但只能定义一个,public,类。定义类必须用关键字,class,作为标志。如果在一个程序中只定义了一个,public,类,那么类名一定是文件名,否则编译会出错。,(2),在,public static void main(String args ),行中,用,main,定义了一个主方法,当程序执行时,解释器会寻找主方法,它是程序的入口点,若无此方法,解释器会显示错误信息。其中的,public,表明所有的类都可以调用这个方法,,static,表明这个方法可以通过类名直接调用,而,void,表明此方法执行后不返回任何值。,String args ,表明向,main,传递的参数,其中的,args,是参数名。,main,后面紧跟的花括号是,main,方法的实现内容。它只含一条语句:,System.out.println(My first Java Application!);,此语句的功能是输出字符串“,My first Java Application!”,。,(3),在,System.out.println( ),行中,,System,是,Java,类库中的一个类,利用此类可以获得,Java,运行环境的有关信息和输入,/,输出信息等;,out,是,System,类中的一个对象;,println( ),是,out,对象的一个方法,此方法的作用是向标准输出设备,(,这里是显示器,),输出参数指定的字符串,(,这里是“,( )”,中的内容,),,输出完成后光标定位在下一行。,Java Applet,程序的建立及运行可分为下述四个步骤:,(1),利用文本编辑器建立,Java,源程序文件;,(2),利用,Java,编译器,(Javac),编译该,Java Applet,,产生,.class,字节码文件;,(3),利用文本编辑器建立一个,HTML,文件,在其中嵌入,Java,字节码文件;,(4),用,WWW,浏览器或,appletviewer,装入该,HTML,文件,使,Applet,运行。,下面以示例程序,c1_2.java,为例,来说明,Java Applet,程序的建立及运行步骤。,1.4.3,Java,Appllet,程序,的建立及,运行,1.,建立,Java Applet,源程序文件,建立,Java Applet,源程序文件的方法与建立,Java Application,源程序文件的方法相同,此处不再重复。只需注意应该给出一个有别于上一程序的文件名,本例为,c1_2.java,。,【,程序示例,c1_2.java,】,import java.awt.*;,import java.applet.*;,public class c1_2 extends Applet,public void paint(Graphics g),g.drawString(Java Now!,25,25);,2.,编译,编译,Java Applet,与编译,Java Application,也相同。对于本例,可输入如下命令:,javac c1_2.java,3.,利用文本编辑器建立一个,HTML,文件,在文本编辑器中建立名为,c1_2.html,的,HTML,文件,并输入下面两行语句:,4.,运行,在,Windows 9x,的,MS-DOS,方式下输入如下命令:,appletviewer c1_2.html,按,Enter,键后,将弹出如图,1.13,所示的,Applet,浏览器窗口。,图,1.13,示例程序,c1_2,的运行结果,5.,程序分析,(1)import,语句。,Java,的类库中存储了许多已编写好的类,这些类按照功能被分为许多包,可供编程人员使用。编写,Java,程序时,若要使用,Java,类库中的类,则必须先用,import,语句将其引用。程序中:,import java.awt.*;,import java.applet.*;,两条语句说明该程序要使用,Java,类库的类。其中,“,awt”,为,Abstract Windowing ToolKit,的缩写,表示该程序要使用抽象窗口工具集中的类;“,applet”,向编辑器说明该程序要使用,applet,包中的类。,(2) public class c1_2 extends Applet,这一行声明此程序要建立一个新类,类名为,c1_2,。,Public,指出这个类是公共类;,extends Applet,说明该类是,Applet,的子类,而这个类的定义内容就在后面紧跟的花括号内。所有的,Java Applet,程序中都必须有一个,Applet,的子类,因为,Applet,类具有处理图形用户接口,(GUI),的功能,其中定义的数据成员和方法规定了,WWW,浏览器如何解释,Java Applet,程序。根据子类继承父类的原则,可使,WWW,浏览器顺利地实现用户程序的功能。,(3) public void,paint(Graphics,g),行定义了一个名为,paint,的方法,该方法用于重画,Java Applet,对象的内容。,paint(),方法的参数,g,是属于,Graphics,类的对象,当程序执行到这里时,,g,作为参数被传递至,paint(),中。,(4),g.drawString(Java,Now!,25,25);,语句中的,g.drawString,(),方法用于将字符串“,Java Now!”,显示在,applet,窗口。,g.drawString,(),方法有三个参数:第一个参数是以双引号引起的字符串,它便是窗口中显示的内容;第二个参数和第三个参数分别是,applet,窗口的,x,和,y,坐标,(,以像素点为单位,),。,(5),建立的,HTML,文件是用来显示,applet,程序内容的网页。,卷标用来标示放置于网页上的,Java Applet,程序;,CODE,指明嵌入到,HTML,文件中的,Java Applet,字节码文件的文件名;,width,、,height,指出,applet,窗口的宽与高。,由,Java,源程序编译生成的字节码不能直接在一般的操作系统平台上运行,而必须在一个称为,Java,虚拟机的操作系统之外的平台上运行。这就是说在运行,Java,程序时,首先启动,Java,虚拟机,然后由,Java,虚拟机来负责执行,Java,的字节码。,1.4.,4 Java,虚拟机,Java,虚拟机(,JVM-Java Virtual Machine,)是可以运行,Java,字节码的假想的计算机。利用,Java,虚拟机就可以把,Java,字节码程序跟具体的软硬件平台分隔开来,只要根据,JVM,规格描述将解释器移植到特定的计算机上,就能保证在任何机器上编译的,Java,字节码文件能够在该系统上运行。从结构上看,,JVM,是由六部分组成:,(1),指令集:采用独立于平台的字节码形式;,(2),寄存器组:包含程序计数器、堆栈、运行环境指针和变量指针;,(3),类文件格式规定:独立于平台;,(4),堆栈:用来传递参数和返回运行结果;,(5),内存垃圾收集器:释放不再使用的内存片段;,(6),存储区:用来存放字节码。,图,1.14 Java,虚拟机与,Internet,的关系,运行,JVM,字节码的工作由解释器来完成。总之,,JVM,是一种在任意计算机上编译的,Java,字节码程序,可以在任何系统下的计算机上运行的规范机制。它是,Java,平台独立性的基础。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!