Java 语言与面向对象程序设计_第1页
Java 语言与面向对象程序设计_第2页
Java 语言与面向对象程序设计_第3页
Java 语言与面向对象程序设计_第4页
Java 语言与面向对象程序设计_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、教 师:吴吴 劲劲教师社区教师社区计算机科学与工程学院计算机科学与工程学院 吴吴 劲劲课件发布课件发布uJava 2实用教程实用教程(第三版),作者:耿祥义,张跃平,(第三版),作者:耿祥义,张跃平,清华大学出版社,清华大学出版社,2006.8。uJava编程思想编程思想(第四版),原书名:(第四版),原书名:Thinking in JAVA,Second Edition,作者:,作者:Bruce Eckel,译者:陈昊,译者:陈昊鹏鹏 ,机械工业出版社,机械工业出版社,2007.6。uJava程序设计教程程序设计教程(第(第5版),原书名:版),原书名:Java How to Program

2、,Fifth Edition,作者:,作者: ,译者:施平安,施,译者:施平安,施惠琼,柳赐佳,清华大学出版社,惠琼,柳赐佳,清华大学出版社,2004.3。uJava分布式程序设计分布式程序设计,原书名:,原书名:Distributed Programming with Java,作者:,作者:Qusay H.Mahmoud,译,译者:欧阳光,安锦,国防工业出版社,者:欧阳光,安锦,国防工业出版社,2002.1。lJavaJava语言的发展历程语言的发展历程lJavaJava语言的特点语言的特点lJ2EEJ2EE基本概念基本概念lJavaJava开发工具开发工具(JDK)(JDK)简介简介 l

3、JavaJava应用程序应用程序ApplicationApplication程序程序AppletApplet程序程序lJavaJava虚拟机原理虚拟机原理 lJavaJava语言是一种新型的程序设计语言,广泛地应语言是一种新型的程序设计语言,广泛地应用于用于InternetInternet网络程序设计。网络程序设计。l它是跨平台的适用于分布式计算机环境的面向对它是跨平台的适用于分布式计算机环境的面向对象程序设计语言。象程序设计语言。l其其“编写一次,到处运行编写一次,到处运行”的跨平台优势给整个的跨平台优势给整个网络世界带来巨大变革,为软件开发者提供了充网络世界带来巨大变革,为软件开发者提供了

4、充分展示的舞台。分展示的舞台。 19911991年,年,SUNSUN公司的程序员公司的程序员James James GoslingGosling,以,以C+C+语言为基础,写了一种语言为基础,写了一种可在不同平台上工作、可令不同设备互可在不同平台上工作、可令不同设备互相联系的程序语言相联系的程序语言oakoak(JavaJava)。)。l1994年年Web大发展,大发展,SUN的共同创始人的共同创始人Bill Joy (Berkeley Unix的创始者)坚信的创始者)坚信Oak是唯一可以令是唯一可以令Web真正实现交互的途径。在他的推动下,真正实现交互的途径。在他的推动下,Oak变变成了一种

5、用来创建一种叫成了一种用来创建一种叫Applet小程序的语言,这小程序的语言,这些些Applet可在任何操作系统中运行。可在任何操作系统中运行。l1995年年1月,月,Sun公司发现公司发现Oak名字已经被别名字已经被别人注册,人注册,Oak更名为更名为JavalJava开发小组开发了第一个支持开发小组开发了第一个支持Java applet的的Web浏览器浏览器 Hotjava。 l19951995年年5 5月,月,SunSun公司在公司在San FranciscoSan Francisco举行的举行的SunworldSunworld会议会议上正式公布了上正式公布了JavaJava技术。技术。

6、l在此次会议上在此次会议上NetscapeNetscape公司宣布将在其公司宣布将在其WebWeb浏览器产品中支浏览器产品中支持持JavaJava,同年冬天,同年冬天,Navigator 2.0Navigator 2.0上正式支持上正式支持JavaJava。l不久,不久,SunSun、SGISGI和和 Macromedia Macromedia 三家公司宣布联合制定基于三家公司宣布联合制定基于JavaJava的开放式多媒体标准。随后许多著名大公司,如的开放式多媒体标准。随后许多著名大公司,如IBMIBM、MicrosoftMicrosoft、NovellNovell、OracleOracle、

