Java程序设计运行原理介绍_第1页
Java程序设计运行原理介绍_第2页
Java程序设计运行原理介绍_第3页
Java程序设计运行原理介绍_第4页
Java程序设计运行原理介绍_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 Java入门 1.1 Java简介vJava的崛起 v面向对象的程序设计语言 vJava平台和虚拟机 v两类Java程序 vJava程序开发环境SDK Java的崛起 v1991年4月8日,从工作站起家的Sun公司为了把市场扩大到消费电子产品,成立了一个专门的工作小组,着手代号为“Green”的项目,目的是开发一个分布式代码系统,让人们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,同它们进行信息交流 v应用的C+进行开发。但是C+太复杂,安全性也差,最后不得不定义一套新的语言系统,于是便有了Oak的问世 vOak一方面汲取了C+中的有益成分,同时融进了网络应用特性,可

2、以称上是一种的精巧而安全的语言了 vMark Ardreesen的Mosaic和Netscape的巨大成功给Oak项目组成员带来了新的希望,他们重整旗鼓,对Oak进行了一次新的整合,并取名为Java,后用Java编制了HotJava浏览器,吹响了进军Internet的号角 vJava所特有的“write once, run anywhere.”(一次编写,到处运行)的平台无关性的概念,与Internet的异构网络互连一拍即合,它特别适合于在网络开发中使用 面向对象的程序设计语言vJava语言是一种面向对象的程序设计语言,它通过描述对象本身以及对象间的相互关系,并通过激发对象间的相互作用,来求解

3、问题 v对现实世界中事物的对象,要由两个部分来描述,一是其静态属性对象的状态,用“数据”来描述;一是其动态属性对象的行为,用“方法”来描述 v在面向对象的程序设计语言中,并不是去定义一个一个的对象,而是先定义同一类对象的模板类(class),再从类创建其对象 电子时钟的Java描述 v电子时钟的静态属性电子时钟的状态,用变量hour(时)、minute(分)、second(秒)描述 v电子时钟的动态属性电子时钟的行为,如显示时间,设置时间等,用以下方法描述: getMinute ( )显示“分”; getHour ( )显示“时”; setSecond ( )设置“秒”; setMinute

4、( )设置“分”; setHour ( )设置“时”。class TimeClockprivate int iSecond, iMinute, iHour;public int getMinute ( );/ 显示“分”public int getHour ( );/ 显示“时”public void setSecond ( );/ 设置“秒”public void setMinute ( );/ 设置“分”public void setHour ( );/ 设置“时”类描述符类名整数描述符语句结束符注释符类体类的首部私有访问权限修饰符公共访问权限修饰符相关说明v从结构上看,类由类的首部和类体

5、构成 v类体由紧随类的首部的一对花括号及花括号中的一些语句组成 v类体中含有类的数据部分和类的方法部分,分别称为类的成员变量和成员方法,它们都是类的成员 v方法由方法首部和方法体组成 v有些方法执行后要向调用者(不是标准输出)送回一个数据,这样的数据称为方法的返回值 v注释是对程序、程序的局部或一个语句的说明,用于增加程序的可读性 v这个TimeClock是一个时钟类的界面,当此界面中所有方法的方法体都定义后,就构成了一个时钟类,由这个时钟类可以创建多个时钟对象 vJava是区分大小写字母的语言 v程序员可以自己定义类,也可以使用事先已经定义好的类 v本例只是电子时钟类的设计的一个例子,它不是

