第二章java语法基础(4学时)_第1页
第二章java语法基础(4学时)_第2页
第二章java语法基础(4学时)_第3页
第二章java语法基础(4学时)_第4页
第二章java语法基础(4学时)_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、面向对象面向对象程序设计程序设计第二章第二章JavaJava语法基础语法基础目目 录录2.1 Java基本数据类型基本数据类型2.2 运算符与表达式运算符与表达式2.3 数组数组2.4 程序控制流程程序控制流程4学时学时2.1 java基本数据类型基本数据类型2.1.1 标识符与关键字标识符与关键字标识符标识符为程序中的各个元素进行命名。为程序中的各个元素进行命名。o标识符的第一个字符必须是下列字符之一:标识符的第一个字符必须是下列字符之一: 大写字母大写字母 (A-Z) 、小写字母、小写字母 (a-z) 、下划线、下划线(_)、 美元符号美元符号 ($) o变量变量标识符的第二个字符及后继字

2、符必须是:标识符的第二个字符及后继字符必须是: 上述列表中的任意字符、数字字符上述列表中的任意字符、数字字符 (0-9) oJava语言使用语言使用Unicode字符集字符集(用(用16位二进位二进制表示一个字符,在制表示一个字符,在0255编码区与通用的编码区与通用的ASCII字符集兼容)字符集兼容)o标识符是标识符是大小写敏感大小写敏感的,没有最大长度的限的,没有最大长度的限制,不能和关键字相同制,不能和关键字相同 关键字关键字 所有的关键字都是小写的所有的关键字都是小写的。如果被大写,。如果被大写,就不是关键字了就不是关键字了 。o用于数据类型的关键字用于数据类型的关键字byte sho

3、rt int long float double char booleano用于流程控制语句的关键字用于流程控制语句的关键字if else switch case default do while for break continueo方法、类型、变量的修饰关键字方法、类型、变量的修饰关键字private public protected final static abstract synchronized volatileo异常处理关键字异常处理关键字try catch finally throw throwso对象相关关键字对象相关关键字new extends implements cla

4、ss interface instanceof this supero字面值常量关键字字面值常量关键字false true nullo方法相关关键字方法相关关键字return voido包相关关键字包相关关键字package importo单行注释单行注释单行注释以单行注释以“/”开头,至该行结尾:开头,至该行结尾:/注释文本注释文本o多行注释多行注释/* 注释文本注释文本 */o文档注释文档注释/*注释文本注释文本*注释文本注释文本*/注释注释o变量变量n一个由标识符命名的项;一个由标识符命名的项;n每个变量都有类型每个变量都有类型, 变量还有作用域;变量还有作用域;n变量的值可以被改变。变

5、量的值可以被改变。2.1.2 变量与常量变量与常量 修饰符修饰符 =, =.; nint i;nint j=5,k=4;nstatic int m=0;nprivate float ft; 按作用域变量可分为:按作用域变量可分为:局部变量局部变量、类成员变量类成员变量、方法参数方法参数、异常处理参数异常处理参数。 o局部变量是在方法内部声明的变量,它的作局部变量是在方法内部声明的变量,它的作用域为它所在的代码块,以用域为它所在的代码块,以“ ”为界。为界。 o类成员变量的作用域是整个类。可细分为静类成员变量的作用域是整个类。可细分为静态变量(类变量)和实例变量。态变量(类变量)和实例变量。o方

