经典JAVA教程课件_第1页
经典JAVA教程课件_第2页
经典JAVA教程课件_第3页
经典JAVA教程课件_第4页
经典JAVA教程课件_第5页
已阅读5页,还剩962页未读 继续免费阅读

下载本文档

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

文档简介

1、Java实用教程 全全 新计新计 算算 机机 应应 用用 技技 术术 丛丛 书书 Java 实用教程实用教程 薛薛 亮亮 编著编著 西安电子科技大学出版社西安电子科技大学出版社 http:/ JavaJava JavaJava Java实用教程 目目 录录 第第1章章 Java环境及配置环境及配置 第第2章章 Java基本语法基本语法 第第3章章 类和接口类和接口 第第4章章 Java Applet 第第5章章 Java图形处理图形处理 第第6章章 Java用户界面技术用户界面技术 第第7章章 异常、事件和多线程机制异常、事件和多线程机制 第第8章章 输入输出技术输入输出技术 第第9章章 Ja

2、va数据库技术数据库技术 第第10章章 Java安全技术安全技术 第第11章章 Java网络技术网络技术(一一) 第第12章章 Java网络技术网络技术(二二) 第第13章章 Servlet技术技术 第第14章章 Java读写读写XML技术技术 Java实用教程 第1章Java环境及配置 1.1 Java概述概述 1.2 Java语言的特点语言的特点 1.3 Java应用分类应用分类 1.4 JDK包的下载与安装包的下载与安装 1.5 Java环境配置环境配置 1.6 例子程序例子程序 习习 题题 Java实用教程 1.1 Java 概概 述述 Java是一种编程语言,它提供了一个同时用于程序

3、开发、 应用和部署的环境。Java语言主要定位于网络编程,使得程 序可以最大限度地利用网络资源。 Java实用教程 1.2 Java 语语 言言 的的 特特 点点 1. 跨平台性跨平台性 所谓的跨平台性,是指软件可以不受计算机硬件和操作系 统的约束而在任意计算机环境下正常运行。这是软件发展的趋 势和编程人员追求的目标。之所以这样说,是因为计算机硬件 的种类繁多,操作系统也各不相同,不同的用户和公司有自己 不同的计算机环境偏好,而软件为了能在这些不同的环境里正 常运行,就需要独立于这些平台。 Java实用教程 而在Java语言中,Java自带的虚拟机很好地实现了跨平台 性。Java源程序代码经过

4、编译后生成二进制的字节码是与平台 无关的,但是可被Java虚拟机识别的一种机器码指令。Java虚 拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使 得Java语言具备跨平台性。 Java实用教程 2. 面向对象面向对象 面向对象是指以对象为基本粒度,其下包含属性和方法。 对象的说明用属性表达,而通过使用方法来操作这个对象。面 向对象技术使得应用程序的开发变得简单易用,节省代码。 Java是一种面向对象的语言,也继承了面向对象的诸多好处, 如代码扩展、代码复用等。 Java实用教程 3. 安全性安全性 安全性可以分为四个层面,即语言级安全性、编译时安全 性、运行时安全性、可执行代码安全性。

5、 语言级安全性指Java的数据结构是完整的对象,这些封装 过的数据类型具有安全性。编译时要进行Java语言和语义的检 查,保证每个变量对应一个相应的值,编译后生成Java类。运 行时Java类需要类加载器载入,并经由字节码校验器校验之后 才可以运行。Java类在网络上使用时,对它的权限进行了设置, 保证了被访问用户的安全性。 Java实用教程 4. 多线程多线程 多线程在操作系统中已得到了最成功的应用。多线程是指 允许一个应用程序同时存在两个或两个以上的线程,用于支持 事务并发和多任务处理。Java除了内置的多线程技术之外,还 定义了一些类、方法等来建立和管理用户定义的多线程。 Java实用教

6、程 5. 简单易用简单易用 Java源代码的书写不拘泥于特定的环境,可以用记事本、 文本编辑器等编辑软件来实现,然后将源文件进行编译,编译 通过后可直接运行,通过调试则可得到想要的结果。 Java实用教程 1.3 Java 应应 用用 分分 类类 1. 应用程序应用程序 典型的通用程序可以在具备Java运行环境的设备中独立运 行,它又分为: GUI应用程序:即图形用户界面程序,可实现丰富的输入 界面和输出显示。 命令行程序:无需界面,只需在命令行下运行,运行结果 只在后台发生变化,可以将输出存放到文件中。 嵌入式应用程序:Java语言的平台独立性决定了它可以嵌 入到不同的设备中,且只需具备必要

