《移动通信软件编程基础—Java语言》第2章教学文案.ppt
移动通信软件编程基础Java语言第2章IC-MSP知识回顾IC-MSPIC-MSPIC-MSPIC-MSPJava标识符v变量变量,方法方法,类类和和对象对象的名称都是的名称都是标识符标识符,程,程序员需要标识和使用的东西都需要标识符。序员需要标识和使用的东西都需要标识符。v在在JavaJava语言里标识符语言里标识符以字符或以字符或_ _、$开头开头,后面,后面字符可以是字符可以是字母、数字、下划线、字母、数字、下划线、$符号符号。v标识符标识符区分区分大小写,大小写,没有没有长度限制。长度限制。v关键字关键字不能不能用作标识符命名。用作标识符命名。IC-MSPJava关键字 Java Java中一些赋以特定的含义、并用做专门用中一些赋以特定的含义、并用做专门用途的单词称为途的单词称为关键字(关键字(keywordkeyword)。v所有所有JavaJava关键字都是关键字都是小写小写的,的,IFIF、THISTHIS、NEWNEW等都不等都不是是JavaJava关键字;关键字;vgotogoto和和constconst虽然从未使用,但也作被为虽然从未使用,但也作被为JavaJava关键字关键字保留保留;vtruetrue,falsefalse,nullnull虽被用做专门用途,但也是虽被用做专门用途,但也是JavaJava的关键字;的关键字;v关键字关键字不能不能当作标识符使用。当作标识符使用。IC-MSPJava关键字IC-MSPC语言的数据类型IC-MSPJava语言的数据类型IC-MSPiSum0500变量变量变量是程序运行过程中其值可以改变的量。是程序运行过程中其值可以改变的量。classTestpublicstaticvoidmain(Stringargs)intiSum=0,iNumber;iNumber=10;iSum=50*iNumber;System.out.println(iSum);任何一个变量都有自己的一个名称任何一个变量都有自己的一个名称任何一个变量都有自己的一个内存单元任何一个变量都有自己的一个内存单元IC-MSP常量常量常量是程序运行过程中其值保持不变的量。是程序运行过程中其值保持不变的量。publicclassA/*这是一个这是一个main方法。方法。*/publicstaticvoidmain(Stringargs)finalfloatMIN=10.0f;MIN=20.0f;声明一个常量并初始化赋值声明一个常量并初始化赋值不能改变已赋值常量的值不能改变已赋值常量的值IC-MSP布尔类型-booleanv布尔型数据只有两个值布尔型数据只有两个值truetrue和和falsefalsev它们不对应于任何整数值它们不对应于任何整数值v布尔型变量的定义如:布尔型变量的定义如:booleanboolean b b=truetrue;IC-MSP字符类型-charv字符常量是使用单引号(字符常量是使用单引号()括起来)括起来的一个字符,如的一个字符,如 aa,AA;v字符型变量:类型为字符型变量:类型为charchar,它在机器中占,它在机器中占1616位,其范围为位,其范围为0 06553565535。v字符型变量的定义如:字符型变量的定义如:charchar c c=aa;IC-MSP整型数据-常量v十进制整数十进制整数 如如 123123,456456,0 0v八进制整数:以八进制整数:以0 0开头开头如如01230123表示十进制数表示十进制数8383 011011表示十进制数表示十进制数9 9v十六进制整数:以十六进制整数:以0 x0 x或或0X0X开头开头 如如 0 x1230 x123表示十进制数表示十进制数291291 0X120X12表示十进制数表示十进制数1818IC-MSP整型数据-变量数据类型数据类型所占位数所占位数数的范围数的范围bytebyte8 8-2-27 72 27 7-1-1shortshort1616-2-215152 21515-1-1intint3232-2-231312 23131-1-1longlong6464-2-263632 26363-1-1IC-MSP浮点型数据-常量v十进制数形式十进制数形式:由数字和小数点组成,且:由数字和小数点组成,且必须有小数点必须有小数点 如如0.123,1.23,123.00.123,1.23,123.0v科学计数法形式科学计数法形式如如123e3123e3或或123E3123E3,其中,其中e e或或E E之前必须之前必须有数字,且有数字,且e e或或E E后面的指数必须为整数。后面的指数必须为整数。vfloatfloat型的值型的值,必须在数字后加必须在数字后加f f或或F F 如如 1.23f1.23f。IC-MSP浮点型数据-变量数据类型数据类型所占位数所占位数数的范围数的范围float float 32323.4e3.4e-038-038 3.4e3.4e+038+038doubledouble64641.7e1.7e-308-308 1.7e1.7e+308+308IC-MSPpublicclassAssignpublicstaticvoidmain(Stringargs)intx,y;floatz=1.234f;doublew=1.234;booleanflag=true;charc;Stringstr;Stringstr1=Hi;c=A;str=bye;x=12;y=300;变量定义实例IC-MSP在Java中实现数据转换 在在JavaJava中整型、实型、字符型被视为简单中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为数据类型,这些类型由低级到高级分别为byte,short,charintlongfloatdouble低低高高IC-MSP在Java中实现数据转换简单数据类型之间的转换又可以分为:简单数据类型之间的转换又可以分为:v低级到高级的自动类型转换低级到高级的自动类型转换v高级到低级的强制类型转换高级到低级的强制类型转换charc=c;inti=c;System.out.println(output:+i);结果:结果:output:99inti=99;byteb=(byte)i;charc=(char)i;floatf=i;结果:结果:i=99b=99c=cf=99.0IC-MSPJava中的运算符v运算符运算符是一种是一种特殊符号特殊符号,用以表示数据的运,用以表示数据的运算、赋值和比较算、赋值和比较v一般由一般由一至三个字符一至三个字符组成,但组成,但JavaJava将其视为将其视为一个符号一个符号 v运算符的分类如下:运算符的分类如下:算术算术运算符运算符赋值赋值运算符运算符比较比较运算符运算符逻辑逻辑运算符运算符移位移位运算符运算符IC-MSP算术运算符运算符运算符运算运算范例范例结果结果+正号正号+3+33 3-负号负号b=4;-b;b=4;-b;-4-4+加加5+55+51010-减减6 46 42 2*乘乘3*43*41212/除除5/55/51 1%取模取模5%55%50 0+自增(前)自增(前)a=2;b=+aa=2;b=+a;a=3;b=3a=3;b=3+自增(后)自增(后)a=2;b=a+a=2;b=a+;a=3;b=2a=3;b=2-自减(前)自减(前)a=2;b=-aa=2;b=-a;a=1;b=1a=1;b=1-自减(后)自减(后)a=2;b=a-a=2;b=a-;a=1;b=2a=1;b=2+字符串相加字符串相加“He”+“llo”“He”+“llo”“Hello”“Hello”IC-MSP赋值运算符运算符运算符运算运算范例范例结果结果=赋值赋值a=3;b=2;a=3;b=2;a=3;b=2;a=3;b=2;+=+=加等于加等于a=3;b=2;a+=b;a=3;b=2;a+=b;a=5;b=2;a=5;b=2;-=-=减等于减等于a=3;b=2;a-=b;a=3;b=2;a-=b;a=1;b=2;a=1;b=2;*=*=乘等于乘等于a=3;b=2;a*=b;a=3;b=2;a*=b;a=6;b=2;a=6;b=2;/=/=除等于除等于a=3;b=2;a/=b;a=3;b=2;a/=b;a=1;b=2;a=1;b=2;%=%=模等于模等于a=3;b=2;a%=b;a=3;b=2;a%=b;a=1;b=2;a=1;b=2;IC-MSP比较运算符运算符运算符运算运算范例范例结果结果=相等于相等于4=34=3falsefalse!=!=不等于不等于4!=34!=3truetrue 34 3truetrue 大于大于4 34 3falsefalse=小于等于小于等于4=34=大于等于大于等于4=34=3truetrueinstanceofinstanceof检查是否是类的对象检查是否是类的对象“Hello”“Hello”instanceof instanceof StringStringtruetrueIC-MSPpublicclassRunConpublicstaticvoidmain(Stringargs)System.out.println(判断判断Hello是否是是否是String类:类:+(HelloinstanceofString));判断判断Hello是否是是否是String类:类:比较运算符示例trueIC-MSP逻辑运算符运算符运算符运算运算范例范例结果结果&ANDAND(与)(与)false&truefalse&truefalsefalse|OROR(或)(或)false|truefalse|truetruetrue XORXOR(异或)(异或)falsetruefalsetruetruetrue!NOTNOT(非)(非)!true!truefalsefalse&ANDAND(短路与)(短路与)false&truefalse&truefalsefalse|OROR(短路或)(短路或)false|truefalse|truetruetrueIC-MSPpublicclassRunLogpublicstaticvoidmain(Stringargs)/输出短路与的结果输出短路与的结果System.out.println(false&true&true结果是结果是:+(false&true&true);/输出短路或的结果输出短路或的结果System.out.println(true|false|false结果是结果是:+(true|false|false);false&true&truefalse&true&true结果是结果是:false逻辑运算符示例true&false&falsetrue&false&false结果是结果是:trueIC-MSP位运算符运算符运算符运算运算计算规则计算规则&按位与按位与只有参加运算的两位都为只有参加运算的两位都为1 1,&运算的运算的结果才为结果才为1 1,否则就为,否则就为0 0。|按位或按位或只有参加运算的两位都为只有参加运算的两位都为0 0,|运算的运算的结果才为结果才为0 0,否则就为,否则就为1 1。按位异或按位异或只有参加运算的两位不同,只有参加运算的两位不同,运算的结运算的结果才为果才为1 1,否则就为,否则就为0 0。右移位右移位右移高位是右移高位是0 0,左边补,左边补0 0,高位是高位是1 1,左边补,左边补1 1无符号右移位无符号右移位左边补左边补0 0IC-MSPpublicclassRunBitpublicstaticvoidmain(Stringargs)System.out.println(3&2结果是结果是:+(3&2);System.out.println(8|9结果是结果是:+(8|9);System.out.println(89结果是结果是:+(89);3&2结果是结果是:2位运算符示例8|9结果是结果是:989结果是结果是:1IC-MSP运算符的优先级.();,.();,+-+-!(!(数据类型数据类型)*/%*/%+-+-=!=!=&|&|?:?:=*=/=%=+=-=&=|=*=/=%=+=-=&=|=低低高高优优先先级级IC-MSP控制语句的类型控制语句控制语句判断语句判断语句循环语句循环语句跳转语句跳转语句if-elseif-else语句语句switch-caseswitch-case语句语句whilewhile语句语句do-whiledo-while语句语句forfor语句语句breakbreak语句语句continuecontinue语句语句returnreturn语句语句IC-MSP判断结构 if语句v 简单简单if语句的一般形式:语句的一般形式:if(表达式表达式)表达式表达式语句语句真真假假IC-MSP判断结构 if-else语句v if-else语句的一般形式:语句的一般形式:If(表达式表达式)else真真假假语句语句2语句语句1表达式表达式IC-MSP判断结构 switch-case语句v switch-caseswitch-case语句的一般形式:语句的一般形式:switch(expression)casevalue1:statement1;break;casevalue2:statement2;break;casevalueN:statemendN;break;default:efaultStatement;真真假假Default语句语句语句语句1表达式表达式语句语句2IC-MSP判断结构 switch-case语句v表达式表达式expressionexpression的返回值类型必须是以下类的返回值类型必须是以下类型之一:型之一:int,byte,char,shortint,byte,char,short。vcasecase子句子句中的值中的值valueNvalueN必须是常量,而且所有必须是常量,而且所有casecase子句中的子句中的值值应是应是不同的不同的。vdefaultdefault子句是子句是可选的可选的。vbreakbreak语句语句用来在执行完一个用来在执行完一个casecase分支后分支后,使程,使程序序跳出跳出switchswitch语句语句,即,即终止终止switchswitch语句语句的执行。的执行。v在一些在一些特殊情况特殊情况下,多个不同的下,多个不同的casecase值要执行值要执行一组相同的操作,这时一组相同的操作,这时可以不用可以不用breakbreak。IC-MSPfloatnum1,num2;charoperator;num1=12.0f;num2=13.0f;operator=/;switch(operator)case+:System.out.println(num1+num2=+(num1+num2);break;case-:System.out.println(num1-num2=+(num1-num2);break;case/:System.out.println(num1/num2=+(num1/num2);break;case*:System.out.println(num1*num2=+(num1*num2);break;default:System.out.print(运算符不正确运算符不正确!);请输短信费用:请输短信费用:判断结构示例10_IC-MSP循环结构 while语句v whilewhile语句的一般形式:语句的一般形式:while(while(表达式表达式)表达式表达式语句语句真真假假IC-MSP循环结构 do-while语句v do-whiledo-while语句的一般形式:语句的一般形式:dodo while(while(表达式表达式)表达式表达式语句语句真真假假;IC-MSP循环结构 for语句vforfor语句的一般形式:语句的一般形式:for(for(初始化赋值初始化赋值;表达式表达式;迭代迭代)语句语句;intint countcount=0 0;forfor(countcount =0 0;countcount 5 5;countcount+)System.System.out.printlnout.println(countcount););01234IC-MSP跳转结构 break语句v在在switchswitch语句语句中,中,breakbreak语句语句用来终止用来终止switchswitch语语句句的执行。的执行。v在在JavaJava中,可以为每个代码块加一个括号,一中,可以为每个代码块加一个括号,一个代码块通常是用大括号个代码块通常是用大括号 括起来的一段代码。括起来的一段代码。跳出它所指定的块,并从紧跟该块的第一条语句跳出它所指定的块,并从紧跟该块的第一条语句处执行处执行breakbreak语句语句。IC-MSP跳转结构 break语句加标号的格式如下:加标号的格式如下:BlockLabel:codeBlock BlockLabel:codeBlock 代码块代码块代码块标记代码块标记st:while(true)while(true)breakst;System.out.println(跳到跳到st块后块后);break语句跳出他所指定语句跳出他所指定的块。的块。跳出后,从紧跟该块的跳出后,从紧跟该块的第一条语句处执行。第一条语句处执行。跳到跳到st块后块后IC-MSP跳转结构 continue语句vcontinuecontinue语句用来语句用来结束本次循环结束本次循环,跳过跳过循环体循环体中下面中下面尚未执行的语句尚未执行的语句,接着进行,接着进行终止条件终止条件的的判判断断,以决定是否继续循环。,以决定是否继续循环。v对于对于forfor语句,在进行终止条件的判断前,还要语句,在进行终止条件的判断前,还要先执行迭代语句。先执行迭代语句。v它的格式为它的格式为 continuecontinue;IC-MSP跳转结构 continue语句v也可以用也可以用continuecontinue跳转到括号指明的外层循环跳转到括号指明的外层循环中,这时的格式为中,这时的格式为 continue continue outerLableouterLable;/外层循环外层循环outer:for(inti=0;i10;i+)/内层循环内层循环inner:for(intj=0;j10;j+)if(ij)continueouter;IC-MSP跳转结构 return语句vreturnreturn语句从当前方法中退出,返回到调用该方语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程法的语句处,并从紧跟该语句的下一条语句继续程序的执行。序的执行。v返回语句有两种格式:返回语句有两种格式:return expression;return expression;return;return;vreturnreturn语句通常用在一个方法体的最后语句通常用在一个方法体的最后,否则会产否则会产生编译错误生编译错误,除非用在除非用在if-elseif-else语句中语句中IC-MSPJava语言中数组的分类JavaJava中的数组中的数组一维数组一维数组多维数组多维数组一维数组的定义一维数组的定义一维数组的初始化一维数组的初始化一维数组的引用一维数组的引用二维数组的定义二维数组的定义二维数组的初始化二维数组的初始化二维数组的引用二维数组的引用IC-MSP一维数组的定义v一维数组的定义格式一维数组的定义格式 typetype arrayNamearrayName ;v类型类型(type)(type)可以为可以为JavaJava中任意的数据类型,包括中任意的数据类型,包括简单类型和复合类简单类型和复合类 例如:例如:intint intArrayintArray ;DateDate dateArraydateArray;IC-MSP一维数组的初始化v静态初始化静态初始化 v动态初始动态初始1)1)简单类型的数组简单类型的数组 2)2)复合类型的数组复合类型的数组intintArray=1,2,3,4;StringstringArray=abc,How,you;intintArray;intArray=newint5;StringstringArray;StringstringArray=newString3;stringArray0=newString(How);stringArray1=newString(are);stringArray2=newString(you);IC-MSP一维数组元素的引用v数组元素的引用方式为:数组元素的引用方式为:arrayNameindexarrayNameindex vindexindex为数组下标,它可以为整型常数或表达式,为数组下标,它可以为整型常数或表达式,下标从下标从0 0开始。开始。v每个数组都有一个属性每个数组都有一个属性lengthlength指明它的长度。指明它的长度。intintArray;intArray=newint5;System.out.println(intArray.length);5IC-MSP二维数组的定义v二维数组的定义格式二维数组的定义格式 typetype arrayNamearrayName ;或或typetype arrayNamearrayName;v类型类型(type)(type)可以为可以为JavaJava中任意的数据类型,包括中任意的数据类型,包括简单类型和复合类简单类型和复合类 例如:例如:intint intArrayintArray ;Date Date dateArraydateArray;IC-MSP二维数组的初始化v静态初始化静态初始化 intintArray=1,2,2,3,3,4,5;IC-MSP二维数组的初始化v动态初始动态初始1)1)直接为每一维分配空间直接为每一维分配空间 2)2)从最高维开始,分别为每一维分配空间从最高维开始,分别为每一维分配空间 inta=newint23;inta=newint2;a0=newint3;a1=newint5;IC-MSP二维数组元素的引用v二维数组中的每个元素,引用方式为二维数组中的每个元素,引用方式为 ArrayNameindex1index2ArrayNameindex1index2inta=newint23;intb=1,5,2,8,5,9,10,-3,2,7,-5,-18;intc=newint24;for(inti=0;i2;i+)for(intj=0;j3;j+)aij=(i+1)*(j+2);5IC-MSP总结JavaJava语言基础语言基础简单数据类型简单数据类型运算符和表达式运算符和表达式控制语句控制语句数组数组标识符和表达式标识符和表达式数据类型概述数据类型概述简单数据类型简单数据类型数据转换及优先级数据转换及优先级运算符运算符表达式表达式判断结构判断结构循环结构循环结构跳转结构跳转结构一维数组一维数组多维数组多维数组IC-MSP习题IC-MSP作业结束语结束语谢谢大家聆听!谢谢大家聆听!57