6、法参数的作用域,是它所在的方法方法参数的作用域,是它所在的方法 。o异常处理参数的作用域,是它所在的异常处异常处理参数的作用域,是它所在的异常处理部分理部分 。import java.io.*;public class SumR static int result=0; /用来存放计算结果用来存放计算结果 public static int sum(int n) if(n short int long , float double扩展转换不会丢失信息扩展转换不会丢失信息 自动类型转换自动类型转换窄化转换窄化转换double float, long int short byte窄化转换可能会丢失

7、信息窄化转换可能会丢失信息 强制类型转换强制类型转换2.2 运算符与表达式运算符与表达式2.2.1 运算符运算符 1、算术运算符、算术运算符2、赋值运算符、赋值运算符3、关系运算符、关系运算符4、逻辑运算符、逻辑运算符5、条件运算符、条件运算符 6、位运算符、位运算符 1、算术运算符、算术运算符o对于二元运算符,运算结果的数据类型一对于二元运算符,运算结果的数据类型一般为两个操作数中表达范围较大的类型。般为两个操作数中表达范围较大的类型。例:求出下列表达式的值。例:求出下列表达式的值。a=3; b=a+;c=+a;o对于一元运算符,运算结果的类型与操作对于一元运算符,运算结果的类型与操作数类型

8、相同。数类型相同。o自增、自减运算符有前缀和后缀两种形式,自增、自减运算符有前缀和后缀两种形式,前缀形式对变量前缀形式对变量 “先运算后使用先运算后使用”; 后缀后缀形式对变量形式对变量 “先使用后运算先使用后运算”。2、赋值运算符、赋值运算符例:求出下列表达式的值。例:求出下列表达式的值。1) a=3; a+=a-=a*a;2) a=4; a =2; 简单赋值运算符简单赋值运算符: =复合赋值运算符复合赋值运算符:*= /= %= += -= = =3、关系运算符、关系运算符 算术比较运算符算术比较运算符 :, , = , =, != 类型比较运算符:类型比较运算符: instanceof关