7、BorlandBorland等,都相继宣布支持等,都相继宣布支持JavaJava。l1212月,月,SunSun和和NetscapeNetscape公司联合推出了一种开放的跨平台对公司联合推出了一种开放的跨平台对象描述语言象描述语言JavaScriptJavaScript。l19961996年年1 1月,第一个月,第一个JavaJava开发工具包(开发工具包(Java Development Java Development KitKit):):JDK1.0JDK1.0诞生。诞生。l19961996年年4 4月,月,1010个最主要的操作系统供应商申明将在其产品个最主要的操作系统供应商申明将在

8、其产品中嵌入中嵌入JavaJava技术;技术;19961996年年9 9月,约月,约8.38.3万个网页应用了万个网页应用了JavaJava技技术来制作。术来制作。l19971997年年2 2月月1818日,日,JDK1.1JDK1.1发布。发布。l19971997年年4 4月月2 2日,日,JavaOneJavaOne会议召开,参与者逾一万人,创当会议召开,参与者逾一万人,创当时全球同类会议规模之纪录。时全球同类会议规模之纪录。l19971997年年9 9月,月,Java Developer ConnectionJava Developer Connection社区成员超过十万。社区成员超过

9、十万。l19981998年年2 2月,月,JDK1.1JDK1.1被下载超过被下载超过2,000,0002,000,000次。次。l19981998年年1212月月4 4日,日,JDK1.2JDK1.2隆重发布,标志着隆重发布,标志着Java2Java2平台的诞生。平台的诞生。l19981998年年1212月月8 8日,日,Java2Java2企业级平台企业级平台J2EEJ2EE发布。发布。l19991999年年6 6月,月,SUNSUN公司发布公司发布JavaJava的三个版本:的三个版本:J2SEJ2SE(Java 2 Standard EditionJava 2 Standard Edi

10、tion)标准版:它是一组针)标准版:它是一组针对传统桌面应用的对传统桌面应用的APIAPI和运行环境;和运行环境;J2EEJ2EE(Java 2 Enterprise EditionJava 2 Enterprise Edition)企业版:它是)企业版:它是J2SEJ2SE的扩展集,主要用于在服务器端开发可伸缩、可迁移、以的扩展集,主要用于在服务器端开发可伸缩、可迁移、以数据库为核心的企业级应用;数据库为核心的企业级应用;J2MEJ2ME(Java 2 Micro EditionJava 2 Micro Edition)微型版:它定义了一组针)微型版:它定义了一组针对嵌入式设备和消费电子设

11、备的对嵌入式设备和消费电子设备的APIAPI和运行环境,这些设和运行环境,这些设备包括无线手持设备、备包括无线手持设备、PDAPDA、电视机顶盒以及其他缺乏足、电视机顶盒以及其他缺乏足够的资源去支持够的资源去支持J2SEJ2SE的设备。的设备。l把把Java 2Java 2平台分成三种版本使得它能够更好地满足不同目标平台分成三种版本使得它能够更好地满足不同目标领域中开发者的需求,同时也使领域中开发者的需求,同时也使JavaJava技术在保持其技术在保持其“编写一编写一次,到处运行次,到处运行”精神的同时,在不同领域得到继续发展。精神的同时,在不同领域得到继续发展。l2005年6月,JavaOn

12、e大会召开,SUN公司公开Java SE 6(2007可以开始下载)。此时,Java的各种版本已经更名以取消其中的数字“2”:J2EE更名为Java EE;J2SE更名为Java SE,J2ME更名为Java ME l简洁性简洁性l安全性安全性l面向对象面向对象l动态性动态性l可移植性可移植性l高性能高性能l多线程多线程l分布式分布式lJavaJava由由C+C+衍生而来,其语言风格与衍生而来,其语言风格与C+C+十十分类似。分类似。lJavaJava比比C+C+简单,抛弃了简单,抛弃了C+C+中一些不是绝中一些不是绝对必要的东西,如头文件、指针、结构、对必要的东西,如头文件、指针、结构、联合

13、、隐式的类型转换和操作符重载等。联合、隐式的类型转换和操作符重载等。 计算机世界计算机世界概念世界概念世界现实世界现实世界对象对象类类抽象数据类抽象数据类实体实体 抽象抽象 抽象抽象实例化实例化class Car int color; int door_number; int speed; void brake() void speedUp() ; void slowDown() 计算机中计算机中的对象的原型的对象的原型 现实生活现实生活中的实体中的实体Car myCar = new Car();myCar. speedUp() ;myCar.brake(); 计算机中计算机中的对象的对象cl

