
第2章Java概述 一、要点解析 1,教学内容 Jna语言的产生:va语言的应用前景:Jna语言和C+:Jna语言的特点:Jmva Applet和Jaa Applica通en:HTML语言:Java Applet程序的编辑、编译和运行:Java Applica减ion程序的编辑、编译和运 行. Jna语言主要有以下九个特点: 简单性、面向对象、分布性、鲁棒性、安全性、可移植性、高性能、多线程、动态性。 1.简单性:Jva语言是一种面向对象的程序设计语言,通过提供最基本的方法米完成指定的操作任 务:同时J略去了诸如指针、结构体、运算符重载,多重继承等概念,再有a语言是由C+语言发 展而来。语言风格十分相拟,因此只须掌握一些最基本的概念,编写出符合要求的应用程序,易于学习。 2面向对象:J语言区别于传统语言的一个重要特点是支特面向对象的程序设计,使设计者可以 把精力集中于对象及其接口授计。Jv语言提供了类及动态接口模型,类中封装了成员变量和相应的方 法,实现了数据的封装和信息的隐蔽:同时,通过继承机制子类可以继承父类的方法。实现了代码的复月。 3.分布性:a语言是面向网络的编程语言。通过它提供的类库可以处理TCPP协议,用户可以通 过UL陆址(统一资源定位器,WW的地址编码)在网路上很方锂地访问其它对象。 4.鲁棒性:J在编泽和运行程序时,都要对可能出现的间愿遗行检查,以消除错误的产生。它提供 的自动垃圾收集器可以自动述行内存管理,防止程序员在管理内存时容易产生的情误。通过例外处理机制 可帮躺程序员防止:系统崩清。另外,在编译时v还可以捕获类定文中的许多常见错误,防止动态运行时 不匹配间思的出现。 5.安全性:在网络和分布环境下,防止病毒的入侵是一个必须引起重程的重大问愿。Jn语言不支持 指针,一切对内存的访月都必须通过对象的实例变量米实现。这样可以避免了指针操作中容易产生的错误, 6可移植性:与平台的无关性使得Jn语言程序可以很方便地移植到料络上的不同机卷,同时J 类库也实现了与不同平台的接口,使这些类库可以移植。再有Java编译器是由J口语言实现的,Ja运 行时系统由标准C语言实现,也使a系统具有可移植性 7.较高的适应性:Jva同其它解释执行的高级语言(知BAS1C)不同,Java语言解释器生成与体系 结构无关的字节码指令,使程序可以很容易地转换成所运行的CU的机渴码,从而可在任意的处理 墨上运行。 8多线程:多线程机制使应用程序控够并行执行,使程序设计者可以分别用不同的线程完成特定的操 作而不需要采用全同事件循环机制,可很容号地实残网铬上的实时交互。 9.动态性:Jva语言的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和 实例变量而不会影响用户程序的执行。并且Jv通过接口来支持多重候承使其更具有灵活性和扩展性。 根据结构组成和运行环境的不同语言程序可分为两类程序:
第 2 章 Java 概述 一、要点解析 1.教学内容 Java 语言的产生;Java 语言的应用前景;Java 语言和 C++;Java 语言的特点;Java Applet 和 Java Application;HTML 语言;Java Applet 程序的编辑、编译和运行;Java Application 程序的编辑、编译和运 行。 Java 语言主要有以下九个特点: 简单性、面向对象、分布性、鲁棒性、安全性、可移植性、高性能、多线程、动态性。 1.简单性: Java 语言是一种面向对象的程序设计语言,通过提供最基本的方法来完成指定的操作任 务;同时 Java 略去了诸如指针、结构体、运算符重载、多重继承等概念,再有 Java 语言是由 C++语言发 展而来,语言风格十分相似,因此只须掌握一些最基本的概念,编写出符合要求的应用程序,易于学习。 2. 面向对象: Java 语言区别于传统语言的一个重要特点是支持面向对象的程序设计,使设计者可以 把精力集中于对象及其接口设计。 Java 语言提供了类及动态接口模型,类中封装了成员变量和相应的方 法,实现了数据的封装和信息的隐蔽;同时,通过继承机制子类可以继承父类的方法,实现了代码的复用。 3.分布性:Java 语言是面向网络的编程语言 。通过它提供的类库可以处理 TCP/IP 协议,用户可以通 过 URL 地址(统一资源定位器,WWW 的地址编码)在网络上很方便地访问其它对象。 4.鲁棒性:Java 在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供 的自动垃圾收集器可以自动进行内存管理,防止程序员在管理内存时容易产生的错误。通过例外处理机制 可帮助程序员防止系统崩溃。另外,在编译时 Java 还可以捕获类定义中的许多常见错误,防止动态运行时 不匹配问题的出现。 5.安全性:在网络和分布环境下,防止病毒的入侵是一个必须引起重视的重大问题。 Java 语言不支持 指针,一切对内存的访问都必须通过对象的实例变量来实现,这样可以避免了指针操作中容易产生的错误。 6.可移植性:与平台的无关性使得 Java 语言程序可以很方便地移植到网络上的不同机器。同时 Java 类库也实现了与不同平台的接口,使这些类库可以移植。再有 Java 编译器是由 Java 语言实现的, Java 运 行时系统由标准 C 语言实现,也使 Java 系统具有可移植性。 7.较高的适应性:Java 同其它解释执行的高级语言(如 BASIC)不同,Java 语言解释器生成与体系 结构无关的字节码指令,使 Java 程序可以很容易地转换成所运行的 CPU 的机器码,从而可在任意的处理 器上运行。 8.多线程:多线程机制使应用程序能够并行执行,使程序设计者可以分别用不同的线程完成特定的操 作而不需要采用全局事件循环机制,可很容易地实现网络上的实时交互。 9. 动态性:Java 语言的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和 实例变量而不会影响用户程序的执行。并且 Java 通过接口来支持多重继承使其更具有灵活性和扩展性。 根据结构组成和运行环境的不同 Java 语言程序可分为两类程序:

Java Applct JavaApplication 1.JavaApplet JavaApplet是Jva小的应用程序,它是动药、安全、跨平台的网络应用程序: Java Applet必领嵌入到HTML.文件中,由W由浏览器内部包含的ava解释程序米解释执行,所以Jva Aple是非验立的程序。 由于有了Ag,HTML页面从静老的文本,图象变成了动态的可执行程序, 利用JavaAp即可以完成图象、声音、动画等内容的下载和播放。使HT页面变得更加生动 JavaApplet还可以完成与用户的交互操作和服务器的网络通信,它极大地丰富了WWW的功能. 2.Java Application Java Application是Java语言相对独立的、完整的程序,它需要鞋立的解释器来解释运行:它同其它 高领语言编写的程序一样,可以控制和使用计算机的资源。 Java Application程序从编辑到运行要经过编辑,编译和解释执行三个过程。 1.源程序的编辑 J源程序是以?Java为后缀的简单文本文件,可以用各种Jva集成开发环境中的源代码编铜器来 编写,也可以用其它文本编辑工具米编写。 2.源程序的编译 通常高级语言配序由题代码程序到目标代码配序的生成过程称为编译。源程序经过编译后生成的目标 文件通常为8位的ASCI码文件。 醉程序中尊代码程序经编译生成的目标代码程序不是8位的ASC码文作,而是两个字节(6位)的 字节码文件。 编译字节码文件需要使用专用的Ja编译要,在集成化的Java开发环境(如VMl++)中,只要透择 相应的菜单命令或单击相应的一个按银就可以完成这个编译过程。 编译后的字竹码文件是二进制文件,编程人员无法直接读懂,要由语言的解释器来解释执行。 在此要注意以下两个问愿: ()Ja源程序的文件名要完整地给出并保证大小写的准确,否则会引发编译错误。 ②Jva程序的编译是对应源文件中所定义的每个类生成一个以这个类名命名、以,cs为后缀的字 竹码文件,也就是说:源代码文件中定义了几个类。编译结果纸生成几个字节码文件。 3.字节码文件的解释、执行 由Jv源代码编译所生成的字节码文件,不能直接运行在一般的慢作系统平台上,而必须运行在称 为“Ja虚夏机“的在操作系统之外的软件平台上。运行Ja程序时首先应该启动这个Jma虚叛机,据 后由它米解释、执行Java的字节码文件。 2.教学要求 了解,Jna语言的产生、应用前景和特点: 了解:ML文件的作用: 掌预:Ja语言和C+◆语言的相民处及不同处: 热练掌摆:JavaApplet程序和JavaApplicatio程序的编相、编译和运行过程
Java Applet 和 Java Application 1. Java Applet Java Applet 是 Java 小的应用程序,它是动态、安全、跨平台的网络应用程序; Java Applet 必须嵌入到 HTML 文件中,由 Web 浏览器内部包含的 Java 解释程序来解释执行。所以 Java Applet 是非独立的程序。 由于有了 Java Applet ,HTML 页面从静态的文本、图象变成了动态的可执行程序。 利用 Java Applet 可以完成图象、声音、动画等内容的下载和播放,使 HTML 页面变得更加生动。 Java Applet 还可以完成与用户的交互操作和服务器的网络通信,它极大地丰富了 WWW 的功能。 2. Java Application Java Application 是 Java 语言相对独立的、完整的程序,它需要独立的解释器来解释运行;它同其它 高级语言编写的程序一样,可以控制和使用计算机的资源。 Java Application 程序从编辑到运行要经过编辑、编译和解释执行三个过程。 1.源程序的编辑 Java 源程序是以? Java 为后缀的简单文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来 编写,也可以用其它文本编辑工具来编写。 2.源程序的编译 通常高级语言程序由源代码程序到目标代码程序的生成过程称为编译。源程序经过编译后生成的目标 文件通常为 8 位的 ASCII 码文件。 Java 程序中源代码程序经编译生成的目标代码程序不是 8 位的 ASCII 码文件,而是两个字节(16 位)的 字节码文件。 编译字节码文件需要使用专用的 Java 编译器,在集成化的 Java 开发环境(如 Visual J++)中,只要选择 相应的菜单命令或单击相应的一个按钮就可以完成这个编译过程。 编译后的字节码文件是二进制文件,编程人员无法直接读懂,要由 Java 语言的解释器来解释执行。 在此要注意以下两个问题: ⑴ Java 源程序的文件名要完整地给出并保证大小写的准确,否则会引发编译错误。 ⑵ Java 程序的编译是对应源文件中所定义的每个类生成一个以这个类名命名、以 .class 为后缀的字 节码文件,也就是说:源代码文件中定义了几个类,编译结果就生成几个字节码文件。 3.字节码文件的解释、执行 由 Java 源代码编译所生成的字节码文件 ,不能直接运行在一般的操作系统平台上,而必须运行在称 为“Java 虚拟机“的在操作系统之外的软件平台上。运行 Java 程序时首先应该启动这个 Java 虚拟机,然 后由它来解释、执行 Java 的字节码文件 。 2.教学要求 了解:Java 语言的产生、应用前景和特点; 了解:HTML 文件的作用; 掌握:Java 语言和 C++语言的相同处及不同处; 熟练掌握:Java Applet 程序和 Java Applicatio 程序的编辑、编译和运行过程