9、系表达式的类型是布尔类型(关系表达式的类型是布尔类型(boolean)4、逻辑运算符、逻辑运算符n“与与”运算运算 &o如果两个操作数的值都为如果两个操作数的值都为true运算结运算结果为果为true; 否则结果为否则结果为false。n“或或”运算运算 |o如果两个操作数的值都为如果两个操作数的值都为false运算结运算结果为果为false;否则结果否则结果true。n“非非”运算符!运算符!o如果操作数的结果为如果操作数的结果为 false,则表达式的则表达式的结果为结果为 true ,如果操作数的结果为如果操作数的结果为 true则表达式的结果为则表达式的结果为 false。5、

10、条件运算符、条件运算符 表达式表达式1?表达式?表达式2:表达式:表达式3 如果表达式如果表达式1的值为的值为 true, 则结果为表达式则结果为表达式2的值的值;如果表达式如果表达式1的值为的值为 false,则结果为则结果为表达式表达式3的值。的值。6、位运算符、位运算符 o表达式由一系列变量、运算符、方法调表达式由一系列变量、运算符、方法调用构成,表达式可以计算出一个值来用构成,表达式可以计算出一个值来;2.2.2 表达式表达式 o表达式运算结果的类型就是表达式的类型表达式运算结果的类型就是表达式的类型; o在对表达式进行运算时,要按运算符的优在对表达式进行运算时,要按运算符的优先级从高

11、到低进行,同级的运算符则按从先级从高到低进行,同级的运算符则按从左到右的方向进行。左到右的方向进行。运算符优先级运算符优先级o.,()等运算符的优先级最高;等运算符的优先级最高;o一元运算符的优先级也比较高;一元运算符的优先级也比较高;o算术运算符要比关系运算符和二元逻辑运算算术运算符要比关系运算符和二元逻辑运算符的优先级要高符的优先级要高;o关系运算符的优先级比布尔逻辑运算符的优关系运算符的优先级比布尔逻辑运算符的优先级高;先级高;o赋值运算符的优先级最低,因为赋值运算符赋值运算符的优先级最低,因为赋值运算符要使用表达式的值。要使用表达式的值。o数组由同一类型的一连串对象或者数组由同一类型的

12、一连串对象或者基本数据组成,并封装在同一个标基本数据组成,并封装在同一个标识符(数组名称)下。识符(数组名称)下。o数组是对象数组是对象n动态初始化动态初始化n可以赋值给可以赋值给Object类型的变量类型的变量n在数组中可以调用类在数组中可以调用类Object 的的所有方法所有方法2.3 数组数组datao数组元素数组元素n数组中的变量被称作数组的元素;数组中的变量被称作数组的元素;n元素没有名字,通过数组名字和非负整元素没有名字,通过数组名字和非负整数下标值引用数组元素;数下标值引用数组元素;n每个数组都有一个由每个数组都有一个由 public final 修饰的修饰的成员变量:成员变量:

13、length ,即数组含有元素的个,即数组含有元素的个数(数(length可以是正数或零)。可以是正数或零)。2.3.1 数组的声明数组的声明 Type arrayName; Type arrayName ; 例如:例如:int intArray; int intArray; 声明数组时无需指明数组元素的个数,也不为数声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间;组元素分配内存空间; 不能直接使用,必须经过初始化分配内存后才能不能直接使用,必须经过初始化分配内存后才能使用。使用。声明方式:声明方式:o用关键字用关键字new创建,元素个数可以是常量也可以创建,元素个数可以是常量也

14、可以是变量:是变量:2.3.2 数组的创建数组的创建 o基本类型数组的每个元素都是基本类型的变量;引基本类型数组的每个元素都是基本类型的变量;引用类型数组的每个元素都是对象的引用。用类型数组的每个元素都是对象的引用。 n或者或者可以将数组的声明和创建一并执行:可以将数组的声明和创建一并执行:int ai=new int10;n可以在一条声明语句中创建多个数组:可以在一条声明语句中创建多个数组: int a1=new int3, s2=new int8;n例如:例如: ai=new int10;o声明数组名时如果给出了数组的初始值,程声明数组名时如果给出了数组的初始值,程序便利用数组初始值创建数

15、组并对它的各个序便利用数组初始值创建数组并对它的各个元素进行初始化。元素进行初始化。2.3.3 数组元素的初始化数组元素的初始化 o创建数组的时如果没有指定初始值,数组便创建数组的时如果没有指定初始值,数组便被赋予默认值初始值。被赋予默认值初始值。 n基本类型数值数据,默认的初始值为基本类型数值数据,默认的初始值为0;nboolean类型数据,默认值为类型数据,默认值为false; n引用类型元素的默认值为引用类型元素的默认值为null。 inta=22, 33, 44, 55; o通过下面的表达式引用数组的一个元素:通过下面的表达式引用数组的一个元素:2.3.4 数组的引用数组的引用 o下标

16、从零开始计数,必须是下标从零开始计数,必须是 int , short, byte, 或者或者 char。arrayNameindexo元素的个数即为数组的长度,可以通过元素的个数即为数组的长度,可以通过 arryName.length引用。引用。int data = new int10;data -1 非法的非法的data 10 非法的非法的 data 1.5 非法的非法的 data 0 合法的合法的 data 9 合法的合法的 o元素下标最大值为元素下标最大值为 length 1,如果如果超过最大超过最大值,将会产生数组越界异常值,将会产生数组越界异常(ArrayIndexOutOfBoun

17、dsException) /声明数组声明数组 /创建数组创建数组 /证明数组元素默认初始化为证明数组元素默认初始化为0 /将产生数组越界异常将产生数组越界异常 例例2-2:数组的使用。数组的使用。gradeTable2.3.5 多维数组多维数组 gradeTable01 为为42gradeTable34 为为93gradeTable62 为为78o二维数组的声明二维数组的声明: int myArray ;o二维数组的声明和创建二维数组的声明和创建:int myArray = new int35 ;o建立一个数组并为每一个元素赋值:建立一个数组并为每一个元素赋值:int myArray = 8,

18、1,2,2,9, 1,9,4,0,3, 0,3,0,0,7 ;o二维数组的长度二维数组的长度public class MulArray public static void main(String arg) int uneven = 1,2,1,2,3,1,2,3,4; System.out.println(Length of unenen is: +uneven.length ); 例例2-3:多维数组长度。多维数组长度。o每行的长度:每行的长度:public class MulArray public static void main(String arg) int uneven = 1,

19、2,1,2,3,1,2,3,4; System.out.println(Length of unenen is: +uneven.length ); System.out.println(Length of unenen0 is: +uneven0.length ); System.out.println(Length of unenen1 is: +uneven1.length ); System.out.println(Length of unenen2 is: +uneven2.length ); 2.4 程序控制流程程序控制流程o顺序结构顺序结构o选择结构选择结构nif语句(二路选择结

20、构)语句(二路选择结构)nswitch语句(多路选择结构)语句(多路选择结构)o循环结构循环结构nfor语句语句nwhile语句语句ndo-while语句语句o循环结构循环结构nbreak语句语句ncontinue语句语句nreturn语句语句2.4.1 if选择结构选择结构o语法形式语法形式只有只有if分支,没有分支,没有else分支分支if (boolean-expression) / statement1; if-else语句语句if (boolean-expression) / statement1 ; else / statement2 ; if-else语句的特殊形式语句的特殊形式

21、if (boolean expression) /statement1;else if (boolean expression) /statement2; else if (boolean expression) /statement; else /statement; 例例2-4 :输入一个年份,判断它是不是闰年。输入一个年份,判断它是不是闰年。(闰年闰年: 能能被被4整除但不能被整除但不能被100整除,或者能被整除,或者能被400整除。整除。)public class ex2_4 public static void main(String args) int year; boolean

22、IsLeapYear;if(args.length0) year=Integer.parseInt(args0); IsLeapYear=(year%4=0 & year%100 != 0)|(year%400 = 0); if (IsLeapYear) System.out.println(year+ is a leap year); else System.out.println(year+ is not a leap year); 2.4.2 switch选择结构选择结构oswitch语句是多分支的选择结构语句是多分支的选择结构switch (switch-expression)

23、 case value1: statements for case1; break; case value2: statements for case2; break; . case valueN: statements for caseN; break; default: statements for default case; break; 注意问题:注意问题:nswitch-expression、常量值、常量值value1到到valueN必须为必须为byte,short,int或或char类型(数据类型长度小于类型(数据类型长度小于等于等于32位),在位),在JDK5.0中可以是用枚举类

24、型中可以是用枚举类型(enum););n每个每个case语句后的值语句后的值value必须是与表达式类型兼必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不容的特定的一个常量(它必须为一个常量,而不是变量)。重复的是变量)。重复的case值是不允许的;值是不允许的;n如果表达式的值和某个如果表达式的值和某个case后面的值相同,则从后面的值相同,则从该该case之后开始执行,直到之后开始执行,直到break语句为止;语句为止;n如果没有一个如果没有一个case常量与表达式的值相匹配,则常量与表达式的值相匹配,则执行执行default语句。语句。例例2-5:输入输入06之间的某一个整