6、唯一的 计算圆的周长和面积 class Circlefloat r; / 半径final double PI = 3.14159; / 最终变量Circle(float d) / 构造方法 r = d;double circum ( ) / 求圆周长的方法 return 2 * PI * r;double area( )/ 求圆面积的方法 return PI * r * r; Circle类中含有两个数据成员 v半径r和一个常数PI() , r使用了float型,PI使用了double型 数据类型名(关键字)占用内存空间数值范围十进制表数精度int4字节-231231-1float4字节(3.

7、4028235E+38f)(1.40239846E-45f)67位double8字节(1.79769313486231570E+308)(4.94065645841246544E-324)15位final vPI由于加了“final”,表示在程序执行过程中其值不能再变化,PI称为最终变量。最终变量在程序中一般用大写 Circle类中定义了方法的结构 方法首部方法体方法首部描述 v方法名v方法的返回值类型v参数及其类型v其他修饰符 Java基本的运算符 v+(加), -(减或负), *(乘), /(除)v(大于), =(大于等于), = =(等于), (小于), =(小于等于), ! =(不等于

8、)v= 称为赋值号,意即将其右面的值送到左面的变量中,相当于往一个内存单元中存放入一个数据值。 类的构造方法 v类的构造方法与类同名,描述由类生成对象的操作,在创建对象时由系统调用。下面的主类定义中给出了构造方法的作用 主类 vJava应用程序由很多类组成,其中有且只有一个主类。v含有主方法main( )的类称为Java应用程序的主类。vJava规定,主类名必须与主类所在的文件名相同。v程序运行后,Java首先执行主类主方法中的第一个语句 主类UseCircle的定义 class UseCirclepublic static void main(String args ) Circle aCi

9、rc = new Circle(5.3f); / 生成一个圆对象 double s = aCirc.circum( );/ 计算该圆对象的周长 double d = aCirc.area( );/ 计算该圆对象的面积 System.out.println(半径为: + aCirc.r + 的圆的周长为: + s); / 输出周长 System.out.println(半径为: + aCirc.r + 的圆的面积为: + d);/ 输出面积 说明 vUseCircle类中,首先用new命令来调用Circle类的构造方法来创建一个Circle类的对象aCirct v用语法形式:对象名.成员名;调用

10、Circle类中的成员 v调用系统方法System.out.println( )输出结果 Java平台vJava平台是一种纯软件平台,它需要其它基于硬件的平台(如Window2000,Linux等)的支持。vJava平台由Java虚拟机(JavaVM)和Java应用程序接口(JavaAPI)两部分组成。vJava虚拟机易于被移植到基于不同硬件的平台上,是Java平台的基础; Java应用程序接口由大量已做好的Java组件(组件是一种类)构成,这个接口提供了丰富的Java资源。 Java虚拟机v由于不同的机器有不同的机器语言,并且由于操作系统环境的排他性,使得在一种平台上开发的程序运行到另一个平

11、台上时,多少还要进行一些修改,这样就比较麻烦 vJava破解各机器不同的机器语言的策略是定义出自己的一套虚拟机器Java虚拟机 Java虚拟机的工作原理 编写Java程序Java编译器Java源代码(*.java文件)字节码(*.class文件)Java虚拟机Java解释器for WindowsJava解释器for UnixJava解释器for Mac OSPC计算机Unix服务器Mac计算机Javav一台Java虚拟机就是一台Java解释器。经过Java解释器的解释,才得到具体的机器可以执行的代码v通常把Java程序的翻译过程称为半编译、半解释。而其他语言程序要么是全编译,要么是全解释vJa

12、va既是一种语言,也是一种平台。作为一种语言,Java通过所谓“半编译、半解释”使得Java程序具有“一次编写,到处运行”的特点 两类Java程序v按照运行环境的不同,可将普遍使用的Java程序分为两种:vJava应用程序(Java Application)。其是在本机上由Java解释程序来激活Java虚拟机vJava Applet(Java小应用程序) 。其是通过浏览器来激活Java虚拟机 v它们都是在Java虚拟机中执行Java Application v在Java语言中,每个应用程序都是以类的形式出现的。一个程序中既可以只包含一个类,也可以包含多个类,此时称为是一个多类程序。vJava提

13、供了一个特殊的方法main ( )方法,每个应用程序的执行都是从主方法main ( )开始的,没有main ( )方法的应用程序是不能执行的。v包含了main ( )方法的类叫做主类,程序的主文件名必须与主类相同 一个问候程序 该程序的功能是在屏幕上显示一个问候: Hello, World!问候程序Java代码 vclass HelloWorldvvpublic static void main (String Args )vvSystem.out.println (“Hello, World!”);vvmain()方法 vmain()方法是Java Application程序的入口,有着固定

14、的书写格式:vpublic static void main (String args ) vvvv其中:v public表明所有的类都可以使用这一方法;v static指明该方法是一个静态方法,可以通过类名来直接调用;v void则表示main()方法不返回任何值;v main(String args )是该方法的头部,圆括号内是该方法可接受的参数。vJava解释器总是从main()方法开始解释和执行应用程序,因此一个可执行的Application必须而且只能有一个main ()方法 v本例中只有一条语句:System.out.println (Hello, World! );其中,Syst

