Presentation is loading. Please wait.

Presentation is loading. Please wait.

第二章 Java基本语法.

Similar presentations


Presentation on theme: "第二章 Java基本语法."— Presentation transcript:

1 第二章 Java基本语法

2 第零节 目标 1.认识Java语言的基本组成; 2.掌握基本的数据类型; 3.认识变量与常量; 4.掌握Java的运算符与表达式;
第零节 目标 1.认识Java语言的基本组成; 2.掌握基本的数据类型; 3.认识变量与常量; 4.掌握Java的运算符与表达式; 5.掌握数组;

3 第一节 Java语言的基本组成 Java程序就用这5种元素来编写, 它们互相配合,共同完成Java的语意表达。
Java语言主要由5种元素组成: 标识符(identifier), 关键字(keywork), 直接量(literal), 运算符(operator)和分隔符(separator)。 Java程序就用这5种元素来编写, 它们互相配合,共同完成Java的语意表达。

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

5 2.1.2 关键字 具有专门的意义和用途,不能当作一般的标识符使用,这些Java语言本身的标识符称为关键字(或保留字eserved 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

6 2.1.3 分隔符 1.注释 2.空白符 包括空格、回车、换行和制表符(Tab)等符号 三种类型如下: //注释一行 /*一行或多行注释*/
/**文档注释**/ 文档注释一般放在一个变量或方法定义之前,表示注释的内容可以由自动文档生成器javadoc读取,javadoc可以为Java API生成HTML文件; 2.空白符 包括空格、回车、换行和制表符(Tab)等符号

7 接上… 3 .普通分隔符 Java 有以下4种: -{ }大括号,用来定义复合语句、方法体、类体及数组的初始化;
-; 分号,是语句结束的标志; -, 逗号,分隔方法的参数和变量说明等; -: 冒号,说明语句标号;

8 第二节 数据类型 Java 的数据类型可分为: -基本类型,包括整型、浮点型、布尔型和字符型; -数组类型,包括一维数组和多维数组;
-复合类型,包括类与接口;

9 2.2.1 基本数据类型 Java定义了8种基本数据类型,如下: 数据类型 名称 所占位数 取值范围
数据类型 名称 所占位数 取值范围 布尔型 boolean true,false 字节型 byte ~27-1 字符型 char ‘\u0000’ ~ ‘ \uffff’ 短整型 short ~215-1 整型 int ~231-1 长整型 long ~263-1 浮点型 f loat e-038 ~3.4e+038 双精度型 double e-308 ~1.7e+308

10 2.2.2 直接量 布尔型数据只有两个值true和false,且它们不对应于任何整数值
直接量是一个具体的数值或字符串,某些书也称常量,但Java中的常量是另有所指的,指用final说明的一个标识符; 1.布尔型 布尔型数据只有两个值true和false,且它们不对应于任何整数值 布尔型变量的定义如: boolean b=true;

11 接上… 2.整型 整型常量 1. 十进制整数 如123,-456,0 2. 八进制整数
以0开头,如0123表示十进制数83,-011表示十进制数-9。 3. 十六进制整数 以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。

12 接上… 3.浮点型 浮点型常量 1. 十进制数形式 由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.0
2. 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。

13 接上… 4.字符型 字符常量 字符常量是用单引号括起来的一个字符,如‘a’,‘A’; 5.字符串 字符串常量
字符串常量是用双引号括起来的一个字符,如“Hello world!”;

14 2.2.3 变量

15 一.变量的声明 声明变量的语句如下: 类型 变量名[,变量名][=初值]; 该语句告诉编译器以给定的数据类型和变量名建立的一个变量。
类型 变量名[,变量名][=初值]; 该语句告诉编译器以给定的数据类型和变量名建立的一个变量。 可以一次声明多个变量,并赋初值,例如: byte b1,b2; int v1=0,v2=10,v3=18;

16 四种基本类型变量的声明 (1) 整型变量      整型变量有四种, 分别是8位的byte类, 16位的short类, 32位的int类和64位的long类.全部是有符号数(其中byte的范围是-256到255, 即最高位也可以用于表示正数). 其声明为:     byte op1;     short op2=2;     int op3;     long op4=4;

17 四种基本类型变量的声明 (2)浮点型变量    浮点型变量有float型和double型两种, 前者是32位单精度浮点数, 后者是64 位双精度浮点数. 其声明为:     float op1;         如果对float型数据赋初值, 必须在初值后加个f(或F), 如:     float op1=30.0f; double op2=0.5;    而在double型数据后可不加d/D, 因为Java自动把浮点数看成double型.

18 四种基本类型变量的声明 (3)字符型变量     Java的字符类型变量char是16位无符号整数, 用于表示16位的Unicode. 字符变量只存储单个字符, 其声明为:     char op1;     char op2='A', op3='\n'; //指定变量op2为char型,且赋初值为‘A' (4) 布尔型变量     布尔型变量boolean可取逻辑真和假两种值, 但不能用数字1或0代表, 其声明为:     boolean op1;     boolean op2=false, op3=true;

19 二.变量的使用范围 变量声明之后, 它的作用范围就确定了: 从变量声明的位置开始到它所在的代码块结束之处. Java的变量范围分为如下四种:
1.类变量:在类内和类外使用,可以被其他类引用; 2.本地变量:只在声明它的类或者方法内使用,不可以被其他类引用; 3.方法参数:在参数传入的方法内使用; 4.错误处理参数:在错误处理代码内使用;

20 接上… Java的变量范围举例: class Example { Static int i=100; //声明类变量
public static void main(String s[]) //声明方法参数 System.out.println(“旧的类变量是”+i); System.out.println(“方法参数是”+ s ); int i=200; //声明本地变量 System.out.println(“本地变量是”+i); Example.i -=100; System.out.println(“类变量是”+ Example.i ); } try{ ... } catch(Exception e){ } //声明错误处理参数

21 三.变量类型的转换 自动类型转换 整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级: 低 >高 byte,short,char—> int —> long—> float —> double 操作数1类型 操作数2类型 转换后的类型 byte、short、char int int byte、short、char、int long long byte、short、char、int、long float float byte、short、char、int、long、float double double 如果从高级转换成低级,则需要强制类型转换,但会导致溢出或丢失信息。如:double x = 10.23; int y=(int) x;

22 第三节 运算符与表达式

23 2.3.1 运算符 算术运算符: +,―,*,/,%,++,―― 关系运算符: >,<,>=,<=,==,!=
逻辑运算符: !,&&,|| 位运算符: >>,<<,>>>,&,|,^,~ 赋值运算符: =,及其扩展赋值运算符如+=,―=,*=,/=等。 条件运算符: ? : 其它:包括分量运算符 · ,下标运算符 [] ,实例运算符instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等。

24 2.3.2运算符的优先级

25 2.3.3 表达式 表达式是由操作数和运算符按一定的语法形式组成的符号序列。
一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值; 表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。 例: x num1+num2 a*(b+c)+d 3.14 x<=(y+z) x&&y||z

26 第四节 数组

27 一维数组 (1) 一维数组的定义 一维数组的定义方式为: type arrayName[ ];
其中类型(type)可以为Java中任意的数据类型,包 括简单类型和组合类型,数组名arrayName为一个 合法的标识符,[ ]指明该变量是一个数组类型变量。 例如: int intArray[ ]; 声明了一个整型数组,数组中的每个元素为整型数据。

28 一维数组 我们还可以定义一个复合类型的数组,例如: Date dateArray[ ]; 声明了一个容纳复合数据类型Date的数组。
与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[ ]中不用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。必须经过初始化后,才能应用数组的元素。

29 一维数组 除了这种定义数组的方式之外,java语言还提供了其他的定义形式,如下所示: type[ ] arrayName;
对于以上举出的例子,我们也可以这样定义: int[ ] intArray; Date[ ] dateArray;

30 一维数组 (2) 一维数组的初始化 一维数组定义之后,必须经过初始化才可以引用。数组的初始化分为静态初始化和动态初始化两种:
静态初始化:在定义数组的同时对数组元素进行初始化,例如: int intArray[ ]={1,2,3,4};//定义了一个含有4个 // 元素的int型数组。

31 一维数组 动态初始化:使用运算符new为数组分配空间,对于简 单类型的数组,其格式如下:
type arrayName[ ]=new type[arraySize]; type[ ] arrayName=new type[arraySize]; 对于复合类型的数组,需要经过两步空间分配。 首先: type arrayName[ ]=new type[arraySize]; 然后:arrayName[0]=new type(paramList); arrayName[arraySize-1]=new type(paramList);

32 一维数组 例如: String stringArrar[]; //定义一个String类型的数组
stringArray = new String[3]; //给数组stringArray分配3个应用 //空间,初始化每个引用值为null stringArray[0]=new String(“how”); stringArray[1]=new String(“are”); stringArray[2]=new String(“you”); 初始化各数组元素

33 一维数组 (3) 一维数组的引用 当定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。元素的引用方式为:
arrayName[index] index为数组下标,可以是整型常数或表达式,如:arrayName[1], arrayName[i], arrayName[6*i]等。下标是0序的,即从0开始,一直到数组长度减1。

34 一维数组 intArray.length指明数组intArray的长度。
另外,与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length指明它的长度,例如: intArray.length指明数组intArray的长度。

35 举例 该程序对数组中的每个元素赋值,然后按逆序输出。 public class ArrayTest {
public static void main( String args[ ] ) int i; int a[ ] = new int[5]; for( i=0; i<5; i++ ) a[i]=i; } for( i=a.length-1; i>=0; i-- ) System.out.println("a["+i+"] = "+a[i]); 该程序对数组中的每个元素赋值,然后按逆序输出。

36 1、数组 运行结果为: C:\>java ArrayTest a[4] = 4 a[3] = 3 a[2] = 2 a[1] = 1

37 一维数组 (4) 程序举例 a、Fibonacci数列 斐波纳契数列(一种整数数列, 其中每数等于前面两数之和) F1 = F2 = 1;
Fn = Fn-1 + Fn-2 (n>=3) b、冒泡排序法 对数组中的元素进行比较,每次把最小的元素交换到最前面,最后使得整个数组按从小到达顺序排列。

38 多维数组 多维数组 在任何语言中,多维数组都被看作数组的数组。比如二维数组是一个特殊的一维数组,其每一个元素又是一个一维数组。我们主要以二维数组为例来说明,高维数组与此类似。

39 二维数组 (1) 二维数组的定义方式 type arrayName[ ][ ]; 例如: int intArray[ ][ ];
也可以采用另一种定义方式: type[ ][ ] arrayName; 与一维数组一样,这时对数组元素也没有分配内存空间,同样要使用运算符new来分配内存,然后才可以访问每个元素。

40 二维数组 (2) 二维数组的初始化 二维数组的初始化也分为静态和动态两种。 静态初始化:在定义数组的同时为数组分配空间。
int intArray[ ][ ]={{1,2},{2,3},{3,4}}; 不必指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的大小。

41 二维数组 动态初始化:对高维数组来说,分配内存空间有下面两种方法: 1.直接为每一维分配空间,如: 例如:
type arrayName[ ][ ]=new type[arraylength1][arraylength2] 例如: int a[ ][ ]=new int[2][3];

42 二维数组 2.从最高维开始(而且必须从最高维开始),分别为每一维分配空间,如:
String s[ ][ ]=new String[2][ ]; s[0]=new String[2]; s[1]=new String[2]; s[0][0]=new String(“Good”); s[0][1]=new String(“Luck”); s[1][0]=new String(“to”); s[1][1]=new String(“you”);

43 二维数组 (3) 二维数组的引用 对二维数组中每个元素,引用方式为: arrayName[index1][index2]
(4)二维数组举例 两个矩阵相乘,参照参考书在课余时间上机练习。


Download ppt "第二章 Java基本语法."

Similar presentations


Ads by Google