25、数,然后把它转之间的某一个整数,然后把它转换成星期输出。换成星期输出。(0对应星期日)对应星期日)public class ex2_5 public static void main(String args) int day; day=Integer.parseInt(args0); switch (day) case 0: System.out.println(The day is Sunday); break; case 1: System.out.println(The day is Monday); break; case 2: System.out.println(The day i

26、s Tuesday); break;case 3: System.out.println(The day is Wednesday); break;case 4: System.out.println(The day is Thursday); break;case 5: System.out.println(The day is Friday); break;case 6: System.out.println(The day is Saturday); break;default: System.out.println(The day is Day out of range Sunday

27、.Saturday); break; 例例2-6:用枚举类型完成用枚举类型完成switch语句。语句。enum WeekDay Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturdaypublic class ex2_6 public static void main(String args) WeekDay day=WeekDay.Sunday; switch (day) case Sunday: System.out.println(The day is Sunday); break;case Monday: System

28、.out.println(The day is Monday); break; case Tuesday: System.out.println(The day is Tuesday); break; case Wednesday: System.out.println(The day is Wednesday); break;case Thursday: System.out.println(The day is Thursday); break;case Friday: System.out.println(The day is Friday); break;case Saturday:

29、System.out.println(The day is Saturday); break;default: System.out.println(The day is Day out of range Sunday .Saturday); break; ofor循环结构一般语法格式如下循环结构一般语法格式如下:for (start-expression; check-expression; update-expression) /body of the loop; 2.4.3 for循环结构循环结构n解释解释ostart-expression完成循环变量和其他变完成循环变量和其他变量的初始

