64
第第第 Java 第第第第 任任任任任任任任 任任任任任任任任任 任任任任任任任任任 任任任 ,一。 C 任任任任任任任 任任任任任任任任 ,; MS Visual C++ 任任任任任任 任任 APIs 任 MFC Java 任任任任任任 任任任 Java 任任任任任 Java 任任 任任任任任任任任任任任任任任 任任任任任任任任任任任 任任任任任任任任 ,, 任任任任任

第二讲 Java 语言基础

Embed Size (px)

DESCRIPTION

第二讲 Java 语言基础. 任何程序设计语言,都是由语言规范和一系列开发库组成的。如标准 C ,除了语言规范外,还有很多函数库; MS Visual C++ 更是提供了庞大的 APIs 和 MFC 。 Java 语言也不例外,也是由 Java 语言规范和 Java 开发包组成的。 学习任何程序设计语言,都是要从这两方面着手,尤其是要能够熟练地使用后者。. 主要内容. 1 、 Java 语言基本元素 2 、 Java 数据类型 3 、 Java 语言结构 4 、 Java 控制语句 5 、 Java 类定义规范 6 、 Java 数组 - PowerPoint PPT Presentation

Citation preview

Page 1: 第二讲   Java 语言基础

第二讲 Java 语言基础 任何程序设计语言,都是由语言规范和一系列开发库组成的。如标准 C ,除了语言规范外,还有很多函数库; MS Visual C++ 更是提供了庞大的 APIs 和 MFC 。 Java 语言也不例外,也是由 Java 语言规范和 Java 开发包组成的。 学习任何程序设计语言,都是要从这两方面着手,尤其是要能够熟练地使用后者。

Page 2: 第二讲   Java 语言基础

1 、 Java 语言基本元素2 、 Java 数据类型3 、 Java 语言结构4 、 Java 控制语句5 、 Java 类定义规范6 、 Java 数组7 、 Java 开发类库组成

主要内容

语言规范

开发类包

Page 3: 第二讲   Java 语言基础