7、的运行环境即可。 Java实用教程 2. Servlets服务器端应用程序服务器端应用程序 服务器端的应用程序用来收集客户端的数据输入,对数据 进行处理之后,返回相应的响应给客户。它主要用来实现与客 户端的交互。 Java实用教程 3. Applets小应用程序小应用程序 Applets应用于网络上,嵌入在HTML网页中,支持Java的 浏览器都可以对它进行解释并运行。通常通过一个HTML标签 来识别并运行Applets。小应用程序的 类在服务器端,当浏览器显示网页时,它随之下载到本地, 由本地的浏览器载入运行。 Java实用教程 1.4 JDK包的下载与安装包的下载与安装 Java Deve

8、lop Kit简称为JDK,是Sun公司免费发行的软件包, 可以从Sun网站http:/免费下载,也可以从其它国 内地址下载。JDK版本从1.02开始,目前版本发展到1.4,其中 高级版本对低级版本实现向下兼容。运用这个软件包,就可以 对Java源程序进行编译和运行。本书中下载使用的JDK包为 j2sdk-1_4_0_012-windows-i586.exe。 下载后双击图标,即可进 行安装,默认的安装目录为C:j2sdk1.4.0_01。本书作者将安装 目录改为D:j2sdk1.4.0_01。 Java实用教程 1.5 Java 环环 境境 配配 置置 JDK包安装完成后,需要设置环境变量。

9、用鼠标右键单击 桌面上的图标“我的电脑”,选择“属性”项,出现标题为 “系统特性”的对话框,点击“高级”标签,可以看见有一个 “环境变量”按钮,如图1.1所示。 Java实用教程 图1.1 “系统特性”对话框 Java实用教程 单击“环境变量”按钮,可以看见本机环境变量,如图1.2 所示。上面为用户变量,下面为系统变量,随着操作系统或用户 环境的不同,变量名、值有所不同。这里需要修改三个用户变量: include、lib和path,分别将JDK包安装之后的相应路径包含到这 三个用户变量中。 Java实用教程 图1.2 “环境变量”对话框 Java实用教程 选中include变量,单击“编辑”按

10、钮,弹出标题为“编辑 用户变量”的对话框,如图1.3所示。在变量值一栏的最后添加 “; D:j2sdk1.4.0_01include”,“;”表示与前面的各项隔开,后 面的路径是JDK包的安装路径下的include目录。图1.3为作者修 改include变量的情况,注意你的安装路径可能与作者的有所不 同,要以你的安装路径为基准进行修改。 Java实用教程 图1.3 编辑include变量 Java实用教程 选中lib变量,单击“编辑”按钮,弹出标题为“编辑用户 变量”的对话框,如图1.4所示。在变量值一栏的最后添加“; D:j2sdk1.4.0_01lib”,“;”表示与前面的各项隔开,后面的

11、路 径是JDK包的安装路径下的lib目录。图1.4为作者修改lib变量的 情况,注意你的安装路径可能与作者的有所不同,要以你的安 装路径为基准进行修改。 Java实用教程 图1.4 编辑lib变量 Java实用教程 选中path变量,单击“编辑”按钮,弹出标题为“编辑用 户变量”的对话框,如图1.5所示。在变量值一栏的最后添加“; D:j2sdk1.4.0_01bin”,“;”表示与前面的各项隔开,后面的路 径是JDK包的安装路径下的bin目录。图1.5为作者修改path变量 的情况,注意你的安装路径可能与作者的有所不同,同样要以 你的安装路径为基准进行修改。 Java实用教程 图1.5 编辑

12、path变量 Java实用教程 1.6 例例 子子 程程 序序 【例1.1】源程序名称为HelloWorld.java,命令行提示符下输 出字符串“Hello World”。源代码如下: /程序文件名称为HelloWorld.java public class HelloWorld public static void main(String args) System.out.println(Hello World); Java实用教程 用记事本或者专用的编辑工具如EditPlus等进行编辑,并将 文件存为HelloWorld.java。建议使用像EditPlus这样的编辑软件, 可使得代码更

