您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 电子商务 > 第二章 JAVA基础语法
1Java275——认识Java2什么是变量•变量的声明•变量的初始化3标识符•标识符的作用•标识符的规则–开头字符:只能是3种,下划线(_)、美元符号($)和英文大小写字母–后续字符:包括以上3种,再加上数字0-9–其他要求:不可以是关键字和保留字关键字abstractcontinuegotonullswitchassertdefaultifpackagesynchronizedbooleandoimplementsprivatethisbreakdoubleimportprotectedthrowbyteelseinstanceofpublicthrowscaseextendsintreturntransientcatchfinalinterfaceshorttrycharfinallylongstaticvoidclassfloatNativestrictfpvolatileconstfornewsuperwhileJava标识符命名规范元素规范示例类名Pascal规则PersonStudentDemo变量名Camel规则ageheightavgValue函数名Camel规则getAgesetUserName包名全部小写com.neusoft常量名全部大写MAX_VALUE6变量的数据类型•整型–byte–short–int–long•浮点型–float–double•字符型–char•布尔型–boolean整型•十进制形式–255•八进制形式–0377•十六进制形式–0XFF0xff类型内存大小备注byte1bytes-27~27-1short2bytes-215~215-1int4bytes-231~231-1long8bytes-263~263-1整型(续)•比较下面两个整型数的异同–10–10L9浮点型•普通形式–3.143.14d3.14f•科学计数法–3.14E53E4D3e-5f类型内存大小备注float4bytes表示约6-7位有效数字double8bytes表示约15位有效数字字符型(char)•代表单个字母或数字等•使用单引号•注意:与字符串的区别•转义字符字符含义\n换行\t制表符\\反斜杠\’单引号\’’双引号\uxxxxUnicode编码字符11布尔型•只能代表布尔值•true或false•不能与整型相互转换12数据类型的分类数据类型基本类型(primitive)引用类型(reference)byteshortintlongfloatdoublecharboolean类(class)接口(interface)数组(array)13数据类型的转换规则•自动转换•强制转换:使用(类型)完成强制转换byteshortintlongfloatdoublechar14操作符与操作数•操作符:也称为运算符,进行运算的符号•操作数:参与运算的变量或常量15操作符的分类•一元操作符–例:x++只有一个操作数•二元操作符–例:x+y有两个操作符•三元操作符–例:a?x:y三个操作数•注:三元操作符在Java中只有一个,而且很少使用,只有条件操作符一种。16操作符的分类(续)•从另一个角度,按照操作符参与运算的种类不同,也可以分为以下几种:–算数运算符–关系运算符–逻辑运算符–赋值运算符–位运算符–……算术运算符符号含义备注+加法-减法*乘法/除法%取余18练习•5%3•-5%3•-5%-3•5%-3关系运算符符号含义备注大于=大于等于小于=小于等于!=不等于==等于容易写错逻辑运算符符号含义备注&&逻辑与||逻辑或!逻辑非&按位与|按位或21逻辑运算符(续)•短路运算–作用运算符:逻辑与&&,逻辑或||–提高了运算效率inta=10;intb=20;intc=30;intd=40;booleanresult=ab||c(d+e)||a*b*d;booleanresult=ab&&cd;赋值运算符符号含义备注=x=y;把变量y的值赋给x+=x+=y;x=x+y;-=x-=y;x=x-y;*=x*=y;x=x*y;/=x/=y;x=x/y;位运算符符号含义备注&按位与x&y;|按位或x|y;^异或X^y;~取反~y;有符号左移xy有符号右移xy无符号右移xy位运算符(续)•位运算符示例01001111~1011000001101101&010010011100101101101101|111011111100101101101101^101001101100101125位运算符(续)•移位运算示例•例题:–1232–1232–123226运算符的优先级•按操作数多少划分–一元操作符二元操作符三元操作符•按运算类型划分–算术运算符关系运算符逻辑运算符赋值运算符•尽量多的使用括号–括号优先级别最高27表达式•算术表达式–(x+y-12)*100•关系表达式–xyx=yx!=yx==y•逻辑表达式–x&&yx||y||z(!x)&&(!y)•赋值表达式–x=yx+=y•常量表达式–3.14100•变量表达式–xy表达式的数据类型•表达式的类型取决于表达式中数据类型级别最高的操作数。29表达式类型的提升•二元运算符(不包含赋值变体,如+=)和byteshort这两种数据类型组成的表达式,其运算结果自动升级为int类型。bytea=10;byteb=20;bytec=a+b;条件语句if•单if条件语句格式:•示例:if(表达式){if语句块}01intx=10;02inty=20;03if(xy)04{05System.out.println(x);06}条件语句if(续)•二选一条件语句格式:if(表达式){if语句块}else{else语句块}01intx=10;02inty=20;03if(xy)04{05System.out.println(x);06}07else08{09System.out.println(y);10}•示例:条件语句if(续)•多选一条件语句示例:01intx=10;02inty=20;03if(xy)04{05System.out.println(xy);06}07elseif(x==y)08{09System.out.println(x==y);10}11else12{13System.out.println(xy);14}嵌套if语句多分支语句switch•格式:switch(expression){casevalue1:{statements1;break;}……casevalueN:{statementsN;break;}default:{defaultStatements;break;}}35多分支语句switch(续)•例题:01inta=100;02intb=20;03intc;04charoper=‘+’;05switch(oper)06{07case‘+’:08{09c=a+b;10break;11}12case‘-’:13{14c=a-b;15break;16}17default:18{19c=a*b;20break;21}22}表达式的类型break的作用default的作用36循环语句-whileinti=0;//初始化条件while(i100)//循环结束条件{System.out.println(i);//循环体i++;//迭代}规则:循环条件为true时,则循环。tbodyfalsetrueinit37循环语句-dowhileinti=0;//初始化条件do//循环结束条件{System.out.println(i);//循环体i--;//迭代}while(i0);规则:循环条件为true时,则循环。tbodyfalsetrueinit38循环语句-forfor(inti=0;i100;i++){System.out.println(i);//循环体}规则:循环条件为true时,则循环。tbodyfalsetrueiterainit循环语句总结intn=1,sum=0;while(n=10){sum=sum+n;n++;}intn=10,sum=0;do{sum+=n;n--;}while(n0);intsum=0;for(inti=1;i=10;i++){sum+=i;}while循环do-while循环for循环True则继续循环嵌套循环•不同变量的作用域和生命周期•内循环•外循环41循环语句的中断•break语句–作用:结束整个循环–带标签:breaklabel;•continue语句–作用:结束本次循环,继续下一次循环–带标签:continuelabel;42数组的定义•什么是数组•数组的基本概念–数组的名称–name–数组的类型--type–数组的元素--element–数组的索引--index–数组的长度--length•定义数组的语法–int[]myArray;–intmyArray[];43创建数组的步骤•声明数组•构造数组•初始化数组int[]myNumbers;myNumbers=newint[20];myNumbers[0]=5;myNumbers[1]=10;myNumbers[2]=15;myNumbers[3]=20;数组的默认值•数据类型默认值备注byte0short0char‘\u0000’int0long00Lfloat0.00.0Fdouble0.00.0Dbooleanfalse引用类型null45数组的内存模型•数组是存储多个相同类型变量的对象。数组的所有元素保存在堆内存中。•创建一个数组就是在堆中创建一个数组对象。•数组创建后立即拥有默认值。•索引从0开始。•连续分配int[]array;array=newint[4];00000123Theheap数组对象ValueIndex46数组的初始化•静态初始化•动态初始化int[]point={1,2,3,4,5,6,7,8,9};int[]point=newint[]{1,2,3,4};int[]point=newint[3];47数组的长度属性•数组的长度(length)必须=0;•length为只读。•利用length遍历数组int[]array;array=newint[4];48使用数组的常见错误•数组索引越界异常ArrayIndexOutOfBoundsException•空指针异常NullPointException49练习•给定任意一维数组,计算出数组中的最大值、最小值和平均值?•{-10,2,3,246,-100,0,5}50多维数组•声明数组•创建数组•初始化boolean[][]isFull;booleanisFull[][];boolean[]isFull[];boolean[][]isFull=newboolean[4][3];51多维数组的静态初始化•int[][]point={{1,2,3},{4,5,6},{7,8,9}};int[][]point=newint[][]{{1,2,3},{4,5,6},{7,8,9}};52多维数组的遍历•想一想如何使用嵌套循环遍历多维数组。53锯齿数组•数组行的长度不同,我们称之为锯齿数组;•静态初始化•动态初始化–必须指定第1维的长度int[][]point={{1,2,3},{4,5},{7}};int[][]point=newint[3][];point[0]=newint[2];point[1]=newint[3];point[2]=newint[4];54锯齿数组内存模型000000000pointpoint[1]point[2]point[0]point[0][3]•数组的数组55数组的复制•System.arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src–源数组srcPos–源开始索引dest–目标
本文标题:第二章 JAVA基础语法
链接地址:https://www.777doc.com/doc-4377206 .html