标识符( Identifier ) 保留字( Reserved Word

1 、 Java 语言基本元素

Page 4: 第二讲   Java 语言基础

程序员对程序中的各个元素加以命名时使用的命名记号称为标识符( identifier )包括:类名、变量名、常量名、方法名、…Java 语言中,标识符是以字母,下划线( _ ) , 美元符($) 开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。

合法的标识符identifier userName User_Name

_sys_value $change 非法的标识符

2mail room# class

1 、 Java 语言基本元素—— 标识符

Page 5: 第二讲   Java 语言基础

具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字 (reserved word) 。abstract break byte boolean catch case class char continue default double do else extends false final float for finally if import implements int interface instanceof long length native new null package private protected public final return switch synchronized short static super try true this throw throws threadsafe transient void while

1 、 Java 语言基本元素—— 保留字

Page 6: 第二讲   Java 语言基础

数据和返回值类型: int, void, return…… 包 / 类 / 成员 / 接口: package, class, interface 访问控制: public, private, protected 循环及循环控制: if, switch, break 例外处理: throw, try, finally 保留词(无含义但不能使用): goto, const

1 、 Java 语言基本元素—— 保留字:基本分类

Page 7: 第二讲   Java 语言基础

在 Java 中, true 、 false 和 null 都是小写的。区别于 C++ 中大写的 TRUE 、 FALSE 和 NULL 。

所有的数据类型所占用的字节数都是固定的,并且和实现无关的,因此在 Java 中没有 sizeof 操作符。

不必死记这些关键词,当理解每个关键词的含义后,自然就记住了所有的关键词。

1 、 Java 语言基本元素—— 保留字:注意事项

Page 8: 第二讲   Java 语言基础

2 、 Java 数据类型 常量( Constant ) 变量( Variable ) 数据类型( Data Type )

基本数据类型( Primary Data Types ) 复合数据类型( Composite Data Types )

Page 9: 第二讲   Java 语言基础

Java 中 的 常 量 值 是 用 文 字 串 表 示 的,它 区 分 为 不 同 的 类 型,如 整 型 常 量 123 ,实 型 常 量 1.23 ,字 符 常 量 ‘ a’ ,布 尔 常 量 true 、 false 以 及 字 符 串 常 量 "This is a constant string." 。

与 C 、 C++ 不 同, Java 中 不 能 通 过 #define 命 令 把 一 个 标 识 符 定 义 为 常 量,而 是 用 关 键 字 final 来 定义,其定义格式为:final Type varName = value [, varName [ =value] …];

final int globalAccount = 100, nationalAccount = 50; final double PI=3.14159

2 、 Java 数据类型—— 常量

Page 10: 第二讲   Java 语言基础

程序中的基本存储单元,其定义包括变量名、变量类型和作用域几个部分,定义格式为: Type varName [= value ][{, varName [=value]}]; int n = 3, n1 = 4;

Java 中变量的缺省初值都是确定的: 布尔变量的初值为: false 整数变量的初值为: 0 浮点数变量的初值为: 0.0 引用(复合)变量的初值为: null 在方法实现中定义的变量必须显式的初始化。

变量的作用域 指可访问变量的一段代码,在程序中不同的地方声明的变量具有不同的作用域:局部变量、类变量、方法参数、例外处理参数。在一定的作用域内,变量名必须唯一。

2 、 Java 数据类型—— 变量

Page 11: 第二讲   Java 语言基础

Java type system

primitive reference null

char numeric boolean class interface array

integral floating-point

byte short int long float double

2 、 Java 数据类型—— 数据类型

基本数据类型 复合数据类型

Page 12: 第二讲   Java 语言基础

所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。 所有基本类型的关键词都是小写的。

数据类型 所占位数 数的范围 char 16 0 ~ 65535 byte 8 -27 ~ 27-1 short 16 -215 ~ 215-1 int 32 -231 ~ 231-1 long 64 -263 ~ 263-1 f loat 32 3.4e - 038 ~ 3.4e + 038

double 64 1.7e - 308 ~ 1.7e + 308

2 、 Java 数据类型—— 基本数据类型

Page 13: 第二讲   Java 语言基础

布尔型数据只有两个值 true 和 false ,且它们不对应于任何整数值布尔型变量的定义如:

boolean b = true; 布尔型数据只能参与逻辑关系运算:

&& || == != ! 示例:

boolean b1; boolean b2 = true; b = !b2; boolean b = (b1 && b2) != false;

2 、 Java 数据类型—— 基本数据类型:布尔类型 (boolean)

Page 14: 第二讲   Java 语言基础

字符型数据代表 16 位的 Unicode 字符 字符常量是用单引号括起来的一个字符

‘a’ ‘B’ ‘\n’ ‘\u0030’ 字符型数据的取值范围为

0~65535 或者说 \u0000~\uFFFF \u0000 为缺省值

示例 char c1; \\ 缺省值为 0 char c2 = ‘0’; \\ 赋初值为字符‘ 0’ char c3 = 32; \\ 用整数赋初值为空格

2 、 Java 数据类型—— 基本数据类型:字符类型 (char)

Page 15: 第二讲   Java 语言基础

特殊字符的常量表示法: 反斜线( Backslash ) ‘ \\’ 退格( Backspace ) ‘ \b’ 回车( Carriage return ) ‘ \r’ 进纸符( Form feed ) ‘ \f’ 制表符( Form feed ) ‘ \t’ 换行( New line ) ‘ \n’ 单引号( Single quote ) ‘ \’’ 八进制数( ‘ \0’ ~‘ \377’ ) ‘ \DDD’ Unicode 字符 ‘ \uHHHH’

2 、 Java 数据类型—— 基本数据类型:字符类型 (char)

Page 16: 第二讲   Java 语言基础

整型常量1. 十进制整数

如 123 ,- 456 , 02. 八进制整数

以 0 开头,如 0123 表示十进制数 83 ,- 011 表示十进制数- 9 。3. 十六进制整数

以 0x 或 0X 开头,如 0x123 表示十进制数 291 ,- 0X12 表示十进制数- 18 。 整型变量类型为 byte 、 short 、 int 或 long , byte 在机器中占 8 位, short 占 16位, int 占 32 位, long 占 64 位。整型变量的定义如:

int x=123; // 指定变量 x 为 int 型,且赋初值为 123 byte b = 8; short s = 10; long y = 123L; long z = 123l;

2 、 Java 数据类型—— 基本数据类型:整数类型 (byte, short, int, long)

Page 17: 第二讲   Java 语言基础

64 位长整数以 l 或 L 结尾: 12l, -343L, 0xfffffffffL

1L << 32 等于 4294967296L 1 << 32 等于 0 没有以 l 或 L 结尾的数字,根据其实际值所属范围,可以被用作 byte , short ,或 int 型整数 以 l 或 L 结尾的数字,无论其实际值所属范围怎样,都被用作 long 型整数

2 、 Java 数据类型—— 基本数据类型:整数类型 (byte, short, int, long)

Page 18: 第二讲   Java 语言基础

示例 byte b1; \\ 缺省值为 0 byte b2 = 127; \\ 赋初值为 127 short s1 = (short)(b1 + b2); \\ 强制类型转换 short s2 = (short)(b1 + 123) \\ 强制类型转换 int n = b1 + b2; \\ 不需要强制类型转换 long l1 = 2343; \\ 不需要强制类型转换 long l2 = 4294967296L; \\ 必须用 L 或 l 结尾 long l3 = 65536*63356; \\ 乘法运算越界, l3 为0

long l4 = 65536L*63356; \\ l4 为 4294967296L

2 、 Java 数据类型—— 基本数据类型:整数类型 (byte, short, int, long)

Page 19: 第二讲   Java 语言基础

实型常量1. 十进制数形式

由数字和小数点组成,且必须有小数点,如 0.123, .123, 123.,123.0

2. 科学计数法形式如: 123e3 或 123E3 ,其中 e 或 E之前必须有数字,且 e 或 E 后面的指数必须为整数。

32 位浮点数形式: 0.23f, 1.23E-4f , . 18F

2 、 Java 数据类型—— 基本数据类型:浮点数类型,实型 (float, double)

Page 20: 第二讲   Java 语言基础

实型变量类型为 float 或 double , float 在机器中占 32 位, double 占 64 位。实型变量的定义如:

double d1 = 127.0; \\ 赋初值为 127 double d2 = 127; \\ 赋初值为 127 float f1 = 127.0f; \\ 必须在数字后加 f 或 F float f2 = 4.0e38f; \\ 错误! 32 位浮点数不能超过 \\ 3.4028234663852886e38

float f3 = (float)d1; \\ 必须强制类型转换

2 、 Java 数据类型—— 基本数据类型:浮点数类型,实型 (float, double)

Page 21: 第二讲   Java 语言基础

public class Assign { public static void main (String args[ ] ) { int x , y ; byte b = 6; float z = 1.234f ; double w = 1.234 ; boolean flag = true ; char c ; c = ‘ A ‘ ; x = 12 ; y = 300; ...... } }

2 、 Java 数据类型—— 基本数据类型:使用举例

Page 22: 第二讲   Java 语言基础

自动类型转换整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级:

低 -----------------------------------------------------> 高byte,short,char—> int —> long—> float —> double

操作数 1 类型 操作数 2 类型 转换后的类型byte 、 short 、 char int intbyte 、 short 、 char 、 int long longbyte 、 short 、 char 、 int 、 long float floatbyte 、 short 、 char 、 int 、 long 、 float double double

2 、 Java 数据类型—— 基本数据类型:数据类型转换

Page 23: 第二讲   Java 语言基础

数据类型转换必须满足如下规则:不能对 boolean 类型进行类型转换。不能把对象类型转换成不相关类的对象。 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

转换过程中可能导致溢出或损失精度 int i = 8; byte b=(byte)i; (byte)255 == -1 (byte)0x5634 == 0x34

浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入 (int)23.7 == 23 (int)-45.89f == -45

2 、 Java 数据类型—— 基本数据类型:数据类型转换

Page 24: 第二讲   Java 语言基础

在 Java 中,引用( reference )指向一个对象在内存中的位置,本质上它是一种带有很强的完整性和安全性限制的指针。 当你声明某个类、接口或数组类型的变量时,那个变量的值总是某个对象的引用或者是 null 。

指针就是简单的地址而已,引用除了表示地址而外,还象被引用的数据对象的缩影,还提供其他信息。 指针可以有 ++ 、 -- 运算,引用不可以运算。

引用型变量只支持有限的逻辑判断: 相等判断(是否同一个对象的引用): == !=

theObject == null otherObject != theObject

类型判断(是否是每个类的实例): instanceof theObject instanceof Object “” instanceof String

2 、 Java 数据类型—— 复合(引用)数据类型

Page 25: 第二讲   Java 语言基础

运算符( Operator )和表达式( Expression )

注释( Comment ) 语句( Statement ) 代码段( Code Block ) 作用域( Scope )

3 、 Java 语言的结构

Page 26: 第二讲   Java 语言基础

( 1 )运算符 算术运算符: +,―, *, /,%, ++,―― 关系运算符: >, <, >=, <=, ==, != 布尔逻辑运算符: !, &&, || 位运算符: >>, <<, >>>, &, |, ^, ~ 赋值运算符: =,及其扩展赋值运算符如 +=,― =,*=, /= 等。

条件运算符: ? :

3 、 Java 语言的结构—— 运算符和表达式

Page 27: 第二讲   Java 语言基础

其它 分量运算符 · , 下标运算符 [] , 实例运算符 instanceof , 内存分配运算符 new ,强制类型转换运算符 ( 类型 ) , 方法调用运算符 () …

由于数据类型的长度是确定的,所以没有长度运算符 sizeof 。

3 、 Java 语言的结构—— 运算符和表达式

Page 28: 第二讲   Java 语言基础

( 2 )表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。

一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值; 表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。

例:x num1+num2 a*(b+c)+d3.14 x<=(y+z) x&&y||z

3 、 Java 语言的结构—— 运算符和表达式

Page 29: 第二讲   Java 语言基础

( 3 )运算符的优先次序1 ) . , [] , () 9 ) &