15、em是一个系统类,System.out 指代了标准输出流,通过它的println()方法可以往标准输出设备上输出数据 Java Applet import java.applet.Applet; / 将java.applet包中的系统类Applet引入本程序import java.awt.Graphics; / 将java.awt包中的系统类Graphics引入本程序public class Hello_Applet extends Applet public void Paint (Graphics g )g.drawString (“Hello wold!),50,25);引入系统类语句类

16、的首部类体关键字表示引入系统类import v关键词import用于将系统类引入本程序v本例中引入了两个系统类Applet和Graphics。这两个系统类分别位于不同的系统包java.applet和java.awt中v引用一个系统类时需要指明它们所在的包名 类的声明vApplet与Application在结构上是有较大不同的,最主要体现在Applet中没有main()方法v一般来说,Applet中的类必须是公共的(用public来修饰)或有一个public型的构造方法,而且必须有一个类是系统类Applet的子类v所谓一个类是另一个类的子类,就是说一个类继承了另一个类,两个类之间存在继承关系。

17、类的派生 AppletHello_Applet子类父类Java Applet程序vJava Applet不像Java Application那样是一个独立的程序,它虽然也要先经过半编译生成字节码文件,但是这个字节码文件不能够直接被执行和使用。按照约定,它必须由支持Java的WWW浏览器(如IE、Netscape、Hotjava等)或appletviewer加载执行 Applet运行的完整过程 源代码(*.java文件)字节码(*.class)文件Java编译器HTML文件Applet嵌入标记WWW服务器下载HTML文件请求HTML文件WWW浏览器请求Applet字节码下载Applet字节码解释

18、执行Applet字节码Java程序开发环境SDKv工欲善其事,必先利其器。为了支持用户的Java程序开发v但是,SUN公司开发的Java 2 SDK(Java 2 Software Development Kit)比较适合初学者使用 SDK集成有如下一些功能 vJava编译器;vJava解释器: 内附AppletviewerApplet Bytecode解释器; 内附JavaApplication解释器。v简单的除错工具。 1.2 Java程序开发过程v1 Java应用程序开发过程举例 v2 Java Applet开发过程举例 1.2 Java程序开发过程Java应用程序开发过程举例v编辑创建

19、Java源程序.源程序用Java编程语言直接编写的程序,通常是由一个或多个类组成的正文文件,后缀为.java v半编译用Java编译器(Javac)将Java源程序翻译成Java虚拟机 (the Java Virtual Machine,简称Java VM)能理解的指令、再将这些指令组织为字节码文件将源程序编译为字节码文件(后缀为.class)的过程 v半解释(运行)Java虚拟机(Java)解释、运行包含在字节码文件中的程序 创建源文件 保存过程 v输入完毕,检查无错后,应将这些代码保存到一个文件中。Java规定,Java应用程序源代码后缀名必须为 .java 半编译 v在JDK中,Java

20、的编译器是javac.exe。使用javac命令,就可以将Java源文件编译成字节码 vjavac命令的一般格式为:javac .java path路径设置 vpath环境变量应指定操作系统到什么地方去查找Java工具,并可以将当前所用机器的Java工具所在的路径(一般在JDK文件夹下的BIN子文件夹中)赋给path环境变量。例如:vpath= %path%;c:JDK1.2.2BIN 半解释运行 v编译生成的字节码文件可以在本机中由java解释器java.exe运行。java命令的一般格式为: java 文件名文件名 classpath环境变量 vclasspath环境变量指定Java工具到什么地方去查找类文件(.class文件)。系统提供的类文件相关信息一般在JDK文件夹下的LIB子文件夹中,然后还需将用户自己的类文件所在文件夹赋给classpath环境变量。例如:set classpath=c:jdk1.2.2lib.;d:javaprogram HelloWorld程序的编译、运行过程 向应用程序传递参数 vJava应用程序通常是在命令行下运行的,允许用户在这个命令行中向它传递信息,运行时向程序传送数据,增加了该程序的通用性 v假设用下面的命令来运行程序:vjava WhoSayWhat Marry Good Day!v那么程序的运行结果为:vM

温馨提示

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

评论

0/150

提交评论