14、ass Car int color_number; int door_number; int speed; void brake() void speedUp() ; void slowDown() l类类类是类是JavaJava语言的最基本概念,是组成语言的最基本概念,是组成JavaJava程序的基本要素程序的基本要素类是类是JavaJava的执行单位,的执行单位,JavaJava运行的就是运行的就是JavaJava类本身类本身类封装了该类对象的变量和方法类封装了该类对象的变量和方法l对象对象对象是类的实例化,对象的创建是通过对象构造方法来实对象是类的实例化,对象的创建是通过对象构造方法来实

15、现的现的我们可以生成多个对象,通过消息传递来进行交互,最终我们可以生成多个对象,通过消息传递来进行交互,最终完成复杂的任务完成复杂的任务消息传递是指激活指定的某个对象的方法,以改变它的状消息传递是指激活指定的某个对象的方法,以改变它的状态或使其产生一定的动作态或使其产生一定的动作variablesmethodsl软件对象通过相互间传递软件对象通过相互间传递消息消息来相互作用和通信来相互作用和通信l 一个消息由三部分组成一个消息由三部分组成:1. 接受消息的对象接受消息的对象2. 方法的名字方法的名字3. 方法需要的参数方法需要的参数对象对象B对象对象 AmessageCircle c = ne

16、w Circle ( );Triangle t = new Triangle ( );Line l = new Line ( );doStuff ( c );doStuff ( t );doStuff ( l );几何形状几何形状draw ( )erase ( )直线直线draw ( )erase ( )矩形矩形draw ( )erase ( )圆圆draw ( )erase ( )void doStuff ( shape s ) s.erase ( ); / s.draw ( );动态绑定(后期绑定)动态绑定(后期绑定)lJavaJava程序基本组成单元是类,在运行中程序基本组成单元是类,在

17、运行中JavaJava的类的类是动态装载的。是动态装载的。lJavaJava在分布式系统中动态地维护应用程序在分布式系统中动态地维护应用程序, ,支持类支持类库间的一致性,可以避免像库间的一致性,可以避免像C+C+类库升级,相应的类库升级,相应的应用程序都需重新编译的问题。应用程序都需重新编译的问题。lJavaJava语言滞后联编机制充分利用面向对象编程风语言滞后联编机制充分利用面向对象编程风格的优点,真正做到即插即用的模块功能。格的优点,真正做到即插即用的模块功能。l用用JavaJava语言编写的程序可以不经任何改动就可以在不同的语言编写的程序可以不经任何改动就可以在不同的硬件或软件平台上执

18、行,即硬件或软件平台上执行,即JavaJava编译器所生成的可执行代编译器所生成的可执行代码是基于一种抽象的处理器码是基于一种抽象的处理器JavaJava虚拟机(虚拟机(Java Java VirualVirual Machine Machine)实现的。)实现的。lJavaJava程序的运行,首先要经过编译,再进行解释执行,这程序的运行,首先要经过编译,再进行解释执行,这两个过程实现的。两个过程实现的。JavaJava编译器所生成的代码叫做字节码,它与硬件体系编译器所生成的代码叫做字节码,它与硬件体系结构无关。结构无关。在运行过程中,由针对运行系统硬件体系结构的在运行过程中,由针对运行系统硬

19、件体系结构的JavaJava解释器,将字节码转换成该系统相对应的指令。解释器,将字节码转换成该系统相对应的指令。l高性能性高性能性虽然虽然JavaJava是解释执行语言,但它编译生成的字节码与机器是解释执行语言,但它编译生成的字节码与机器码十分接近,它的执行效率非常接近于码十分接近,它的执行效率非常接近于C C或或C+C+生成的机器生成的机器码执行效率。码执行效率。l多线程多线程 它自身的多线程性,可以利用系统的空闲执行一些常它自身的多线程性,可以利用系统的空闲执行一些常规处理;规处理;提供对多线程的语言级支持,提高程序执行效率。提供对多线程的语言级支持,提高程序执行效率。 l分布式分布式 J