2 ) ++ , -- , ! , ~ , instanceof 10 ) ^

3 ) new (type) 11 ) |

4 ) * , / , % 12 ) &&

5 ) + , - 13 ) ||

6 ) >> , >>> , << 14 ) ?:

7 ) > , < , >= , <= 15 ) = , += , -= , *= , /= , %= , ^=

8 ) == , != 16 ) &= , |= , <<= , >>= , >>>=

3 、 Java 语言的结构—— 运算符和表达式

Page 30: 第二讲   Java 语言基础

举例: // 单行注释,简单的解释语句含义 .

/* 多行注释,用来说明更多的内容,包括算法等 . …… */

/** Java 文档注释,可以通过 javadoc生 * 成类和接口的 HTML 格式的帮助文档 . * 这种注释有其特殊的格式(参见相关文档) */

3 、 Java 语言的结构—— 注释

Page 31: 第二讲   Java 语言基础

一个由分号( ; )结尾的单一命令是一条语句( Statement ),一条语句一般是一行代码,但也可以占多行代码。

int a = 1; // 变量定义及初始化语句 用大括号( {…… } )围起来的多条语句构成一个代码段( Code block );同时代码段也大括号前的一些修饰性描述:

class Aclass { for (int i=0; i<=1; i++) { …… ……

} }