13、加清晰且风格良好。 运行“开始”菜单程序附件命令提示符,载入命令 行程序,在命令行状态下,进入源程序所在的目录,图1.6所示 的例子程序的目录在“E:_WorkJavasample”下,然后键入命令 “javac HelloWorld.java”。若编译不通过,会产生错误提示。若 编译通过,则没有任何提示,同时进入命令行等待状态,如图 1.6所示。这时,命令行虽然没有提示,但在源程序的路径下生 成一个新的文件为HelloWorld.class。这个.class文件就是编译后 生成的类文件,运行此文件,需在命令行状态中键入命令“java HelloWorld”,然后按回车键,此时程序就会运行并输

14、出“Hello World”。输出完毕,立即退出程序,进入命令行等待状态,如 图1.7所示。 Java实用教程 图1.6 编译源程序HelloWorld Java实用教程 图1.7 运行HelloWorld应用程序 Java实用教程 这里用到的命令Javac和Java都是JDK软件包自带的。从 JDK安装路径的bin目录下可以看到javac.exe,这是编译程序, 源程序编译通过后就生成.class文件;而Java.exe就是载入类的 运行程序,运行时根据源程序的指令要求产生正确的输出或结 果。如果没有进行环境配置,直接编译或者运行Java源程序, 系统会提示找不到这些命令,所以必须进行环境配

15、置后再使用。 Java实用教程 【例1.2】小应用程序的例子。输出“Hello World!”,如 图1.8所示。源程序代码如下: /程序文件名称为HelloApplet.java import java.awt.Graphics; import java.applet.Applet; public class HelloApplet extends Applet public void paint (Graphics g ) g.drawString (Hello World!,50,25); Java实用教程 小应用程序代码书写和编译完成后,无法独立运行,需要 一个载体或者容器。下面的HT

16、ML网页代码就是小应用程序载 入的容器。 HTML Test Page Java实用教程 HelloApplet will appear below in a Java enabled browser. Java实用教程 图1.8 Applet显示“Hello World!” Java实用教程 习习 题题 1. 简述Java的特点。 2. 简述Java的分类情况。 3. 进行Java环境的安装和配置。 4. 编写应用程序,屏幕上输出“欢迎来到Java世界!”。 5. 编写Applet,输出“欢迎来到Java世界!”。 Java实用教程 第2章 Java基本语法 2.1 Java程序的构成程序的

17、构成 2.2 数据类型、变量和常量数据类型、变量和常量 2.3 运算符和表达式运算符和表达式 2.4 流程控制流程控制 2.5 数组的使用数组的使用 习习 题题 Java实用教程 2.1 Java程序的构成程序的构成 2.1.1 逻辑构成逻辑构成 Java源程序逻辑构成分为两大部分:程序头包的引用和类 的定义。 1. 程序头包的引用程序头包的引用 主要是指引用JDK软件包自带的包,也可以是自己定义的类。 引用之后程序体中就可以自由应用包中的类的方法和属性等。 Java实用教程 2. 类的定义类的定义 Java源程序中可以有多个类的定义,但必须有一个主类, 这个主类是Java程序运行的入口点。在

18、应用程序中,主类为包 含main方法的类;在Applet中,主类为用户自定义的系统Applet 类的扩展类。在Java源程序中,主类的名字同文件名一致。 类的定义又包括类头声明和类体定义。类体中包括属性声 明和方法描述。下面来看一个例子,其中斜体表示的语句行为 主类类头,主类类头下面从大括号“”开始到“”结束的部分 称为主类类体。 Java实用教程 【例2.1】下面是一个应用程序,也是一个Applet,既可以 在命令行下运行,也可以嵌入到HTML网页中用appletviewer命 令运行。运行时在界面上的第一个文本框中输入你的名字,按 回车键后,在第二个文本框中会显示“XXX,欢迎你来到Jav

19、a 世界!”,运行结果如图2.1所示。 /程序文件名称为WelcomeApplet.java 注释语句 vent.*;java.awt.eimport ;java.awt.*import t.*;java.appleimport 引入包 public class WelcomeApplet extends Applet implements ActionListener 主类类头 Java实用教程 txtDisp;TextField txtName;TextField lblName; Label 属 性 r(this);ionListeneame.addAct txtN p);add(txt

20、Dis e);add(txtNam e);add(lblNam 20);TextField(new isp txtD 8);TextField(new ame txtN );new Label( lblName init() voidpublic 请输入您的名字 init方法 Java实用教程 );Java getText()t(txtName.isp.setTex txtD e)onEvent ormed(ActiactionPerf voidpublic 世界欢迎你来到 actionPerformed 方法 Java实用教程 a.start(); f.show(); 400,300);f.