20、avaJava是一个适用于网络的语言。它提供的类库支持是一个适用于网络的语言。它提供的类库支持TCP/IPTCP/IP协议,可以通过协议,可以通过URLURL地址访问网络上其它的对象。地址访问网络上其它的对象。 lJ2EEJ2EE应用程序由组件组成。一个应用程序由组件组成。一个J2EEJ2EE组件就是一个组件就是一个自带功能的软件单元,它随同相关的类和文件被装自带功能的软件单元,它随同相关的类和文件被装配到配到J2EEJ2EE应用程序中,并实现与其它组件的通信。应用程序中,并实现与其它组件的通信。lJ2EEJ2EE规范是这样定义规范是这样定义J2EEJ2EE组件的:组件的:客户端应用程序和客户

21、端应用程序和appletapplet是运行在客户端的组件。是运行在客户端的组件。 Java ServletJava Servlet和和JavaServer Pages (JSP)JavaServer Pages (JSP)是运行在服务是运行在服务器端的器端的WebWeb组件。组件。Enterprise JavaBean(EJB)Enterprise JavaBean(EJB)组件组件(enterprise bean)(enterprise bean)是运是运行在服务器端的组件。行在服务器端的组件。J2EEJ2EE组件由组件由JavaJava编程语言写成,并和用该语言写成的其编程语言写成,并和用

22、该语言写成的其它程序一样进行编译。它程序一样进行编译。J2EEJ2EE组件和组件和 标准的标准的JavaJava类的不同点在于:它被装配在类的不同点在于:它被装配在一个一个J2EEJ2EE应用程序中,具有固定的格式并遵守应用程序中,具有固定的格式并遵守J2EEJ2EE规范,规范,它被部署在产品中,由它被部署在产品中,由J2EEJ2EE服务器对其进行管理。服务器对其进行管理。 l容器(容器(ContainerContainer)是组件和支持组件功能的底层特定平台)是组件和支持组件功能的底层特定平台(如数据库)之间的接口。在运行(如数据库)之间的接口。在运行WebWeb组件、组件、EJBEJB或者

23、或者J2EEJ2EE应应用程序客户端之前,你必须将它们装配到一个用程序客户端之前,你必须将它们装配到一个J2EEJ2EE应用程序应用程序中,并部署到容器中。中,并部署到容器中。lJ2EEJ2EE服务器提供:服务器提供:EJBEJB容器:管理容器:管理J2EEJ2EE应用程序中应用程序中EJBEJB的运行。的运行。EJBEJB和它们的容器在和它们的容器在J2EEJ2EE服务器中运行。服务器中运行。WebWeb容器:管理容器:管理J2EEJ2EE应用程序中应用程序中JSPJSP页面和页面和ServletServlet组件的运行。组件的运行。WebWeb组组件和容器也在件和容器也在J2EEJ2EE服

24、务器中运行。服务器中运行。lApplication client containerApplication client container(应用程序客户端容器):(应用程序客户端容器):管理应用程序客户端组件的运行。应用程序客户端和它的容管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户机。器运行在客户机。lServletServlet技术技术是是JavaJava基础上的一种技术和标准,使其服务器端的开发更基础上的一种技术和标准,使其服务器端的开发更具效率。具效率。ServletServlet程序其实就是程序其实就是JavaJava程序,只不过它是用程序,只不过它是用Java

25、Java Servlet APIServlet API开发的。开发的。lJSPJSP(Java Server PageJava Server Page)摒弃了常用的解释执行方式,采用了一种全新的先对代码摒弃了常用的解释执行方式,采用了一种全新的先对代码进行转换(转换为进行转换(转换为ServletServlet代码)、编译(为字节码),再代码)、编译(为字节码),再执行的方式。执行的方式。第一次执行三步过程,以后只需最后一步。第一次执行三步过程,以后只需最后一步。若有若有JSPJSP页面被修改,才重新执行三步过程覆盖原来代码。页面被修改,才重新执行三步过程覆盖原来代码。lEJB(Enterpr

26、ise JavaBeans)-J2EEEJB(Enterprise JavaBeans)-J2EE核心组件核心组件EJB EJB 组件是基于标准分布式对象技术、组件是基于标准分布式对象技术、CORBA CORBA 和和 RMI RMI 的服务器端的服务器端 java java 组件。组件。EJB EJB 组件总是分布式的,这是组件总是分布式的,这是它们与标准它们与标准 JavaBeans JavaBeans 组件最根本的区别。组件最根本的区别。 EJB EJB 组件提供了应用的商务逻辑部分。由于它们不涉及组件提供了应用的商务逻辑部分。由于它们不涉及表示层的问题,因此必须与其它的显示技术表示层的