3 、 Java 语言的结构—— 语句和代码段

Page 32: 第二讲   Java 语言基础

作用域( Scope )决定了变量可使用的范围 全局变量( Global variables ):变量可以在整个类

中被访问; 局部变量( Local variables ):变量只能在定义其

的代码段中被访问。 作用域规则:在一个代码段中定义的变量只能

在该代码段或者该代码段的子代码段中可见。 使用局部变量比使用全局变量更安全。

3 、 Java 语言的结构—— 作用域

Page 33: 第二讲   Java 语言基础

class Scoping { int x = 0; void method1() { int y; y = x; // OK. method1 可以访问 y. } void method2() { int z = 1; z = y; // Error. y 在 method2 的作用域之外定义 } }

3 、 Java 语言的结构—— 作用域

Page 34: 第二讲   Java 语言基础

4 、 Java 控制语句 分支语句: if-else, switch 循环语句: while, do-while, for 与程序转移有关的其它语句:

break, continue, return 例外处理语句: try-catch-finally, throw

Page 35: 第二讲   Java 语言基础

if(boolean-expression1) {

statements1; }

else if(boolean-expression2) { statements2; } … else { statementsN; }

4 、 Java 控制语句—— 条件语句 if-else

Page 36: 第二讲   Java 语言基础

布尔表达式 boolean-expression 是任意一个返回布尔数据类型的表达式,而且必须是(比 C 或 C ++ 要严格)。 与 C 或 C++ 一样,每个单一语句后面都要有分号。为了增强程序的可读性,应将 if 或 else 后的语句用 {} 括起来。 else子句是任选的,不能单独作为语句使用,它必须和 if 语句配对使用,并且总是与离它最近的 if配对。int i1 = 123;int i2 = 456;if( i1>i2 ){ System.out.println(“The bigger one is: ”+i1);}else{ System.out.println(“The bigger one is: ”+i2);}

4 、 Java 控制语句—— 条件语句 if-else

Page 37: 第二讲   Java 语言基础

switch (expression){

case value1 :{

statements1; break;}……case valueN :{ statementsN; break;}[default :{ defaultStatements;}]

}

4 、 Java 控制语句—— 多分支语句 switch

Page 38: 第二讲   Java 语言基础

表达式 expression 的返回值类型必须是这几种类型之一: int 、 byte 、 char 、 short 。 case子句中的值 valueI 必须是常量,而且所有 case子句中的值应是不同的。 default子句是任选的。 break 语句用来在执行完一个 case 分支后,使程序跳出 switch 语句,即终止 switch 语句的执行。(如果某个 case 分支后没有 break 语句,程序将不再做比较而执行下一个分支。) switch 语句的功能可以用 if-else 语句来实现,但某些情况下,使用 switch 语句更简炼。

4 、 Java 控制语句—— 多分支语句 switch

Page 39: 第二讲   Java 语言基础

int a = 100;int b = 20;int c; char oper = ‘+’;switch(oper){ case ‘+’:{ c = a + b; break;}case ‘-’:{ c = a - b; break;}default :{ c = a * b; break;}}

4 、 Java 控制语句—— 多分支语句 switch

Page 40: 第二讲   Java 语言基础

循环语句 while (当型循环) [initialization] // 初始化条件 while (termination){ // 循环条件

body; // 循环体[iteration;] //迭代,变更循环条件

}

当表达式 termination 为 true 时,执行 {} 中的语句,否则终止循环。

t

b

false

true

4 、 Java 控制语句—— 循环语句 while (当型循环)

Page 41: 第二讲   Java 语言基础

循环语句 do-while (直到型循环) [initialization] // 初始化条件 do{

body; // 循环体[iteration;] //迭代,变更循环条件

} while (termination) ; // 循环条件首先执行一遍 {} 中的语句,当表达式 termination 为 true 时,继续执行 {} 中的语句,否则终止循环。