二、典型例题 1:import java.applet.: 2:import ja¥a,8t, 3:import java.awt.event,◆: 4:publie elass AppletInolut extends Applet implements ActionListener 5:( 61 Lahel prompt: 7: TextField input.output 8 9: public void init() 10: 11: ropt=nes Label("请输入您的名字”) 12 input=new TextField(同: 13: Output new TextField(20); 14: add(prompt): 15: add(input): 16: add(output): 17: imput.addActionlistener (this): 18: 19: public void actionPerformed (ActionErent e) 20: 21: 0tput.setText(input..etText0+”欢迎您】”》: 22 23:1 下面从程序结构、程序功能和程序运行结果三个方面来分析这个ava Appl程序。 1,程序结构分析 ()程序前3行用关键字mom加载了3个系统包和类,即na.applet色,awa,aw包和aa,aw1.event包: (四程序的第4行语句定了一个名为AppletInOut类,同时用关键字eam山把这个类定义为系统ppld 类的子类,显然该程序是Java Applet程序,不是a Application程序,另外,该类还用关键字implements 连接了“动作事件接口Actionl..is过ener。第4行语句称为Appletln类的类头。 (程序的第5行一第23行为AppletlnOut类的类体。 ①在类体内第6行和第7行定义了该类的静态属性,即第6行定文了系统止知类(标签类》的一个对象 prom国:第7行定义了系饶TextField类(文木框类)的两个对象i和output: ②在类体内第9行~第18行定义了谈类的动态属性i血)方法:第19行第22行定复了该类的另一个动 志属性ctionPerformed)方法
二、典型例题 1:import java.applet.*; 2:import java.awt.*; 3:import java.awt.event.*; 4:public class AppletInOut extends Applet implements ActionListener 5:{ 6: Label prompt; 7: TextField input,output; 8: 9: public void init() 10: { 11: prompt = new Label(“请输入您的名字”) 12: input = new TextField(6); 13: Output = new TextField(20); 14: add(prompt); 15: add(input) ; 16: add(output); 17: input.addActionListener (this); 18: } 19: public void actionPerformed(ActionEvent e) 20: { 21: 0utput.setText(input.getText()+”欢迎您!”); 22: } 23:} 下面从程序结构、程序功能和程序运行结果三个方面来分析这个 Java Applet 程序。 ⒈ 程序结构分析 ⑴程序前 3 行用关键字 import 加载了 3 个系统包和类,即 java .applet 包、java .awt 包和 java .awt.event 包; ⑵程序的第 4 行语句定义了一个名为 AppletInOut 类,同时用关键字 extends 把这个类定义为系统 Applet 类的子类,显然该程序是 Java Applet 程序,不是 Java Application 程序;另外,该类还用关键字 implements 连接了“动作事件”接口 ActionListener。第 4 行语句称为 AppletInOut 类的类头。 ⑶程序的第 5 行~第 23 行为 AppletInOut 类的类体。 ①在类体内第 6 行和第 7 行定义了该类的静态属性,即第 6 行定义了系统 Label 类(标签类)的一个对象 prompt;第 7 行定义了系统 TextField 类(文本框类)的两个对象 input 和 output; ②在类体内第 9 行~第 18 行定义了该类的动态属性 init( )方法;第 19 行~第 22 行定义了该类的另一个动 态属性 actionPerformed( )方法;

③总之该程序是Java Applet程序,程序如载了系统的3个包:程序中仅定义了一个名为ApplednO过的类, 这个类还连接了动作事件”ActionLis过ener楼口:在AppletinOut类的类体内定文了3个系统类的对象和2 个方法。 2程序功能分析 ()n)方法的操作功能 ①在ini)方法体内第11行语句为标签类对象prompt进行初始化操作,即new为对象pomp开辞内存 空间,系统Lbl类的构造函数为对象pOmp赋初植一字符串“请输入您的名字“:第12行和13行语句 分别为文本框类的两个对象input和oput进行初始化授作。也就是说:new为对象mput和0put开辟 内存空间,系统T下uFid类的构造函数分别为两个对象鼠初值,iut文木框6个字符宽,output文木框 20个字符建:3个对象的操作功能是什么呢?其中prompt用于输出提示信息,ip用于接收用户输入 的信息,output用于输出程序处理的结果信息. ②在i)方法体内第14行一16行语句用ad命令靶3个对象添如到Appl的图形用户界面里。以能够 输入和输出相关信息。 ③在in)方法体内第17行语句用iput调用ddActionLister方法将对象inpu定义为动作事件的事件 源并把它注历给动作事件的监所者,否则程序将不能响应用户在文本框内按回车键接收输入的字符 串的操作。 (☑actionPerformed)方法的操作功能 actionPerformed()方法是动作事件接口ActionListencr定义的抽象方法,在北定义了它的方法体,即 第21行语句用oupu对象调用setTex()方法输出一个字符串,而这个字符串是由npu调用rtTs)方 法接收由键盘打入的名字和字符串“欢迎您:“ (图当程序执行到第17行语句由健世输入名字并按日车键时,将引发动作事件白动调用第19行的 actionPerformed)方法输出折定的字符串。 3程序运行错果的分析 运行该程序后将在所显示的图形用户界面里显示提示信息:请输入您的名字,当你由键盘输入您的名 字并国车时,将在下一行显示能刚健入的名字和字符半“欢迎您!”。 在此要指出的是:该程序是Ap其上机的操作过程应是:输舞、输泽、族入和解释执行:
③总之该程序是 Java Applet 程序,程序加载了系统的 3 个包;程序中仅定义了一个名为 AppletInOut 的类, 这个类还连接了“动作事件” ActionListener 接口;在 AppletInOut 类的类体内定义了 3 个系统类的对象和 2 个方法。 ⒉ 程序功能分析 ⑴ init( )方法的操作功能 ① 在 init( )方法体内第 11 行语句为标签类对象 prompt 进行初始化操作,即 new 为对象 prompt 开辟内存 空间,系统 Label 类的构造函数为对象 prompt 赋初值— 字符串“请输入您的名字”;第 12 行和 13 行语句 分别为文本框类的两个对象 input 和 output 进行初始化操作。也就是说:new 为对象 input 和 output 开辟 内存空间,系统 TextField 类的构造函数分别为两个对象赋初值,input 文本框 6 个字符宽,output 文本框 20 个字符宽;3 个对象的操作功能是什么呢?其中 prompt 用于输出提示信息, input 用于接收用户输入 的信息,output 用于输出程序处理的结果信息。 ② 在 init( )方法体内第 14 行~16 行语句用 add 命令把 3 个对象添加到 Applet 的图形用户界面里。以能够 输入和输出相关信息。 ③ 在 init( )方法体内第 17 行语句用 input 调用 addActionListener 方法将对象 input 定义为动作事件的事件 源并把它注册给动作事件的监听者,否则程序将不能响应用户在文本框 input 内按回车键接收输入的字符 串的操作。 ⑵ actionPerformed( )方法的操作功能 actionPerformed( )方法是动作事件接口 ActionListener 定义的抽象方法,在此定义了它的方法体,即 第 21 行语句用 output 对象调用 setText( )方法输出一个字符串,而这个字符串是由 input 调用 get Text( )方 法接收由键盘打入的名字和字符串“欢迎您!” ⑶ 当程序执行到第 17 行语句由键盘输入名字并按回车键时,将引发动作事件自动调用第 19 行的 actionPerformed( )方法输出指定的字符串。 ⒊ 程序运行结果的分析 运行该程序后将在所显示的图形用户界面里显示提示信息:请输入您的名字,当你由键盘输入您的名 字并回车时,将在下一行显示您刚键入的名字和字符串“欢迎您!”。 在此要指出的是:该程序是 JavaApplet 其上机的操作过程应是:编辑、编译、嵌入和解释执行