27、问题,因此必须与其它的显示技术( (如如 servlets)servlets),服务于,服务于 HTML HTML 客户端的客户端的 JSP JSP 技术,或者使技术,或者使用了诸如用了诸如 AWTAWT、Swing Swing 技术的技术的 java java 应用一起使用。应用一起使用。 实现了实现了 EJB EJB 规范的应用服务器提供了可以解决安全性、规范的应用服务器提供了可以解决安全性、资源共享、持续运行、并行处理、事务完整性等复杂问资源共享、持续运行、并行处理、事务完整性等复杂问题的服务,从而简化了商业应用系统。题的服务,从而简化了商业应用系统。 lEclipse(IBM) 200

28、1年年6月,月,IBM将价值将价值4000万美元的万美元的Eclipse捐捐给了开源组织给了开源组织 。3.2lNetBeans (Sun )5.5lJBuilderlJavaJava编译器:编译器:javacjavaclJavaJava解释器:解释器:javajavalJavaJava类分解器:类分解器:javapjavapl小应用程序观察器:小应用程序观察器:AppletViewer AppletViewer l从底部往上,该体系结构分为三层:从底部往上,该体系结构分为三层:操作系统平台:包括操作系统平台:包括Sun的的Solaris、Microsoft的的windows系列、系列、Lin

