您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Java程序设计(二)
Java程序设计第二章结构化程序设计山东科技大学信息科学与工程学院2标识符和关键字数据类型、直接量和变量运算符控制结构结构化程序设计主要内容3标识符和关键字(1)Java标识符:标识符可以用来标识变量名、类名、类中的方法名和文件名等。标识符组成:字母(A-Z,a-z等),数字(0-9),下划线“_”和美元符号“$”;首字符必须是字母,下划线“_”和美元符号“$”;所有标识符是区分大小写的;除去关键字、false、true和null;4标识符和关键字(3)Java标识符举例(P22,表2.1和表2.2)myVariable9pinsMYVARIABLEia+ctesting1-2-3myvariablejava¨MyVariable$myvariableIt's猫5标识符和关键字(2)J_Identifier.java程序举例(P21):判断一个字符是否可以做Java标志符的起始字符或后续字符。publicclassJ_Identifier{publicstaticvoidmain(Stringargs[]){charc='猫';if(Character.isJavaIdentifierStart(c))System.out.println(字符\'+c+\'可以做标识符的首字符);elseSystem.out.println(字符\'+c+\'不可以做标识符的首字符);if(Character.isJavaIdentifierPart(c))System.out.println(字符\'+c+\'可以做标识符除首字符外的组成字符);elseSystem.out.println(字符\'+c+\'不可以做标识符除首字符外的组成字符);}//方法main结束}//类J_Identifier结束J_Identifier.java注:1)类名和文件名须严格一致,包括大小写。2)isJavaIdentifierStart,isJavaIdentifierPart是Character类的静态成员方法,分别用来判断字符c是否可以做标识符的起始字符和后续字符。6标识符和关键字(4)Java关键字是具有特殊含义的字符序列,它具有特殊用途,不能作为变量名、方法名和类名,具体参见下表。注:各关键字含义参见P23,表2.47标识符和关键字数据类型、直接量和变量运算符控制结构结构化程序设计主要内容8数据类型、直接量和变量(1)数据类型注:基本数据类型的占用位数、数值范围、初始值参见P25,表2.59数据类型、直接量和变量(2)直接量:Java直接量包括基本数据类型直接量、字符串(String)直接量和null。布尔(boolean)直接量只有两个:true和false‘c’,‘\u0061’,‘\u0051’和‘\u005a’是char直接量,其中后三者是单引号括起来的Unicode字符34是int直接量1.5,45.6,76.4E8和-32.0是double直接量34L是long直接量.1.5F,45.6f,76.4E8F和-32.0F是float直接量“HelloWorld!”是String直接量null是引用数据类型的直接量,表示该引用不指向任何对象。10数据类型、直接量和变量(3)字符(char)直接量(常用的转义字符)'\b'(退格)'\f'(换页)'\n'(换行)'\r'(回车)'\t'(水平制表符(到下一个tab位置))'\''(单引号)'\'(双引号)'\\'(反斜杠)11数据类型、直接量和变量(4)变量在计算机内部对应着一个存储单元(变量名对应内存的位置),而且总是具有某种数据类型:基本数据类型或引用数据类型(P27)。变量总是具有与其数据类型相对应的值。每个变量均具有4个属性:名字、类型、一定大小的存储单元、值。12数据类型、直接量和变量(5)在使用一个变量之前必须对其进行定义,变量定义方法如下:变量值也必须与变量类型相匹配,例如:数据类型变量名或带初始化的变量名列表intstudentNumber;//声明单个变量studentNumber=30;//给变量赋以整数30doublevelocity,distance;//声明多个变量intstudentNumber=30;//声明变量,并赋初值13数据类型、直接量和变量(6)数据类型转换:在赋值运算中可以将某些数据类型的表达式赋值给另一种数据类型的变量。数据类型转换分为:隐式类型转换和显式类型转换(强制类型转换),例如:从强数据类型转换到弱数据类型会丢失数据精度。基本数据类型相互之间的转换规则参见表P28,表2.6:注意:byte,short和char在一起运算时,首先转换为int类型进行运算。byteshortintlongfloatdoublechar弱强14数据类型、直接量和变量(6)【例】分析下面程序有无错误byteb1=5;shorts1=6;shorts2;s2=b1+s1;15数据类型、直接量和变量(7)数据类型转换示例(J_CastExample.java,P29)。publicclassJ_CastExample{publicstaticvoidmain(Stringargs[]){shorta=100;longb=a;//隐式类型转换System.out.println(类型转换:短整数+a+变成长整数+b);b=123456789L;a=(short)b;//显式类型转换,强制类型转换System.out.println(类型转换:长整数+b+变成短整数+a);}//方法main结束}//类J_CastExample结束J_CastExample.java16标识符和关键字数据类型、直接量和变量运算符控制结构结构化程序设计主要内容17运算符(1)运算符:在程序设计中,各种运算由操作数和运算符组成,运算符指表示运算类型的符号。具体如下:算术运算符关系运算符布尔逻辑运算符位运算符赋值类运算符条件运算符其他运算符按照对应操作数个数,运算符可以分为:一元、二元和三元运算符。18运算符(2)关系运算符包括:+,-,*,/,++,--,%,注意事项如下:没有指数运算:Math.pow(2.0,3.0);//整数除法会截去余数:7/5结果为1取模是返回余数:7%5结果为2复合运算中优先级高的先运算,同级的采取从左到右的顺序运算对于++和--,前置则是先算后用,后置则是先用后算。-7/5=-7%5=7%-5=5.5%1.0=-1-220.5doubled=3.1d++;d--;intn=3;inti=n++;intk=++n//此时d=4.1//此时d=3.1//此时i=3,n=4//此时k=5,n=519运算符(3)关系运算符用于比较两个数值类型数据:、、=、=、==和!=,举例如下:、、=和=只能用来比较两个数值类型数据(numbers含characters)的大小,不能用于Strings、booleans、arrays或其他类型。浮点数的表示存在误差,因此一般建议不要对两个浮点数进行==或!=运算。例如:15.2%0.5==0.2的判断结果为false。12;//false3.5!=1;//true51.5=23.0;//true540=654;//true24==3*8;//truebooleantest1=(1010);//test1=false;20运算符(4)布尔逻辑运算符的运算结果为布尔型(boolean),具体如下:1)&(逻辑与AND)2)|(逻辑或OR)3)^(逻辑异或XOR)4)!(逻辑非NOT,单目运算符,只有一个操作数)5)&&(条件与AND)6)||(条件或OR)布尔运算真值表参见P33,表2.10。21运算符(5)布尔逻辑运算符中的短路规则:如果在运算时根据第一个操作数可以推出结果,则不会去计算第二个操作数。对于布尔运算符“|”和“&”,短路规则不适用。if((x==2)&&(y!=2))System.out.println(两个条件都为true.);例如:如果x不等于2,则结果肯定为false,因此不用判断y是否不等于2。publicclassJ_Boolean{publicstaticvoidmain(Stringargs[]){intmonth=8;//定义变量month,并赋初值8intday=1;//定义变量day,并赋初值1if((month==8)||(++day15))System.out.println(Month=+month+,Day=+day);if((month==8)|(++day15))System.out.println(Month=+month+,Day=+day);}//方法main结束}//类J_Boolean结束J_Boolean.java22运算符(6)位运算符包括:&、|、~、^、、和1)带符号右移2)左移3)不带符号右移移位操作是:先将整数写成二进制形式(补码),然后按位操作,最后产生一个新的数。注意:位运算符只用于整数。23运算符(7)位运算符举例(J_Swap.java,P37):采用按位异或运算交换两个整数。publicclassJ_Swap{publicstaticvoidmain(Stringargs[]){inta=123;intb=321;System.out.println(a=+a+,b=+b);a=a^b;b=a^b;a=a^b;System.out.println(a=+a+,b=+b);}//方法main结束}//类J_Swap结束J_Swap.java按位异或运算的性质:1)(a^b)^b=a;2)(a^b)^a=b;24运算符(8)赋值类运算符包括:=、+=、-=、*=、/=、&=、|=、%=、=、=和=。op1=op1二元运算符op2;等价于op1二元运算符=op2;例如:a=a+b;等价于a+=b;i+=5;等价于i=i+5;i*=2+3;等价于i=i*(2+3);25运算符(9)条件运算符的表达式形式为:op1?op2:op3,其中op1为布尔表达式,如果op1为true,则条件运算的结果为op2,否则为op3。条件运算符是Java语言中唯一的三元运算符。inti=-2;intk=((i=0)?1:-1);k=-126运算符(10)其他运算符:(类型)、.、[]、()、instanceof和new。(类型)是强制类型转换,()是用于改变表达式的运算顺序。.、[]、()、instanceof和new是面向对象相关的运算符。27标识符和关键字数据类型、直接量和变量运算符控制结构结构化程序设计主要内容28控制结构(1)Java语句以分号(;)结尾Java的控制结构有3类:顺序结构、选择结构和循环结构,具体语句如下:if/elseif/elseswitchcasewhilefordowhilebreakcontinue29控制结构(2)条件语句:if/elseif/else,语法格式如下:if(布尔表达式)语句1或语句块1else语句2或语句块2if(grade60)System.out.println(Passed!);elseSystem.out.println(Failed!);举例:30控制结构(3)if/else语句的嵌套:if(布尔表达式)语句1或语句块1else语句2或语句块2其中的语句块1或2也可以为if/else语句if(布尔表达式)语句1或语句块1elseif(布尔表达式)语句3或语句块3elseif(布尔表达式)语句块4else语句5!!!if语句嵌套规则:else总是与其最近的if相匹配31控制结构(4)if/else语句的嵌套:if(布尔表
本文标题:Java程序设计(二)
链接地址:https://www.777doc.com/doc-2881235 .html