30、化工作量的初始化工作;ocheck-expression是返回布尔值的条件表是返回布尔值的条件表达式,用于判断循环是否继续达式,用于判断循环是否继续;oupdate-expression用来修整循环变量,用来修整循环变量,改变循环条件改变循环条件;o三个表达式之间用分号隔开。三个表达式之间用分号隔开。例例2-7:打印九九乘数表。打印九九乘数表。public class MultiTable public static void main(String args) for (int i=1; i=9;i+) for (int j=1; j=i;j+) System.out.print( +i+*

31、+j+=+i*j); System.out.println(); o运行结果如下:运行结果如下: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=1

32、8 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81for的其它用法的其它用法o在在for循环中使用逗号循环中使用逗号 ofor-each (JDK5.0扩充扩充) 说明:说明: 该程序中,该程序中,“:”表示表示“in”的意思,的意思,for(int e:a)就是就是“for each int e in a”,即,即“对于数组对于数组a中的每个整数中的每个整数e”。通过定义一个整数变量。通过定义一个整数变量e表示数组中的每个元素。表示数组中的每个元素。for-each循环看上循环看上去比一般的去比一般的for循环漂亮的多,不需要使用下循环漂亮的

33、多,不需要使用下标。标。 owhile语句语句,实现实现“当型当型”循环,其一般语法格式如下:循环,其一般语法格式如下:while (check-expression) /body of the loop; 2.4.4 while循环结构循环结构n解释:解释:o条件表达式条件表达式(check-expression)的返回值为布尔型的返回值为布尔型;o循环体可以是单个语句,也可以是复合语句块。循环体可以是单个语句,也可以是复合语句块。n执行过程:执行过程:o先判断先判断check-expression的值,为真则执的值,为真则执行循环体;行循环体;o循环体执行完后再无条件转向条件表达循环体执行

34、完后再无条件转向条件表达式;当计算出条件表达式的值为假时,式;当计算出条件表达式的值为假时,跳过循环体执行跳过循环体执行while语句后面的语句。语句后面的语句。若为真,则继续执行循环。若为真,则继续执行循环。例例2-9:循环接受并输出从键盘输入的字符,直到循环接受并输出从键盘输入的字符,直到输入的字符为回车为止。输入的字符为回车为止。import java.io.*;public class ex2_9 public static void main(String args) char ch=a; try while (ch!=n) System.out.println(ch); ch= (

35、char)System.in.read() ; / 接收键盘输入接收键盘输入 catch(IOException e)System.out.println(e); do-while语句实现语句实现“直到型直到型”循环,语法如下:循环,语法如下:do /body of the loop; while (check-expression);2.4.5 do-while循环结构循环结构n其使用与其使用与while语句类似,不同的是它首先无条语句类似,不同的是它首先无条件执行一遍循环体,再判断条件表达式的值,件执行一遍循环体,再判断条件表达式的值,若表达式的值为真,则再运行循环体,否则跳若表达式的值为

36、真,则再运行循环体,否则跳出出do-while循环执行下面的语句。循环执行下面的语句。n特点:它的循环体至少要执行一次。特点:它的循环体至少要执行一次。while(i=10) sum+=i; i+; System.out.println(sum=+sum);do sum+=i; i+; while(i=10);System.out.println(sum=+sum);比较这两段程序比较这两段程序int i=0,sum=0;o功能:功能: 跳出循环,不再执行剩余部分。跳出循环,不再执行剩余部分。2.4.6 break语句语句o适用场合:适用场合:n在在switch 结构中,用来终止结构中,用来终止switch语句的执行语句的执行n在在for循环及循环及while循环结构中,用于终止循环结构中,用于终止break语语句所在的最内层循环;句所在的最内层循环;n也可用在代码块中,用于跳出它所指定的块。也可用在代码块中,用于跳出它所指定的块。o例例2-10:break应用举例。应用举例。public class BreakTest public static void main( String args ) Str

温馨提示

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

评论

0/150

提交评论