第 2 章 java 基本语法

51

Click here to load reader

Upload: justine-noel

Post on 15-Mar-2016

148 views

Category:

Documents


17 download

DESCRIPTION

第 2 章 Java 基本语法. 主要任务 让读者对数据类型、表达式等 Java 基本语法内容有一个了解,这些内容是任何一门程序设计语言都必须包含的部分,可为程序设计打基础。. 本章主要内容. 1.Java 语言的基本元素 2. 数据类型 3. 运算符与表达式 4. 数组. 2.1 Java 语言的基本元素. 通过下面的 Java 源程序,了解 Java 语言有哪些基本元素 。 例 2.1 一个简单的 Java Application 源程序: Welcome2.java 。程序的运行结果是输出一句话“欢迎使用 Java 2” ,如图所示。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 2 章     Java 基本语法

第 2 章 Java 基本语法 主要任务 让读者对数据类型、表达式等 Java 基本语法内容有一个了解,这些内容是任何一门程序设计语言都必须包含的部分,可为程序设计打基础。

Page 2: 第 2 章     Java 基本语法

本章主要内容1.Java语言的基本元素 2.数据类型3.运算符与表达式4.数组

Page 3: 第 2 章     Java 基本语法

2.1 Java 语言的基本元素通过下面的 Java 源程序,了解 Java语言有哪些基本元素 。例 2.1 一个简单的 Java Application源程序: Welcome2.java 。程序的运行结果是输出一句话“欢迎使用 Java

2” ,如图所示。

Page 4: 第 2 章     Java 基本语法

// 这是一个简单的 Java Application 源程序 class Welcome2 { public static void main(String args[]) { System.out.println(“ 欢迎使用 Java 2”); } // 结束 main 方法定义 } // 结束类 Welcome2 定义

Page 5: 第 2 章     Java 基本语法

从以上例子学到什么?( 1 ) Welcome2 是一个 Application应用程序 ( 2 )源程序中有注释语句 ( 3 )程序的主体声明了一个自定义类 ( 4 ) Welcome2 类包含 main ()方法 因此,可以知道 Java 语言包含标识符、关键字、运算符和分隔符等元素。这些元素有着不同的语法含义和组成规则,它们互相

配合,共同组成 Java 的语句。

Page 6: 第 2 章     Java 基本语法

2.1.1 标识符什么是标识符? 在 Java 中变量以及类和方法都需要一定的名称,这种名称就叫做标识符 标识符命名的基本规则: 所有的标识符都必须以一个字母、下划线或美元符号“ $” 开头,后面的字符可以包含字母、数字、下划线和美元符号。

Page 7: 第 2 章     Java 基本语法

标识符是由程序员自己定义的名称,可按上面的规则随意选取。不过, Java 中有一个标识符命名约定:常量用大写字母,变量用小写字母开始,类以大写字母开始。如果一个变量名由多个单词构成,第一个单词后面的单词以大写字母开始,例如 anInt 。下划线虽然可以作为标识符的一员,但常用于常量名的单词分隔,因为常量名都是以大写字母单词命名的。还要注意一点, Java 严格区分字母大小写,标识符中的大小写字母被认为是不同的两个字符。例如以下是四个不同的合法标识符: ad , Ad , aD , Da 。

Page 8: 第 2 章     Java 基本语法

2.1.3 分隔符分隔符是用来区分源程序中的基本成份,可使编译器确认代码在何处分隔。分隔符有三种 ☆ 注释符 ☆ 空白符 ☆ 普通分隔符

Page 9: 第 2 章     Java 基本语法

1.注释符注释是程序员为了提高程序的可读性和可理解性,在源程序的开始或中间对程序的功能、作者、使用方法等所写的注解。注释仅用于阅读源程序,系统编译程序时,忽略其中的所有注释。注释有两种类型: ·// 注释一行 以“ //” 开始,最后以回车结束。一般作单行注释使用,也可放在某个语句的后面; ·/*… */ 一行或多行注释 以“ /*” 开始,最后以“ */” 结束,中间可写多行。

Page 10: 第 2 章     Java 基本语法

2.空白符空白符包括空格、回车、换行和制表符( Tab 键)等符号,用来作为程序中各种基本成份之间的分隔符。各基本成份之间可以有一个或多个空白符,其作用相同。和注释一样,系统编译程序时,只用空白符区分各种基本成份,然后忽略它。

Page 11: 第 2 章     Java 基本语法

3.普通分隔符普通分隔符和空白符的作用相同,用来区分程序中的各种基本成份,但它在程序中有确定的含义,不能忽略。 Java 有以下普通分隔符: . 句号,用于分隔包、类或分隔引用变量中的变量和方法; ;分号,是 Java 语句结束的标志; ,逗号,分隔方法的参数和变量说明等; :冒号,说明语句标号; {} 大括号,用来定义复合语句、方法体、类体及数组的初始化; [] 方括号,原来定义数组类型,及引用数字的元素值; () 小括号,用于在方法定义和访问中将参数表括起来,或在表达式中定义运算的先后次序。