21、setSize( a);,Centerf.add( a.init(); let();WelcomeAppnew a let WelcomeApp ; t(0);System.exi evt)wEvent sing(Windo windowClo voidpublic ter()WindowAdapnew wListener(f.addWindo );new Frame( f ame Fr args) gmain(Strin voidstatic public 欢迎 main主方法 Java实用教程 图2.1 程序界面 Java实用教程 2.1.2 物理构成物理构成 Java源程序物理上由三部分

22、构成,分别为语句、块和空白。 (1) 语句指一行以分号“;”结束的语句。 (2) 块指用括号对界定的语句序列,块可以嵌套使用。 (3) 空白指语句之间、块内部或者块之间的空白行。空白 不影响Java源程序的编译和运行,适当地运用空白,可以形成 良好的代码风格。 Java实用教程 在例1.1中, Label lblName; TextField txtName; TextField txtDisp; 都是语句,而 lblName = new Label(请输入您的名字:); txtName = new TextField(8); txtDisp = new TextField(20); add(

23、lblName); add(txtName); add(txtDisp); txtName.addActionListener(this); 是块,语句之间、块之间或块内部的空行都为空白。 Java实用教程 2.1.3 注释语句注释语句 注释语句主要用来进行一些说明,或者标记一些无用的程 序语句。有两种注释方法,行注释为以/开始的行;块注释以/* 开始和*/结束,Java编译器忽略注释后的程序语句或说明。 例如,下面的语句就是注释语句用来说明程序文件名称的。 /程序文件名称为WelcomeApplet.java 上述的语句注释可以更改为: /*程序文件名称为WelcomeApplet.java

24、*/ 或 /* 程序文件名称为 WelcomeApplet.java */ Java实用教程 2.1.4 标识符、关键字和转义符标识符、关键字和转义符 在Java语言中,标识符是赋予变量、类和方法等的名称。 标识符由编程者自己指定,但需要遵循一定的语法规范: (1) 标识符由字母、数字、下划线(_)、美元符号($)组成, 但美元符号用得较少。 (2) 标识符从一个字母、下划线或美元符号开始。 (3) Java语言中,标识符大小写敏感,必须区别对待。 (4) 标识符没有最大长度的限制,但最好表达特定的意思。 (5) 标识符定义不能是关键字。 Java实用教程 关键字又称保留字,是指Java语言中

25、自带的用于标志数据 类型名或者程序构造名等的标识符,如public、double等。 转义符是指一些有特殊含义的、很难用一般方式表达的字 符,如回车、换行等。所有的转义符以反斜线()开头,后面跟 着一个字符来表示某个特定的转义符,如表2.1所示。 Java实用教程 表表2.1 转转 义义 符符 引 用 方 法 含 义 b 退格 t 水平制表符 Tab n 换行 f 表格符 r 回车 单引号 双引号 反斜线 Java实用教程 2.2 数据类型、变量和常量数据类型、变量和常量 2.2.1 数据类型数据类型 Java编程语言定义了八种基本的数据类型(见表2.2),共分为 四类:整数类(byte、sh

26、ort、int、long)、文本类(char)、浮点类 (double、float)和逻辑类(boolean)。 Java实用教程 表表2.2 Java的数据类型的数据类型 分 类 数据类型 关键字 占字节数 缺省数值 取 值 范 围 字节型 byte 8 0 -2 72 7-1 短整型 short 16 0 -2 152 15-1 整型 int 32 0 -2 312 31-1 整数类 长整型 long 64 0 -2 632 63-1 文本类 字符型 char 16 u 0000 u 0000 u FFFF 浮点型 float 32 0.0F 浮点类 双精度型 double 64 0.0D

27、 逻辑类 逻辑型 boolean 8 False True、False Java实用教程 1. 整数类整数类 (1) 采用三种进制十进制、八进制和十六进制。 2 十进制值是2; 077 首位的0表示这是一个八进制的数值; 0 xBAAC 首位的0 x表示这是一个十六进制的数值。 (2) 具有缺省int。 (3) 用字母“L”和“l”定义long。 (4) 所有Java编程语言中的整数类型都是带符号的数字。 Java实用教程 2. 文本类文本类 (1) 代表一个16 bit Unicode字符。 (2) 必须包含用单引号( )引用的文字。 (3) 使用下列符号: a一个字符。 t-一个制表符。

28、u? -一个特殊的Unicode字符,?应严格使用四个十 六进制数进行替换。 Java实用教程 3. 浮点类浮点类 默认为double类型,如果一个数字包括小数点或指数部分, 或者在数字后带有字母F或f(float)、D或d(double),则该数字为 浮点数。 Java实用教程 4. 逻辑类逻辑类 boolean数据类型有两种值:true和false。 例如:boolean flag = true; 上述语句声明变量flag为boolean 类型,它被赋予的值为true。 Java实用教程 2.2.2 变量与常量变量与常量 常量是指整个运行过程中不再发生变化的量,例如数学中 的= 3.141

29、5,在程序中需要设置成常量。而变量是指程序 的运行过程中发生变化的量,通常用来存储中间结果,或者输 出临时值。 变量的声明也指变量的创建。执行变量声明语句时,系统 根据变量的数据类型在内存中开辟相应的存储空间并赋予初始 值。变量有一个作用范围,超出它声明语句所在的块就无效。 Java实用教程 下面看一个使用各种类型变量声明并改变的示例。程序中pi 为常量,s1、i1、l1、ch1、f1、d1、b1为全局变量,可以在方法 change中发生改变,然后在方法main中输出。而s2、i2、l2、ch2、 f2、d2、b2是方法main的局部变量,它们的作用范围只局限于方 法main中。 【例2.2】

30、测试不同数据类型的变量,程序输出如图2.2所示。 源程序代码如下: /程序文件名称为SetVariable.java public class SetVariable /全局变量 Java实用教程 static double pi = 3.141592654;/数学常量 static short s1; static int i1; static long l1; static char ch1; static float f1; static double d1; static boolean b1; public static void main(String args) Java实用教程

31、 /局部变量 short s2 = 35; int i2 = -32; long l2 = 34555L; char ch2 = A; float f2 = 897.89F; double d2 = 34.345; boolean b2 = false; /输出常量 System.out.println(数学常量pi = + pi); /输出局部变量 Java实用教程 System.out.println(*局部变量*); System.out.println(短整型变量s2 = + s2); System.out.println(整型变量i2 = + i2); System.out.prin

32、tln(长整型变量l2 = + l2); System.out.println(字符变量ch2 = + ch2); System.out.println(浮点数类型f2 = + f2); System.out.println(双精度型变量d2 = + d2); System.out.println(布尔型变量b2 = + b2); /调用方法修改全局变量的值 Java实用教程 change(); /输出全局变量的值 System.out.println(*全局变量*); System.out.println(短整型变量s1 = + s1); System.out.println(整型变量i1

33、= + i1); System.out.println(长整型变量l1 = + l1); System.out.println(字符变量ch1 = + ch1); System.out.println(浮点数类型f1 = + f1); System.out.println(双精度型变量d1 = + d1); System.out.println(布尔型变量b1 = + b1); Java实用教程 /方法:修改全局变量的值 public static void change() s1 = 125; i1 = 88; l1 = 987654321L; ch1 = B; f1 = 3.2590F;

34、d1 = -1.04E-5; b1 = true; Java实用教程 图2.2 变量输出结果 Java实用教程 2.3 运算符和表达式运算符和表达式 Java常用的运算符分为五类:算术运算符、赋值运算符、 关系运算符、布尔逻辑运算符、位运算符。位运算符除了简单 的按位操作外,还有移位操作。按位操作返回布尔值。 表达式是由常量、变量、对象、方法调用和操作符组成的 式子。表达式必须符合一定的规范,才可被系统理解、编译和 运行。表达式的值就是对表达式自身运算后得到的结果。 根据运算符的不同,表达式相应地分为以下几类:算术表 达式、关系表达式、逻辑表达式、赋值表达式,这些都属于数 值表达式。 Java

35、实用教程 2.3.1 算术运算符及算术表达式算术运算符及算术表达式 Java中常用的算术运算符如下: +加运算符 -减运算符 *乘运算符 /除运算符 %取模运算(除运算的余数) +增量运算符 -减量运算符 Java实用教程 【例【例2.3】测试运算符及表达式,程序输出如图2.3所示。源 程序代码如下: /程序文件名称为NumberOper.java public class NumberOper public static void main(String args) /变量初始化 int a = 30; int b = 20; /定义结果变量 int r1,r2,r3,r4,r5,r6,r7

36、,r8,r9; /计算结果 r1 = a + b; Java实用教程 r2 = a-b; r3 = a * b; r4 = a / b; r5 = a % b; r6 = a +; r7 = b-; r8 = + a; r9 = - b; /输出结果 System.out.println(a = + a + b = + b); /a,b的值 System.out.println(a+b = + r1); System.out.println(a-b = + r2); Java实用教程 System.out.println(a*b = + r3); System.out.println(a/b

37、= + r4); System.out.println(a%b = + r5); System.out.println(a+ = + r6); System.out.println(b- = + r7); System.out.println(+a = + r8); System.out.println(-b = + r9); Java实用教程 图2.3 程序输出结果 Java实用教程 2.3.2 关系运算符关系运算符 关系运算符用于比较两个数据之间的大小关系,关系运算 表达式返回布尔值,即“真”或“假”。Java中的常用关系运 算符如下: = =等于 ! =不等于 大于 =大于等于 b; r

38、4 = a = b; r6 = a b = + r3); System.out.println(a=b = + r5); System.out.println(a=b = + r6); Java实用教程 图2.4 程序输出结果 Java实用教程 2.3.3 布尔逻辑运算符布尔逻辑运算符 表表2.3 布尔运算符及规则布尔运算符及规则 运算符 含 义 示 例 规 则 ! 取反 ! a a 为真时,结果为假;a 为假时,结果为真 Boolean b = true; a boolean b = true; /定义结果变量 boolean r1,r2,r3,r4,r5,r6; /计算结果 Java实用教

39、程 r1 = !a; r2 = a r3 = a | b; r4 = a b; r5 = a r6 = a | b; /输出结果 System.out.println(a = + a + b = + b); System.out.println(!a = + r1); System.out.println(a System.out.println(a|b = + r3); System.out.println(ab = + r4); System.out.println(a System.out.println(a|b = + r6); Java实用教程 图2.5 程序输出结果 Java实用教

40、程 2.3.4 位运算符位运算符 Java中的常用位运算符如下: 位求反 int b = 2; /定义结果变量 int r1,r2; Java实用教程 /计算结果 r1 = a b; r2 = a b = + r1); System.out.println(ab = + r2); Java实用教程 图2.6 程序输出结果 Java实用教程 2.3.5 赋值运算符赋值运算符 赋值运算符分为简单运算符和复杂运算符。简单运算符指 “=”,而复杂运算符是指算术运算符、逻辑运算符、位运算符 中的双目运算符后面再加上“=”。表2.4列出Java常用的赋值运 算符及其等价表达式。 Java实用教程 表表2.

41、4 赋值运算符及其等价表达式赋值运算符及其等价表达式 运算符 含 义 示 例 等价表达式 += 加并赋值运算符 a += b a = a + b -= 减并赋值运算符 a= b a = a-b *= 乘并赋值运算符 a *= b a = a * b /= 除并赋值运算符 a /= b a = a / b %= 取模并赋值运算符 a %= b a = a % b int a = (x3)?5:3; 则a的值为5。如果x = 2,则a的值为3。 Java实用教程 对象运算符(instanceof)用来判断一个对象是否属于某个指 定的类或其子类的实例,如果是,返回真(true),否则返回假 (fal

42、se)。 例如: boolean b = userObject instanceof Applet 用来判断userObject类是否是Applet类的实例。 Java实用教程 2.3.7 优先级优先级 表表2.5 运算符优先级运算符优先级 优先级 含义描述 运 算 符 结合性 1 分隔符 () ; , 2 单目运算、字符串运算 + - + - ! (类型转换符) *右到左 3 算术乘除运算 * / % 左到右 4 算术加减运算 + - 左到右 5 移位运算 左到右 6 大小关系运算、类运算 = instanceof 左到右 7 相等关系运算 = = ! = 左到右 8 按位与,非简洁与 el

43、se 语句或块2; Java实用教程 其中: (1) 布尔表达式返回值为true或false。 (2) 如果为true,则执行语句或块1,执行完毕跳出if-else语 句。 (3) 如果为false,则跳过语句或块1,然后执行else下的语句 或块2。 Java实用教程 【例2.7】测试if-else语句,如果x10,则输出x的值,并提 示结果正确,否则输出x= 10,提示结果不正确。程序输出结果 如图2.7所示。源程序代码如下: /程序文件名称为TestIf.java public class TestIf /声明全局变量x static int x; public static void

44、main(String args) x = 12; if(x10) Java实用教程 System.out.println(x = + x + 结果正确); else System.out.println(x = 10 + 结果不正确); change(); System.out.println(修改x的值之后); if(x10) System.out.println(x = + x + 结果正确); else System.out.println(x = 10 + 结果不正确); Java实用教程 /change方法:修改x的值 public static void change() x =

45、 5; Java实用教程 图2.7 程序输出结果 Java实用教程 2. switch语句 switch语句的基本格式为: switch(表达式1) case 表达式2: 语句或块2; break; case表达式3: 语句或块3; break; case 表达式4: 语句或块4; break; default: 语句或块5; break; Java实用教程 其中: (1) 表达式1的值必须与整型兼容。 (2) case分支要执行的程序语句。 (3) 表达式2、3、4是可能出现的值。 (4) 不同的case分支对应着不同的语句或块序列。 (5) break表示跳出这一分支。 Java实用教程

46、【例2.8】测试switch语句,当x=1、2、3时,分别打印1、2、 3,x不为这三个值时,打印x的值。程序输出结果如图2.8所示。 源程序代码如下: /程序文件名称为TestSwitch.java public class TestSwitch public static void main(String args) /声明变量x int x; x = 12; Java实用教程 System.out.println(x=12时打印的值); choose(x); x = 3; System.out.println(x=3时打印的值); choose(x); /choose方法:switch语

47、句结构 public static void choose(int x) switch(x) Java实用教程 case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; default: System.out.println(x); Java实用教程 图2.8 程序输出结果 Java实用教程 2.4.2 for循环语句循环语句 for循环语句实现已知次数的循环,其基本格式为: for(初始化表达式;测试表达式;步长) 语句或块

48、; Java实用教程 其执行顺序如下: (1) 首先运行初始化表达式。 (2) 然后计算测试表达式,如果表达式为true,执行语句或 块;如果表达式为false,退出for循环。 (3) 最后执行步长。 Java实用教程 【例2.9】用for循环统计1100(包括100)之间数的总和。程 序输出结果如图2.9所示。源程序代码如下: /程序文件名称为TestFor.java public class TestFor public static void main(String args) int sum = 0; for(int i = 1; i=100; i+) sum += i; Syste

49、m.out.println(1到100(包括100)的数的总和为: + sum); Java实用教程 图2.9 程序输出结果 Java实用教程 2.4.3 while循环语句循环语句 while循环语句实现受条件控制的循环,其基本格式为: while(布尔表达式) 语句或块; 当布尔表达式为true时,执行语句或块,否则跳出while循 环。 Java实用教程 上面for循环语句的例子改为while语句后如下所示: int sum = 0; int i = 1; while (i=100) sum += i; i+; System.out.println(1到100(包括100)的数的总和为:

50、 + sum); Java实用教程 2.4.4 do语句语句 do语句实现受条件控制的循环,其基本格式为: do 语句或块; while(布尔表达式) Java实用教程 先执行语句或块,然后再判断布尔表达式。与while语句不 同,当布尔表达式一次都不为true时,while语句一开始判断就跳 出循环,不执行语句或块,而在do语句中则要执行一次。上面 那个例子改为do循环为: int sum = 0; int i = 1; do sum += i; i+; while (i=100); System.out.println(1到100(包括100)的数的总和为: + sum); Java实用教

51、程 2.5 数数 组组 的的 使使 用用 2.5.1 数组声明数组声明 数组的定义如下: (1) 首先是一个对象。 (2) 存放相同的数据类型,可以是原始数据类型或类类型。 (3) 所有的数组下标默认从0开始,而且访问时不可超出定 义的上限,否则会产生越界错误。 Java实用教程 数组声明时实际是创建一个引用,通过代表引用的这个名 字来引用数组。数组声明格式如下: 数据类型 标识符 例如: int a;/声明一个数据类型为整型的数组a pencil b;/声明一个数据类型为pencil类的数组b Java实用教程 2.5.2 创建数组创建数组 由于数组是一个对象,所以可以使用关键字new来创建

52、一 个数组,例如: a = new int10;/创建存储10个整型数据的数组a b = new pencil20;/创建存储20个pencil类数据的数组b 数组创建时,每个元素都按它所存放数据类型的缺省值被 初始化,如上面数组a的值被初始化为0,也可以进行显式初始 化。在Java编程语言中,为了保证系统的安全,所有的变量在 使用之前必须是初始化的,如果未初始化,编译时会提示出错。 有两种初始化数组的方式,分别如下: Java实用教程 (1) 创建数组后,对每个元素进行赋值。 a0=5; a1=4; . a9 = 10; (2) 直接在声明的时候就说明其值,例如: int a = 4,5,1

53、,3,4,20,2; 说明了一个长度为7的一维数组。 Java实用教程 【例2.10】编写程序测试数组,程序输出结果如图2.10所示。 源程序代码如下: /程序文件名称为TestArray.java public class TestArray public static void main(String args) /声明数组 int a; char b; /创建数组 Java实用教程 a = new int3; b = new char2; /数组初始化 for (int i = 0; i3; i+) ai = i*3; b0 = a; b1 = b; /快速初始化数组 int c = 0

54、,1*3,2*3; /输出结果 System.out.print(数组an); Java实用教程 for (int i = 0; i2; i+) System.out.print(bi + ); System.out.print(n数组cn); for (int i = 0; i3; i+) System.out.print(ci + ); Java实用教程 图2.10 程序输出结果 Java实用教程 习习 题题 1. 给出下列表达式的值。 (1) 3+428 (2) abc/创建apple类 a.appleweight = 0.5;/实例变量赋值 System.out.println(苹果的

55、重量为1两); System.out.println(a.bite();/调用实例方法 a.appleweight = 5; System.out.println(苹果的重量为5两); System.out.println(a.bite(); Java实用教程 /自定义类 class apple /属性 long applecolor;/对应苹果的颜色 double appleweight;/苹果的重量 boolean eatup;/是否吃完 /类方法 public boolean bite() if (appleweight5000) str = 名字: + name + Salary: +

56、 salary; else str = 名字: + name + Salary: 低于5000; Java实用教程 return str; ; class Employee public String name;/名字 public int salary;/薪水 public static String getSalary(String name, int salary) String str; str = 名字: + name + Salary: + salary; return str; Java实用教程 public static String getSalary2(String nam

57、e, int salary) String str; str = 名字: + name + Salary: + salary; return str; ; Java实用教程 程序中定义了父类Employee类,它有两个方法getSalary和 getSalary2,方法体的实现都是一致的,都为输出名字和薪水 的值。在TextExtend主类中覆盖了getSalary方法,方法体重新 定义为薪水低于5000时并不输出薪水的值而是输出“低于 5000”,用于和继承的getSalary2方法进行比较。由图3.2可以看 出覆盖的方法按主程序中重定义的方法调用,而继承的方法直 接调用父类中的方法。 Ja

58、va实用教程 图3.2 测试单继承性程序的输出结果 Java实用教程 3.1.3 特殊变量特殊变量 类中有两个特殊变量super和this。 1. super 类声明中用关键字extends扩展了其超类之后,super用在扩 展类中引用其超类中的成员变量。 【例3.3】使用super变量,输出结果如图3.3所示。源程序 代码如下: /程序文件名为UseSuper.java public class UseSuper Java实用教程 public static void main(String args) Manager m = new Manager(); = 王飞; m.sa

59、lary = 10000; m.department = 业务部; System.out.println(m.getSalary(); class Employee Java实用教程 public String name;/名字 public int salary;/薪水 /方法 public String getSalary() String str; str = 名字: + name + nSalary: + salary; return str; class Manager extends Employee Java实用教程 public String department;/部门 /方

60、法 public String getSalary() /使用super变量调用超类的方法 return super.getSalary() + nDepartment: + department; Java实用教程 图3.3 测试super变量的输出 Java实用教程 2. this this变量指向当前对象或实例。 str = 名字: + name + nSalary: + salary; 上例中的语句可以换成下面的语句。 str = 名字: + + nSalary: + this.salary; 这两者是等同的,因为在Java编程语言中,系统自动将this 关键字与当

温馨提示

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

评论

0/150

提交评论