29、ux和其它操作系统,如和其它操作系统,如IBM AIX、HP-Unix等。等。JDK:包括:包括Java的开发环境(编译、调试等工具)的开发环境(编译、调试等工具)和运行环境。和运行环境。Java语言:面向对象的程序设计语言,所编写的语言:面向对象的程序设计语言,所编写的程序经过编译以后生成能被程序经过编译以后生成能被JVM识别的字节码。识别的字节码。lJDK又分为两部分:又分为两部分:Java开发工具和应用编程接口(开发工具和应用编程接口(Application Programming Interface,API)Java运行环境运行环境JREl从从SunSun的官方网站上下载,网址:的官方

30、网站上下载,网址:l下载下载JDKJDK(JDKJDK中包含了中包含了JavaJava运行环境(运行环境(JREJRE),),而而JREJRE是针对特定平台的,如是针对特定平台的,如 WindowsWindows、LinuxLinux或或SolarisSolaris等等 )例如:例如:jdk-6u6-windows-i586-p.exe jdk-1_5_0-windows-i586.exel假设安装目录为:假设安装目录为:l对于对于Windows 2000或或XPl用鼠标右键单击用鼠标右键单击“我的电脑我的电脑”,弹出快捷菜单,然后选择,弹出快捷菜单,然后选择“属属性性”命令(或打开控制面板,

31、双击命令(或打开控制面板,双击“系统系统” ),弹出),弹出“系统系统属性属性”对话框对话框l再单击该对话框的再单击该对话框的“高级高级”选项,然后单击选项,然后单击“环境变量环境变量”按钮,按钮,就会弹出就会弹出“环境变量环境变量”对话框。对话框。l找到找到“用户变量用户变量”中中“Path”,加入,加入 ”l如果环境变量中没有包含如果环境变量中没有包含Path参数,单击参数,单击“新建新建”按钮,就会按钮,就会弹出弹出“新建用户变量新建用户变量”对话框,对话框, lJava编译器本身就是一个编译器本身就是一个Java语言编写的应用程序。语言编写的应用程序。l它与其它的编译语言不同,它与其它

32、的编译语言不同,它的作用是把它的作用是把Java源程序源程序(.java文件文件)编译生成编译生成Java字字节码节码(.class文件文件)。l这种字节代码与机器代码这种字节代码与机器代码类似,却不针对具体的机类似,却不针对具体的机器。器。l编译格式为:编译格式为:javac options source_filejavac source_name.javaoptions有如下选项:有如下选项: -classpath :指:指定定javac在编译过程中,查找出现的在编译过程中,查找出现的某个类定义搜索路径表,路径间以某个类定义搜索路径表,路径间以“;”分隔;分隔; -d :指定类文件:指定类

33、文件存放的路径,目录间由存放的路径,目录间由“;”分隔;分隔;-g :为调试器生成附加信息,这是缺省:为调试器生成附加信息,这是缺省方式;方式; -ng :不生成附加信息;:不生成附加信息; -nowarn :不显示警告错误信息;:不显示警告错误信息; -o :代码优化;:代码优化;-verbase :编译器和链接程序显示编译:编译器和链接程序显示编译和链接过程中的全部信息;和链接过程中的全部信息;-debug :设置容许调用:设置容许调用Java调试器调试器jdb。 l编译后的字节代码是不能直接在机器上运行的,是通过编译后的字节代码是不能直接在机器上运行的,是通过JavaJava解解释器释器

34、javajava解释执行。其调用格式为:解释执行。其调用格式为:java interpreter options classname program arguments l其中,其中,classnameclassname是类名,是扩展名为是类名,是扩展名为* *.calss.calss的文件的的文件的* *部分,部分,即要执行的程序。即要执行的程序。l在要执行的程序中必须包含一个在要执行的程序中必须包含一个main()main()方法,程序的执行是从方法,程序的执行是从main()main()开始的。开始的。lprogram argumentsprogram arguments部分,是输入保存

35、在部分,是输入保存在main()main()方法中的方法中的argsargs数组中的参数,数组中的参数,main()main()方法格式如下:方法格式如下:public static void main(String args) public static void main(String args) lJavaJava解释器实质上是字节码解释器,指定一个类文件名,它会解释器实质上是字节码解释器,指定一个类文件名,它会自动装载程序中需要的类文件,通过检查机制确定一个类是否自动装载程序中需要的类文件,通过检查机制确定一个类是否合法,确保解释执行的字节码不会破坏合法,确保解释执行的字节码不会破坏J

36、avaJava语言的约定。语言的约定。-verifyremote :对类加载器加载的:对类加载器加载的类代码检查,为缺省方式;类代码检查,为缺省方式; -oss stacksizek|m :设置每个线程:设置每个线程代码大小,单位为代码大小,单位为kbyte或或mbyte;-prof: :使解释器生成一个:使解释器生成一个分析数据文件分析数据文件f或指定的或指定的file文件;文件;-help :使用帮助信息;:使用帮助信息; -ss stacksizek|m :设置初始内存:设置初始内存池的大小,单位为池的大小,单位为kbyte或或mbyte; -v,-verbose :显示

37、类文件装载信:显示类文件装载信息息-verbosegc :示自动搜集无用空间:示自动搜集无用空间动作信息。动作信息。-version :版本信息。:版本信息。 interpreter options有如下选项:有如下选项: -classpath :设置定义类搜索:设置定义类搜索路径;路径;-cs, -checksource :检查类加载后,:检查类加载后,类文件和源程序间的一致性;类文件和源程序间的一致性;-debug :设置允许调用:设置允许调用Java调试器调试器jdb;-ms initmemk|m :设置初始内存池:设置初始内存池的大小,单位为的大小,单位为kbyte或或mbyte; -

38、mx maxmemk|m :设置最大内存池:设置最大内存池的大小,单位为的大小,单位为kbyte或或mbyte; -noasyncgc :设置自动搜集无用空间:设置自动搜集无用空间动作;动作; -noverify :关闭类文件检查;:关闭类文件检查; -verify :检查类文件所有代码;:检查类文件所有代码; lJavaJava类分解器类分解器javapjavap是用于对类文件进行反汇编,分解类的是用于对类文件进行反汇编,分解类的组成单元,调用格式如下:组成单元,调用格式如下: javap options classname classname .javap options classnam

39、e classname .l其中,其中,classnameclassname为类名,可以有多个类名,由空格间隔。为类名,可以有多个类名,由空格间隔。ljavapjavap的输出依赖使用的选项,在缺省方式下,只显示公共,的输出依赖使用的选项,在缺省方式下,只显示公共,不受保护类型的变量和方法。不受保护类型的变量和方法。 optionsoptions的选项参数有:的选项参数有:-p -p :显示类的全部方法和变量,包括:显示类的全部方法和变量,包括私有及受保护类型的方法和变量;私有及受保护类型的方法和变量;-c -c :显示出分解类的反汇编码;:显示出分解类的反汇编码;-classpath -cl

40、asspath :指定:指定javapjavap查找类文件查找类文件的搜索路径表,包括在的搜索路径表,包括在zipzip文件中文件中查找;查找;-l -l :显示行号:显示行号( (带带-o-o选项编译的类选项编译的类) )或或局部变量表局部变量表( (带带-g-g选项编译的类选项编译的类) )。-public -public :显示:显示publicpublic属性的方法和属性的方法和变量;变量;-protected -protected :显示:显示protectedprotected属性的属性的方法和变量;方法和变量;-package -package :显示包信息;:显示包信息;-pr

41、ivate -private :显示:显示privateprivate属性的方法属性的方法和变量;和变量;-version -version :显示版本信息;:显示版本信息;-verigy -verigy :显示验证信息。:显示验证信息。 lapplet是用是用Java编写的一类小程序,它能在小应用程序观编写的一类小程序,它能在小应用程序观察器察器AppletViewer或在支持或在支持Java的浏览器上执行。的浏览器上执行。l小应用程序观察器的作用是下载小应用程序观察器的作用是下载HTML文档中的文档中的applet,其调用格式为:其调用格式为:appletviewer -debug url

42、s l其中,其中,-debug为可选项,它的作用是小应用程序观察器将为可选项,它的作用是小应用程序观察器将由由JDb(Java调试器)内部启动,以便可以调试被调试器)内部启动,以便可以调试被HTML文档中所引用的文档中所引用的applet。 lurls为为Internet网上资源的名称和地址标识表。网上资源的名称和地址标识表。Java有两类应用程序:有两类应用程序:l一类是由一类是由Java解释器控制执行的解释器控制执行的Java application;Java application是可独立运行的是可独立运行的Java程序,它由一个或多程序,它由一个或多个类组成,其中必须有一个类中定义了个