Page 12: 第 2 章     Java 基本语法

例 2.2 标识符、关键字和分隔符的使用。public class Example { public static void main(String arg

s[]) { int i, c; ... } }

Page 13: 第 2 章     Java 基本语法

2.2 数据类型Java 的数据类型可分为: ☆· 基本类型,包括整型、浮点型、布尔型和字符型; ☆· 数组类型,包括一维数组和多维数组; ☆· 复合类型,包括类、接口。

Page 14: 第 2 章     Java 基本语法

2.2.1 基本数据类型数据类型 名称 位长 缺省值 取值范围布尔型 boolean 1 false true,false

字节型 byte 8 0 –128~ 127

字符型 char 16 ‘\u0000’

‘\u0000’~’ \uffff’

短整型 short 16 0 –32768~ 32767整型 int 32 0 –2,147,483,648~ 2,147,483,64

7长整型 long 64 0 –9,223,372,036,854,775,808~

9,223,372,036,854,775,807浮点型 float 32 0.0 +1.4E–45~ +3.4028235E+38双精度型 double 64 0.0 +4.9E–324~ +1.797693134862

3157E+308

Page 15: 第 2 章     Java 基本语法

2.2.2 直接量与常量直接量( literal )是指在程序中直接给出的一个符号串,作用是为变量赋值或参与表达式运算。直接量可以是一个具体的数值或字符串,也称常量。但 Java 中的常量另有所指,是用 fi

nal 说明的一个标识符,在很多教科书中往往不加区分地统称为常量。直接量或常量在程序执行过程中是不可更改的,它们与变量的区别是不占用内存。

Page 16: 第 2 章     Java 基本语法

1.布尔常量布尔常量只有两个值 true 和 false ,代表了两种状态:真和假,书写时直接使用 true 和 false 这两个英文单词,不能加引号。

Page 17: 第 2 章     Java 基本语法

2.整型常量整型常量是不含小数的整数值,书写时可采用十进制、十六进制和八进制形式。十进制常量以非 0 开头后根多个

0~ 9 之间的数字;八进制以 0 开头后根多个 0~ 7 之间的数字;十六进制则以 0X 开头后根多个 0~ 9 之间的数字或 a~ f 之间的小写字母或 A~ F 之间的大写字母。

Page 18: 第 2 章     Java 基本语法

3.浮点型常量Java 的浮点型常量有两种表示形式: ☆·十进制数形式,由数字和小数点组成,且必须有小数点,如 .123 , 0.12

3 , 123.0 ; ☆·科学计数法形式,如 123e3 或 123

E-3 ,其中 e 或 E 之前必须有数,且 e或 E 后面的指数必须为整数。

Page 19: 第 2 章     Java 基本语法

4.字符常量字符常量是由一对单引号括起来的单个字符。它可以是 Unicode 字符集中的任意一个字符,如:’ a’ ,’ Z’ 。对无法通过键盘输入的字符,可用转义符表示。字符常量的另外一种表示就是直接写出字符编码,如字母 A 的八进制表示为 ’ \101’ ,十六进制表示为 ’ \u004

1’ 。

Page 20: 第 2 章     Java 基本语法

5.字符串常量字符串常量是用一对双引号括起来的字符序列。当字符串只包含一个字符时,不要把它和字符常量混淆,例如 ’ A’ 是字符常量,而 "A" 是字符串常量。字符串常量中可包含转义字符,例如 "Hello \n world!" 在中间加入了一个换行符,输出时,这两个单词将显示在两行上。声明常量的格式: final 类型 常量名 [, 常量名 ]= 值 ;

Page 21: 第 2 章     Java 基本语法

2.2.3 变量 变量在程序中为一个标识符,在内存中是一块空间,它提供了一个临时存放信息和数据的地方,具有记忆数据的功能。变量是可以改变的,它可以存放不同类型的数据,通常用小写字母或单词作为变量名。变量具有三个元素:名字、类型和值。

Page 22: 第 2 章     Java 基本语法

1.变量的声明在 Java 中存储一个数据,必须将它保存到一个变量中。变量在使用前必须有定义,即有确定的类型和名称。声明变量的格式为: 类型 变量名 [, 变量名 ][= 初值 ];该语句告诉编译器以给定的数据类型和变量名建立的一个变量。

Page 23: 第 2 章     Java 基本语法