t

b

false

true

4 、 Java 控制语句—— 循环语句 do-while (直到型循环)

Page 42: 第二讲   Java 语言基础

循环语句 for (另一种当型循环)for (initialization; termination; iteration){

body; // 循环体} initialization // 初始化条件 termination // 循环条件 iteration //迭代,变更循环条件

t

body

false

true

itera

init

4 、 Java 控制语句—— 循环语句 for (另一种当型循环)

Page 43: 第二讲   Java 语言基础

for 语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。 初始化、终止以及迭代部分都可以为空语句 ( 但分号不能省 ) ,三者均为空的时候,相当于一个无限循环。 在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。

for( int i=0, int j=10; i<j; i++, j--){……}

4 、 Java 控制语句—— 循环语句 for (另一种当型循环)

Page 44: 第二讲   Java 语言基础

int n = 1, sum = 0;while ( n<=10 ){ sum = sum + n; n++;}int n = 10, sum = 0;do{ sum += n; n--;}while( n>0);

int sum =0;for( int i=1; i<=10; i++ ){ sum += i;}

while 循环

do-while 循环

for 循环

4 、 Java 控制语句—— 循环语句

Page 45: 第二讲   Java 语言基础

在 switch 语中, break 语句用来终止 switch 语句的执行,使程序从整个 switch 语句后的第一条语句开始执行。 在循环语句中, break 用于终止并跳出循环,从紧跟着循环体代码段后的语句执行。 在 Java 中,可以为每个代码块加一个标号,一个代码块通常是用大括号 {} 括起来的一段代码。加标号的格式为:

BlockLabel: { codeBlock; }

break 语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块后的第一条语句处执行。BlockLabel: {

codeBlock; break BlockLabel ; codeBlock;}

4 、 Java 控制语句—— 程序转移相关语句 break

Page 46: 第二讲   Java 语言基础

a:{ // 标记代码块 a

……

b:{ // 标记代码块 b

……

c:{ // 标记代码块 c

……

break b;

…… // 这段语句将不执行 } // 代码块 c 结束 …… // 这段语句也不执行 } // 代码块 b 结束 …… // 从这段语句开始执行} // 代码块 a 结束

4 、 Java 控制语句—— 程序转移相关语句 break

Page 47: 第二讲   Java 语言基础

continue 语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。对于 for 语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为:

continue ; 也可以用 continue跳转到括号指明的外层循环中,这时

的格式为continue outerLable;

4 、 Java 控制语句—— 程序转移相关语句 continue

Page 48: 第二讲   Java 语言基础

outer: for( int i=0; i<10; i++ ) // 外层循环{ inner: for( int j=0; j<10; j++ ) // 内层循环 {

if( i<j ) {

…… continue outer;}……

} // 内层循环结束 ……} // 外层循环结束

for( int i= 0; i <10; i++ ){ if( i == 5 ) { continue; } ……}

4 、 Java 控制语句—— 程序转移相关语句 continue

Page 49: 第二讲   Java 语言基础

return 语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:

return expression; // 当方法需要返回某种类型数据时return; // 当方法的返回类型为 void 时

单独一条 return 语句放在方法中间时,会产生编译错误 , 因为其后的语句将不会执行到。若真需要退出方法,可以通过将 return 语句嵌入某些语句(如 if-else )来使程序在未执行完方法中所有语句时退出。

4 、 Java 控制语句—— 程序转移相关语句 return

Page 50: 第二讲   Java 语言基础

在进行程序设计时,错误的产生是不可避免得。如何处理错误?把错误交给谁去处理?程序又该如何从错误中恢复?这是任何程序设计语言都必须面对和解决的问题。 Java 语言中是通过例外( Exception )来处理错误的。我们将在第六讲中详细介绍例外及其处理。

4 、 Java 控制语句—— 例外处理语句 try-catch-finally, throw

Page 51: 第二讲   Java 语言基础

5 、 Java 类定义规范 Java 是一种面向对象的程序设计语言,具备面向对象技术的基本属性。类是 Java 中体现面相对象特征的主要内容,它是 Java 中的一种重要数据类型,是组成 Java 程序的基本要素。我们将在下一节课中详细介绍类的定义以及与之相关的对象、包、接口等概念。

Page 52: 第二讲   Java 语言基础

6 、 Java 数组 在 Java 语言中,数组是一种最简单的复合数据类型(引用数据类型)。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。我们将在后面的课程中介绍。

Page 53: 第二讲   Java 语言基础

多数编程语言都有预选编译好的类库以支持各种特定的功能 在 Java 中,类库以包( package )的形式提供 不同版本的 Java 提供不同的包,以面向特定的应用 Java2平台包括标准版( J2SE )、企业版( J2EE )和微缩版( J2ME )三个版本

7 、 Java 开发类库组成

Page 54: 第二讲   Java 语言基础

Standard Edition J2SE 包含那些构成 Java语言核心 (标准版 ) 的类。 数据库连接、接口定义、输入 /输出、网络编程

Enterprise Edition J2EE 包含 J2SE 中的类,并且还包 ( 企业版 ) 含用于开发企业级应用的类。 EJB、 servlet、 JSP、 XML 、事务控制

Micro Edition J2ME 包含 J2SE中一部分类,用于 ( 微缩版 ) 消费类电子产品的软件开发。 呼机、智能卡、手机、 PDA 、机顶盒

7 、 Java 开发类库组成——Java2 的三个版本

Page 55: 第二讲   Java 语言基础

Java提供了丰富的标准类来帮助程序设计者更方便快捷地编写程序,这些标准类组成了类包,主要有:java.lang java.awtjava.applet java.awt.imagejava.awt.peer java.iojava.net java.util…… 除了 java.lang之外,其余类包都不是 java语言所必须的。

7 、 Java 开发类库组成——J2SE 的类包

Page 56: 第二讲   Java 语言基础

Language java.lang 构成 Java语言核心的类 Object, Math, String, Number, Exception, System, Runtime ……

Utilities java.util 提供实用的数据结构 Vector, Stack, Hashtable …… / Colloection, List, Set, Map ……

I/O java.io 提供多种类型的输出 /输出 InputStream, OutputStream, Reader, Writer, RandomAccessFile, File……

Text java.text 文本 /日期 /数字 /消息的本地化支持 NumberFormat, DateFormat, and Collator……

Math java.math 提供任意精度的整数和浮点数运算 AWT java.awt 用户接口设计和事件处理 Swing javax.swing 提供全 Java的,在任何平台上表现都相同的轻量级构件

7 、 Java 开发类库组成——J2SE 的类包

Page 57: 第二讲   Java 语言基础

Javax javax 对 Java语言的扩展 Applet java.applet 用于创建 Applet的类 Beans java.beans 用于开发 JavaBeans的类 Reflection java.lang.reflect 用于动态获取类信息的类 SQL java.sql 提供对数据库中数据的访问和处理

Connection, ResultSet, Statement…… RMI java.rmi 支持分布式编程 Networking java.net 支持开发网络应用的类

Socket, URL, URLConnection…… Security java.security 支持访问控制和信息安全的类

用于访问控制,防止非信任代码执行关键操作 认证相关的类,实现了消息摘要和数字签名与数字认证等

7 、 Java 开发类库组成——J2SE 的类包

Page 58: 第二讲   Java 语言基础

( 1) java.lang 本类包中包含了各种定义 java语言时必须的类,这些类能够以其他类不能使用的方式访问 java的内部。任何 java程序都将自动引入这个包。其中的类包括: Object类: java中最原始、最重要的类,每个 java类都是它的子类,它实现了每个类都必须具有的基本方法。 基本类型包装器: Boolean, Character, Number, Double, Float, Integer, Long 。 String 类:字符串类。 Math类:数学函数的集合。 执行线程:类 Thread, ThreadGroup, 接口 Runable。 异常和错误:类 Exception, Error, 接口 Throwable。

7 、 Java 开发类库组成——J2SE 的类包

Page 59: 第二讲   Java 语言基础

( 1) java.lang 运行环境:可以通过类 Runtime和 System访问外部系统环境。 System类的两个常用功能就是访问标准输入 /输出流和错误流、退出程序。 其他类:接口 Cloneable、运行时的类等。( 2) java.applet

Java Applet是 Java 编程的一个主要魅力, java.applet类包提供了 Applet的运行机制以及一些编写 Applet非常有用的方法。

7 、 Java 开发类库组成——J2SE 的类包

Page 60: 第二讲   Java 语言基础

( 3) java.awt 本类包是各种窗口环境的统一界面( AWT 代表 Abstract Windows Toolkit,即抽象窗口工具包),其中的类使得创建诸如窗口、菜单、滚动条、文本区、按钮以及复选框等图形用户界面( GUI )的元素变得非常容易。( 4) java.awt.image 类包能够以独立于设备的方式加载并过滤位图图象。( 5) java.awt.peer java.awt.peer是全部 awt组件的对等对象接口的集合,每个接口都提供了机器相关基本的方法, awt使用这些方法来实现 GUI ,而不必关心是何种机器或操作系统。

7 、 Java 开发类库组成——J2SE 的类包

Page 61: 第二讲   Java 语言基础

( 6) java.io Java的输入 /输出模式是完全建立在流的基础之上的。流是一种字节从一个地方到另一个地方的单向流动,可以把流附加于文件、管道和通信链路等。 java.io类包中定义的许多种流类通过继承的方式进行组织,其中也包括一些用来访问本地文件系统上的文件的流类。( 7) java.net java.net类包用来完成与网络相关的功能: URL 、 WWW连接以及更为通用的 Socket 网络通信。( 8) java.util java.util类包包含了一些实用类和有用的数据结构,如字典 (Dictionary)、散列表 (Hashtable)、堆栈 (Stack)、向量 (Vectro)以及枚举类 (Enumeration) 等。

7 、 Java 开发类库组成——J2SE 的类包

Page 62: 第二讲   Java 语言基础

练习1 、安装 JDK 环境,运行第一讲中所给的例子。2 、在 Java 中练习使用各种控制语句。3 、尝试使用 Java 类包中提供的各种类。

Page 63: 第二讲   Java 语言基础

下一节课主要内容 这一节课介绍了 Java语言规范以及标准的 Java类包组成,下一节课将介绍 Java与面相对象技术,包括:

面向对象的概念 Java 中的类、方法和变量 Java 名字空间及访问规则 Java 中的抽象类、接口和程序包 对象的构造函数 …

Page 64: 第二讲   Java 语言基础

下课!