43、类组成,其中必须有一个类中定义了main()方法,方法,main()方法就像方法就像C语言的语言的main函数一样是函数一样是Java application运行的运行的起始点。起始点。 l另一类是嵌入到另一类是嵌入到eb页面中,由页面中,由Java兼容浏览器控兼容浏览器控制执行制执行Java applet。 1 1首先创建一个首先创建一个JavaJava的的applicationapplication源程序源程序(.java(.java文件文件) )为创建一个名为为创建一个名为HelloWorldApp.javaHelloWorldApp.java的文件,则可在任的文件,则可在任何字符编辑器

44、上输入并保存下列何字符编辑器上输入并保存下列JavaJava源程序代码:源程序代码:class HelloWorldApp class HelloWorldApp public static void main(String args)public static void main(String args) 其实质是创建一个名为其实质是创建一个名为HelloWorldAppHelloWorldApp类,并把它保存在类,并把它保存在与它名字相同的文件中与它名字相同的文件中( (即即HelloWorldApp.javaHelloWorldApp.java文件文件) )。 2 2第二步是对已创建好的

45、第二步是对已创建好的JavaJava源程序源程序(.java)(.java)进行编译。进行编译。该步骤是用该步骤是用JavaJava编译器对编译器对JavaJava源程序源程序(.java)(.java)进行编进行编译生成对应的字节代码程序译生成对应的字节代码程序(.class)(.class)。如果编译成。如果编译成功,会得到一个有相同文件名的带功,会得到一个有相同文件名的带.class.class扩展名的扩展名的字节码文件。其命令格式如下:字节码文件。其命令格式如下: javac HelloWorldApp.javajavac HelloWorldApp.java如果编译中不出现错误,将会

46、得到一个名为如果编译中不出现错误,将会得到一个名为HelloWorldApp.classHelloWorldApp.class文件。编译选项使用的是缺省文件。编译选项使用的是缺省方式。方式。 3 3最后就可以解释执行已编译成功的字节码程序最后就可以解释执行已编译成功的字节码程序(.class)(.class) 用用JavaJava解释器解释器javajava对对JavaJava字节码程序字节码程序(.class)(.class)解释执解释执行。行。 在上例得到了在上例得到了HelloWorldApp.classHelloWorldApp.class文件,现在可以用文件,现在可以用javajav

47、a解释执行了,其命令格式如下:解释执行了,其命令格式如下: java HelloWorldApp java HelloWorldApp 运行的结果,将会在标准输出设备上输出:运行的结果,将会在标准输出设备上输出:Hello, World ! Hello, World ! JavaJava解释器在解释执行时,解释处理的是类名,而不解释器在解释执行时,解释处理的是类名,而不是文件名,所以在解释器是文件名,所以在解释器javajava后面跟随的是类名,而后面跟随的是类名,而不能写成文件名的形式不能写成文件名的形式(HelloWorldApp.class)(HelloWorldApp.class)。其