例 2.3 变量声明示例public class V { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c='c'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="This is a string";

Page 24: 第 2 章     Java 基本语法

System.out.println(" 字节型变量 b = "+b); System.out.println("短整型变量 s = "+s); System.out.println(" 整型变量 i = "+i); System.out.println("长整型变量 l = "+l); System.out.println(" 字符型变量 c = "+c); System.out.println(" 浮点型变量 f = "+f); System.out.println("双精度变量 d = "+d); System.out.println(" 布尔型变量 B = "+B); System.out.println(" 字符串类对象 S = "+S); } }

Page 25: 第 2 章     Java 基本语法
Page 26: 第 2 章     Java 基本语法

2.变量的使用范围当你声明了一个变量后,它将被引入到一个范围当中。也就是说,该变量只能在程序的特定范围内使用,出了这个范围,变量就消失了。在类中声明的变量是称为成员变量,通常在类的开始处声明,可在整个类中使用。在方法和块中声明的变量叫局部变量,使用范围是从它声明的地方开始到它所在那个块的结束处,块是由两个大括号所定义的,看下面例子。

Page 27: 第 2 章     Java 基本语法

例 2.4 变量的使用范围。 public class V2 { static int i=10; public static void main(String args[]) { int k=10; System.out.println("i="+i); System.out.println("k="+k); } System.out.println("k="+k); // 编译时将出错,已出 k 的使用范围 }

Page 28: 第 2 章     Java 基本语法

编译V2.java 时出现错误,如图所示。因为变量 k 在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。

Page 29: 第 2 章     Java 基本语法

3.变量类型的转换当有一个整数而你需要把它变成一个字符型数据使用时该怎么办呢?需要将整数类型数据强制转换为字符型数据。变量类型强制转换的格式为: (数据类型)数据表达式

Page 30: 第 2 章     Java 基本语法

2.3 运算符与表达式Java 的运算符代表着特定的运算指令,程序运行时将对运算符连接的操作数进行相应的运算。运算符和操作数的组合构成表达式,表达式代表着一个确定的数值。 按照运算符功能来分,运算符有七种:赋值运算符、算术运算符、关系运算符、条件运算符、逻辑运算符、位运算符和其它运算符。按照连接操作数的多少来分,有一元运算符、二元运算符和三元运算符。

Page 31: 第 2 章     Java 基本语法

2.3.1 赋值运算符表 2.6给出了赋值运算符和功能说明(未列出包含位运算符的赋值运算符)。

(见课本 31页)由赋值运算符构成的表达式称为赋值表达式。赋值运算符的右边是一个表达式,这个表达式还可以包含一个表达式。例如: a=b=c=0 ,相当于三个表达式

c=0 , b=c , a=b 。

Page 32: 第 2 章     Java 基本语法

2.3.2 算术运算符表 2.7给出了算术运算符和功能说明。(见课本 31页)算术运算符按操作数的多少可分为一元运算符和二元运算符,一元运算符( + 、 - 、 +

+ 、 -- )一次对一个操作数进行运算,二元运算符一次对两个操作数进行运算。求余运算在判断两个数是否成倍数时很有用,余数为 0 则两数成倍数,否则两数不成倍数。一元运算 i++ 和 i--比传统写法的加减运算速度要快很多,常用作循环结构中的计数器。

Page 33: 第 2 章     Java 基本语法

2.3.3 关系运算符有一些运算符能产生布尔类型的结果,称它们为关系运算符,表 2.8列出了这些运算符。(见课本 32页)关系运算符用于两个操作数之间关系的比较。关系表达式的运算结果为布尔值,不是 true 就是 false ,操作数可以是常量、变量和表达式。关系表达式常常用作分支结构或循环结构的控制条件。

Page 34: 第 2 章     Java 基本语法

2.3.4 条件运算符条件运算符有一个“ ?” 和一个“:”,条件运算符与上面的运算符略有不同,是三元运算符,有三个操作数。条件表达式的格式为: 条件表达式 ? 结果 1: 结果 2;条件运算符的计算过程为:首先计算作为条件的逻辑表达式或关系表达式,条件表达式返回值为 true 时整个表达式的值为结果 1 ,返回值是 false 时整个表达式的值为结果 2 。

Page 35: 第 2 章     Java 基本语法

2.3.5 逻辑运算符表 2.9列出了逻辑运算符。 (见课本 3

3页)关系运算只能解决一些简单条件的判定问题,对较为复杂的条件可用逻辑运算来判定。逻辑表达式通常由多个关系表达式构成,最终运算结果为布尔值 tr

ue 或 false 。

Page 36: 第 2 章     Java 基本语法

例 2.5 下面的程序说明了关系运算符和逻辑运算符的使用方式。输出结果如图所示。

Page 37: 第 2 章     Java 基本语法

public class RAL { public static void main(String args[]) { int a=25, b=3, e=3, f=0; boolean d=a<b; System.out.println("a=25,b=3,e=3,f=0"); System.out.println("a<b = "+d); if (e!=0 && a/e>5) System.out.println("a/e = "+a/e); if (f!=0 && a/f>5) System.out.println("a/f = "+a/f); else System.out.println("f = "+f); }}

Page 38: 第 2 章     Java 基本语法

2.3.6 位运算符表 2.10列出了位运算符。(见课本 34页)位运算表示按每个二进制位( bit )进行计算。位运算的操作数仅限于整数( char 、 s

hort 、 int 、 long ),以二进制形式进行,运算结果为一个整数。位运算主要是为了满足编程中的特殊要求,如测试设备、与硬件通讯等高级编程内容。一般计算机中 8 个位为 1 个字节,数据保存在 1 个或多个字节中,所以位运算要求程序员必须熟悉数的二进制表示,并且知道位运算以后的结果是什么。

Page 39: 第 2 章     Java 基本语法

2.3.7 其它运算符在 Java 中还有一些特殊的运算符,如表 2.11 。(见课本 36页)

Page 40: 第 2 章     Java 基本语法

2.3.8 运算优先级知道了许多运算符,那么当表达式里有多种运算符号的时候,运算的次序如何区分呢?表 2.12 从高到低列出了运算符的优先级,同一行中的运算符优先级相同。(见课本 36页)优先级是指同一式子中多个运算符被执行的次序。同一级别里的运算符具有相同的优先级,算术运算符具有左结合性,

Page 41: 第 2 章     Java 基本语法

2.4 数组数组是有序数据的集合,数组中的每个元素具有相同的数组名,根据数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组,使用时要先声明后创建。

Page 42: 第 2 章     Java 基本语法

2.4.1 一维数组的声明数组是 Java 语言中的特殊数据类型,它们保存着能通过下标索引来引用的一组同类数据。一维数组是指一个线性数据序列,声明格式为: 数据类型 数组名 []; 或 数据类型 [] 数组名 ;

Page 43: 第 2 章     Java 基本语法

2.4.2 一维数组的创建与赋值1.用运算符 new 分配内存再赋值格式如下:数组名 = new 数据类型 [size]2.直接赋初值并定义数组的大小 第二种方法是直接赋初值并定义数组的大小。初值必须用大括号括起,用逗号作分隔符,初值的个数表示数组的大小。

Page 44: 第 2 章     Java 基本语法

例 2.6 一维数组的使用。该程序对数组中的每个元素赋值,结果如图所示。

Page 45: 第 2 章     Java 基本语法

public class A1 { public static void main(String args[])

{ int a[]=new int[5]; a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;

Page 46: 第 2 章     Java 基本语法

System.out.println("a["+0+"] = "+a[0]); System.out.println("a["+1+"] = "+a[1]); System.out.println("a["+2+"] = "+a[2]); System.out.println("a["+3+"] = "+a[3]); System.out.println("a["+4+"] = "+a[4]); }}

Page 47: 第 2 章     Java 基本语法

2.4.3 多维数组Java 将多维数组看作数组的数组。例如二维数组就是一个特殊的一维数组,它的每个元素是一个一维数组。二维数组的声明与一维数组基本相同,只是后面再加上一对“ []” 。创建二维数组时,可指定各维的长度或至少指定第一维的长度,也可采用直接赋值的方法确定二维数组的长度。此时,按照给定的值序依次填满数组每一行中的元素。更高维的情况是类似的。下面以二维数组为例来进行说明。

Page 48: 第 2 章     Java 基本语法

习 题1. Java 有哪些基本数据类型?2. float 和 double 型数据在赋值时有哪些注意事项?3. Java 的字符常量和字符串常量有何区别?4.数据类型转换有何作用?5.说明 System.out.println(“This character “+’A’

+” has the value :“ +(int)’A’) 的输出结果。6.说明表达式 3*9*(3+(9*3/ (-3))) 的计算次序。7.计算表达式的值: x+a%3*(int)(x+y)%2/4 ,设 x=

2.5 , a=7 , y=4.7 。

Page 49: 第 2 章     Java 基本语法

8.设 x 的值为 10 ,写出表达式运算后 x 的值: x+=x x-=3 x*=1+2 x%=59.设 a=6 、 b=-4 ,计算表达式的值: --a%++b (--a)<<a (a<10 && a>10 ? a: b)

Page 50: 第 2 章     Java 基本语法

10.指出下面哪些是合法的标识符,说出为什么。A. $persons B. TwoUsers C. *point D. this E. _endline11.指出下面哪些是将一个十六进制值赋值给一个 lo

ng 型变量,说出为什么。A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L.

Page 51: 第 2 章     Java 基本语法

12.下面哪些不是 java 的原始数据类型,说出为什么。A. short B. Boolean C. unit D. float 13.下面的哪些声明是合法的,说出为什么。A. long l = 4990; B. int  i = 4L; C. float f = 1.1; D. double d = 34.4; E. double t = 0.9F.