面向WEB的java语言程序设计第一章.ppt
《面向WEB的java语言程序设计第一章.ppt》由会员分享,可在线阅读,更多相关《面向WEB的java语言程序设计第一章.ppt(175页珍藏版)》请在三一文库上搜索。
1、1,面向WEB的JAVA语言程序设计,天津职业技术师范大学 2013年3月27日,第1章 Java入门,1 JAVA介绍 1.1 第一个Java Application程序 1.2 第一个Java Applet程序 1.3 Java语言的特点 2 Java简单语法 2.1 Java程序的构成 2.2 数据类型、变量与常量 2.3 表达式 2.4 流程控制语句,1.1 第一个Java Application程序 Java语言是当今流行的新兴网络编程语言,它的面向对象、跨平台、分布应用等特点给编程人员带来了一种崭新的计算概念,使WWW从最初的单纯提供静态信息发展到现在的提供各种各样的动态服务,发生
2、了巨大的变化。Java不仅能够编写小应用程序实现嵌入网页的声音和动画功能,而且还能够应用于独立的大中型应用程序,其强大的网络功能能够把整个Internet作为一个统一的运行平台,极大地拓展了传统单机或Client/Server模式应用程序的外延和内涵。自从1995年正式问世以来,Java已经逐步从一种单纯的计算机高级编程语言发展为一种重要的Internet平台,成为当今计算机业界不可忽视的力量和重要的发展潮流与方向。,根据结构组成和运行环境的不同,Java程序可以分为两类:Java Application和Java Applet。 Java Application是完整的程序,需要独立的解释器
3、来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立程序,由Web浏览器包含的Java解释器来解释运行。Java Application和Java Applet各自使用的场合也不相同。 Java编程一般可以分为编辑源程序、编译生成字节码和解释运行字节码几个步骤,下面以一个最简单的Java Application程序为例来分别介绍这三个过程。,1.1.1 源程序编辑 Java源程序是以.java为后缀的简单的文本文件,可以用各种Java集成开发环境中的源代码编辑器来编写,也可以用其他文本编辑工具,如Dreamweaver、UltraEdit软件等。下面是一个最简单的Ja
4、va Application的例子。 例 1-1 MyJavaApplication.java源代码,1: import java.io.*; 2: public class MyJavaApplication 3: 4: public static void main(String args ) 5: 6: System.out.println(Hello, Java World!); 7: /行注释:end of main method 8: /end of class,在例1-1中,每一行前面的行号是为了方便解释而附加的,在真正的Java程序中不应该存在。在第1行中利用import语句加
5、载已定义好的类或包在本程序中使用,大体类似于在C程序中用#include语句加载库函数。第2行中的关键字class说明一个类定义的开始。类定义由类头部分(第2行)和类体部分(第3行至第8行)组成。类体部分的内容由一对大括号括起,在类体内部不能再定义其他的类。任何一个Java程序都是由若干个这样的类定义组成的,就好像任何一个C程序都是由若干个函数组成一样。需要指出的是Java是区分大小写的语言,class与Class,CLASS在Java里面代表不同的含义,定义类必须使用关键字class作为标志。在上面的Java源程序中只定义了一个类,其类名为MyJavaApplication。,在类体中通常有
6、两种组成成分,一种是域,包括变量、常量、对象数组等独立的实体,另一种是方法,是类似于函数的代码单元块,这两种组成成分通称为类的成员。在上面的例子中,类MyJavaApplication中只有一个类成员:方法main。上例中的第4句定义了这个main方法的方法头,第5至7句是main方法的方法体部分。用来标志方法头的是一对小括号,在小括号前面并紧靠左括号的是方法名称,如main,run,handleEvent等;小括号里面是该方法使用的形式参数,方法名前面是用来说明这个方法属性的修饰符,其具体语法规定将在后面介绍。方法体部分由若干以分号结尾的语句组成并由一对大括号括起,在方法体内部不能再定义其他
7、的方法。,上面例子中的main方法是一个特殊的方法,它是所有的Java Application程序执行的入口点,所以任何一个Java Application方法必须有且只能有一个main方法,而且这个main方法的方法头必须按照下面的格式书写: public static void main(String args ) 当执行Java Application时,整个程序将从这个main方法的方法体的第一个语句开始执行。在上面的例子中,main方法只有一个语句: System.out.println(Hello, Java World!);,这个语句将把字符串“Hello, Java World
8、!”输出到系统的标准输出上,例如系统屏幕。其中System是系统内部定义的一个系统对象;out是System对象中的一个域,也是一个对象;println是out对象的一个方法,其作用是向系统的标准输出输出其形参指定的字符串,并回车换行。 利用文本编辑器将上述例子中的所有语句输入计算机,并保存为一个名为MyJavaApplication.java的源文件,就可以进入下一步编译源代码。,1.1.2 字节码的编译生成 高级语言程序从源代码到目标代码的生成过程称为编译。在Java程序中源代码经编译所得的目标码称为字节码。字节码是二进制的文件,编程人员无法直接读懂,由Java语言的解释器来解释执行字节码
9、。编译字节码需要使用专用的Java编译器,在集成化的Java开发环境(如本书将要介绍的Visual J+等)中,只要选择一个菜单命令或单击某一个按钮就可以完成这个编译过程,而在JDK这样的命令行开发工具中则需要运行独立的编译程序。,Java Develop Kit简称为JDK,是Java的发明者Sun公司免费发行的Java开发工具。可以很方便地从Sun的站点(http:/ 1.6编译运行。把JDK软件包从网上下载到本地机之后,就可以用命令行调用专用的Java编译器生成字节码。例如,要根据例1-1中的源程序生成字节码,就可以使用下面的命令: javac MyJavaApplication.jav
10、a,该命令的作用是调用JDK软件包中的Java编译器程序javac.exe,检查源代码文件MyJavaApplication. java中是否有语法错误并生成相应的字节码文件。需要注意的是Java源程序文件名要完整给出并保证大小写的准确,否则可能引发编译错误。如果类似的或其他的编译错误被编译器在编译过程中发现,编译器就会在屏幕上输出这些错误所在的源代码行号和错误的主要信息;否则编译成功并生成字节码文件。,在C语言等其他高级语言的编译过程中,通常都是一个源代码文件生成一个目标码文件,而Java程序的编译则是对应源代码文件中定义的每个类,生成一个以这个类名字命名、以.class为后缀的字节码文件,
11、源代码中定义了几个类,编译结果就生成几个字节码文件。 例1-1中源代码文件MyJavaApplication.java中只定义了一个类MyJavaApplication,所以编译的结果将生成一个名为MyJavaApplication.class的字节码文件。下面再来看一个定义了两个类的Java程序例子。 例 1-2 MyApplication2.java,1: import java.io.*; 2: pubic class MyApplication2 3: 4: public static void main(String args) 5: 6: System.out.println(Us
12、erClass.m-sMessage); 7: 8: 9: 10: class UserClass 11: 12: static String m-sMessage = Message from User Defined Class; 13: ,这个例子中定义了两个类,一个是含有main方法的主类MyApplication2,另一个是含有一个域m-sMessage的类UserClass。m-sMessage是一个字符串对象,在定义类时已经给出了它的初值,主类MyApplication2中的main方法使用了这个字符串对象,直接将其初值输出到屏幕。,需要注意的是一个Java源代码文件中可以定义多
13、个类,但是其中只能有一个类含有main方法,因为main方法是程序执行的入口点,而一个Java Application程序只能有一个入口点。这个含有main方法的类就称为主类,按惯例这个类名就是Java源文件名。 执行下面的命令编译例1-2中的源代码,就可以得到两个字节码文件MyApplication2.class和UserClass.class。 javac MyApplcation2.java,1.1.3 字节码的解释与运行 如图1.1,高级编程语言按照执行模式可以划分为编译型和解释型两种。编译型的高级语言,如C,VB等,生成的字节码经链接后就成为可以直接执行的可执行代码;而解释型语言,如
14、C+,Java等,其程序不能直接在操作系统级运行,需要有一个专门的解释器程序来解释执行。,图 1.1 传统语言与Java的不同运行机制,一般说来,解释型的语言比较简单,执行速度也较慢,但是在网络应用平台中,解释型语言却有着一个重要的优势。由于编译型语言是直接作用于操作系统的,所以对运行它的软硬件平台有着较强的依赖性,在一个平台上可以正常运行的编译语言程序在另一个平台上可能完全不能工作,而必须在这个特定平台上将源代码重新编译,从而生成适合这个特定平台的可执行代码。这种可移植性上的不足对于以网络为支撑平台的应用程序将是很大的麻烦,因为网络是由不同软硬件平台的计算机组成的,为了使这些机器都能够顺利运
15、行编译型应用程序,就必须专门为各种不同的平台开发出不同版本的应用程序,同时对于版本升级和维护的工作量也将非常大。,解释型语言为解决这个问题提供了一个全新的思路,Java就是遵循这个思路设计而成的。由Java源代码编译生成的字节码不能直接运行在一般的操作系统平台上,而必须运行在一个称为“Java虚拟机”的在操作系统之外的软件平台上。在运行Java程序时,首先应该启动这个虚拟机,然后由它来负责解释执行Java的字节码。这样,利用Java 虚拟机就可以把Java字节码程序跟具体的软硬件平台分隔开来,只要在不同的计算机上安装针对其特定具体平台特点的Java虚拟机,就可以把这种不同软硬件平台的具体差别隐
16、藏起来,使得Java字节码程序在不同的计算机上能够面对相同的Java虚拟机,而不必考虑具体的平台差别,从而实现了真正的二进制代码级的跨平台可移植性。,Java程序可以分为Java Application和Java Applet两类,这两类程序的运行方式有很大的差别。Java Application是由独立的解释器程序来运行的,在JDK软件包中,用来解释执行Java Application字节码的解释器程序称为java.exe。 运行例2-1生成的MyJavaApplication.class程序可以使用如下的语句: java MyJavaApplication 其运行结果是在屏幕上显示: He
17、llo, Java World! 运行例1-2中的程序,可以使用如下的命令: java MyApplication2,源程序经编译产生了两个字节码文件,由于MyApplication2是包含main方法的主类,所以将其作为解释器的运行参数。当运行过程中需要用到第二个类UserClass时,由于它与主类MyApplication2在同一个源代码文件中,所以系统会自动识别并调用这个类的有关成员,保证程序的正常运行。在这个例子中,程序运行的结果是在屏幕上显示:Message from User Defined Class Java Application是由若干个类定义组成的独立的解释型程序,其中必
18、须有一个包含main方法的主类;执行Java Application时,需使用独立的Java解释器来解释执行这个主类的字节码文件。,1.2 第一个Java Applet程序 Java Applet是另一类非常重要的Java程序,虽然它的源代码编辑与字节码的编译生成过程与Java Application相同,但它却不是一类可以独立运行的程序,相反,它的字节码文件必须嵌入到另一种语言HTML的文件中并由负责解释HTML文件的WWW浏览器充当其解释器,来解释执行Java Applet的字节码程序。,HTML是Internet上最广泛应用的信息服务形式WWW中使用的通用语言,它可以将网络上不同地点的多
19、媒体信息有组织地呈现在WWW浏览器中,而Java Applet的作用正是进一步丰富HTML中的信息内容和表达方式,其中最关键的,是在WWW中引入动态交互的内容,使得它不仅仅能提供静态的信息,而且可以提供可靠的服务,从而使网络更广泛地渗入到社会生活的方方面面。,1.2.1 源程序的编辑与编译 例 1-3 MyJavaApplet.java 1: import java.awt.Graphics;/将java.awt包中的系统类Graphics引入本程序 2: import java.applet.Applet;/将java.applet包中的系统类Applet引入本程序 3: public cl
20、ass MyJavaApplet extends Applet 4: 5: public void paint(Graphics g) 6: 7: g.drawString(Hello, Java Applet World!, 10 , 20); 8: /end of paint method 9: /end of class,在这个程序里使用了多处行注释,在Java程序中,两道斜线(/)代表行注释的开始,跟在它后面的所有内容都将被编译器和解释器忽略而作为提高程序可读性的注释部分。 首先,程序的第1、2行利用import关键字引入了程序需要用到的两个系统类Applet和Graphics。这两个
21、系统类分别位于不同的系统包中,所以引用时需要指明它们所在的包名。包(package)是Java系统用来组织系统类的组织,功能作用和来源相关的系统类通常放在同一个包中。,例1-1中的第1句:import java.io.*;其作用是将系统包java.io中的所有类都引入到当前程序中以便使用,是Java程序中常用的引入系统类的方法。 例1-3中的第3行声明了一个名为MyJavaApplet的用户自定义类。与Java Application相同,Java Applet程序也是由若干个类定义组成的,而且这些类定义也都是由class关键字标志的。但是Java Applet中不需要有main方法,它的要求
22、是程序中有且必须有一个类是系统类Applet的子类,也就是必须有一个类的类头部分以extends Applet结尾,就像在例1-3的第3行中定义的那样。其中extends是关键字,代表新定义的类是它后面跟着的已经存在的父类的子类;,Applet是父类名,它可以是系统类,或者是其他已存在的用户自定义类。当一个类被定义成是另一个已经存在类的子类时,它将从其父类中继承一些成员,包括域和方法,这样子类就可以利用父类已实现的功能而不必重复书写语句了。 所有的Java Applet程序中都必须有一个系统类Applet的子类,因为系统类Applet中已经定义了很多的成员域和成员方法,它们规定了Applet如
23、何与执行它的解释器WWW浏览器配合工作,所以当用户程序使用Applet的子类时,因为继承的功能,这个子类将自动拥有父类的有关成员,从而使WWW浏览器顺利地执行并实现用户程序定义的功能。,例1-3的第4行到第9行是类MyJavaApplet的类体部分,其中只定义了一个方法paint。实际上,paint方法是系统类Applet中已经定义好的成员方法,它与其他的一些Applet中的方法一样,能够被WWW浏览器识别和在恰当的时刻自动调用,所以用户程序定义的Applet子类只需继承这些方法并按具体需要改写其内容(这个过程称为“重载”),就可以使WWW浏览器在解释Java Applet程序时通过自动执行用
24、户改写过的成员方法,例如paint方法,来实现用户程序预期的功能。,具体到paint方法,它将在WWW所显示的Web页面需要重画时(例如浏览器窗口在屏幕上移动或放大、缩小等)被浏览器自动调用并执行,其作用一般是说明并画出Java Applet程序在浏览器中的外观。当把一个Java Applet程序嵌入HTML文件时,HTML文件会在其Web页面中划定一块区域作为此Applet程序的显示界面,当Java Applet程序希望在这块自己的区域中显示图形、文字或其他程序需要的信息时,它只需要把用来完成这些显示功能的具体语句放在paint方法里即可。当浏览器浏览这个Applet程序所在的HTML文件时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 WEB java 语言程序设计 第一章
链接地址:https://www.31doc.com/p-2618661.html