48、选。其选项也使用的缺省方式。项也使用的缺省方式。1 1首先创建保存首先创建保存HTMLHTML页的目录页的目录 创建的这个目录是用来保存创建的这个目录是用来保存HTMLHTML页的,取名为页的,取名为HTMLHTML。基于运行的平台,有如下命令格式:基于运行的平台,有如下命令格式:在在UNIXUNIX系统下:系统下:mkdir -/HTMLmkdir -/HTMLcd -/HTML cd -/HTML 在在Windows 95/NTWindows 95/NT的的DOSDOS方式下:方式下:md HTML md HTML cd HTML cd HTML 如果已经有了存放如果已经有了存放HTMLH

49、TML页的目录,就不需要这一步骤页的目录,就不需要这一步骤了。了。 2 2创建创建JavaJava的的appletapplet源程序源程序(.java(.java文件文件) ) 用字符编辑器输入相应的用字符编辑器输入相应的appletapplet的源程序,它的源程序,它的程序中并不需要一个的程序中并不需要一个main()main()方法必须有一个方法必须有一个类是系统类类是系统类AppletApplet的子类,就是必须有一个类的子类,就是必须有一个类的类头部分以的类头部分以extends Appletextends Applet结尾。结尾。其中,其中,AppletApplet是父类名,它可以是

50、系统类,或是父类名,它可以是系统类,或者是其它已存在的用户自定义类;者是其它已存在的用户自定义类;extendsextends是关键字,代表新定义的类是父类的是关键字,代表新定义的类是父类的子类。子类。2 2创建创建JavaJava的的appletapplet源程序源程序(.java(.java文件文件) ) 下面的例子是创建并保存在下面的例子是创建并保存在HTMLHTML目录中的一个文件名为目录中的一个文件名为HelloJavaApp.javaHelloJavaApp.java的的appletapplet小应用程序。小应用程序。public class HelloJavaApp extend

51、s Appletpublic class HelloJavaApp extends Applet public void paint(Graphics g) public void paint(Graphics g) g.drawString(Hello, Java Applet g.drawString(Hello, Java Applet World !,50,25); World !,50,25); 3 3第三步是对已创建好的第三步是对已创建好的appletapplet源程序源程序(.java)(.java)进行编进行编译。译。 用用JavaJava编译器对编译器对JavaJava的的a

52、ppletapplet源程序源程序(.java)(.java)进行编译进行编译生成对应的字节代码程序生成对应的字节代码程序(.class)(.class)。如果编译成功,会得到一个有相同文件名的带如果编译成功,会得到一个有相同文件名的带.class.class扩展名的字节码文件。这与扩展名的字节码文件。这与applicationapplication文件的编译是文件的编译是一样的。一样的。 其命令格式如下:其命令格式如下: javac HelloJavaApp.java javac HelloJavaApp.java 得到一个名为得到一个名为HelloJavaApp.classHelloJav

53、aApp.class文件。编译选项使文件。编译选项使用的是缺省方式。用的是缺省方式。 4 4第四步创建第四步创建appletapplet嵌入到嵌入到HTMLHTML文档中文档中把编好的把编好的appletapplet小应用程序,嵌入到小应用程序,嵌入到HTMLHTML文档中,并文档中,并保存在一个文件中。保存在一个文件中。下例是创建一个名为下例是创建一个名为HelloJava.htmlHelloJava.html件,并且将件,并且将HelloJavaApp.classHelloJavaApp.class嵌入进去。嵌入进去。 A Simple Program A Simple Program 5 5最后加载最后加载HTMLHTML文件文件 在在Java兼容浏览器上的兼容浏览器上的URL处,按下例格式输处,按下例格式输入新建的入新建的HTML文件:文件:C:HTMLHelloJava.html另外,另外,JDKJDK软件包软件包中提供了一个模拟中提供了一个模拟WebWeb浏览器运行浏览器运行AppletApplet的应用程序的应用程序AppletViewerAppletViewer,使,使用它调式程序就

温馨提示

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

评论

0/150

提交评论