《面向对象技术及应用》实验指导1Java程序设计实验指导书安阳工学院计算机系《面向对象技术及应用》实验指导2《面向对象技术及应用》实验指导3目录实验2Java基本语法练习一、实验目的1.了解Java的数据类型2.掌握各种变量的声明方式。3.理解运算符的优先级。4.掌握Java基本数据类型、运算符与表达式、数组的使用方法。5.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。6.通过以上内容,掌握Java语言的编程规则。二、实验要求1.编写一个声明Java不同数据类型变量的程序。2.编写一个使用运算符、表达式、变量的程序。3.编写一个使用Java数组的的程序。4.编写表达式语句、复合语句的程序。5.编写使用不同选择结构的程序。6.编写使用不同循环结构结构的程序。三、实验内容(一)声明不同数据类型的变量1.编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。publicclassLX2_1{publicstaticvoidmain(Stringargs[]){byteb=0x55;shorts=0x55ff;inti=1000000;longl=0xffffL;charc='a';floatf=0.23F;doubled=0.7E-3;booleanB=true;StringS=这是字符串类数据类型;System.out.println(字节型变量b=+b);System.out.println(短整型变量s=+s);System.out.println(整型变量i=+i);System.out.println(长整型变量l=+l);System.out.println(字符型变量c=+c);System.out.println(浮点型变量f=+f);System.out.println(双精度变量d=+d);System.out.println(布尔型变量B=+B);System.out.println(字符串类对象S=+S);}}2.编译并运行该程序,结果如图2.1所示。《面向对象技术及应用》实验指导4图2.1(二)了解变量的使用范围1.建立LX2_2.java文件,通过本程序了解变量的使用范围,源代码如下。publicclassLX2_2{staticinti=10;publicstaticvoidmain(Stringargs[]){{intk=10;System.out.println(i=+i);System.out.println(k=+k);}System.out.println(i=+i);System.out.println(k=+k);//编译时将出错,已出k的使用范围}}2.编译LX2_2.java此时会出现错误提示如图2.2所示。因为变量k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。图2.23.修改上面的程序。4.成功运行该程序。思考:LX2_2.java程序说明了什么问题?(三)使用关系运算符和逻辑运算符1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。classLX2_3{publicstaticvoidmain(Stringargs[]){inta=25,b=20,e=3,f=0;booleand=ab;System.out.println(a=25,b=20,e=3,f=0);System.out.println(因为关系表达式ab为假,所以其逻辑值为:+d);if(e!=0&&a/e5)System.out.println(因为e非0且a/e为8大于5,所以输出a/e=+a/e);《面向对象技术及应用》实验指导5if(f!=0&&a/f5)System.out.println(a/f=+a/f);elseSystem.out.println(因为f值为0,所以输出f=+f);}}2.编译并运行该程序,结果如图2.3所示。图2.3(四)使用数组1.建立使用数组的程序,本程序建立了一个长度为5的1维数组,一个长度为12的2维数组,源代码如下。publicclassLX2_4{publicstaticvoidmain(Stringargs[]){inta[]=newint[5];intarr1[][]=newint[3][4];a[0]=10;a[1]=10+a[0];a[2]=30;a[3]=40;a[4]=a[1]+a[2];arr1[0][0]=0;arr1[0][1]=1;arr1[0][2]=2;arr1[1][0]=3;arr1[1][1]=4;arr1[1][2]=5;arr1[2][0]=6;arr1[2][1]=7;arr1[2][2]=8;System.out.println(a[+0+]=+a[0]);System.out.println(a[+1+]=+a[1]);System.out.println(a[+2+]=+a[2]);System.out.println(a[+3+]=+a[3]);System.out.println(a[+4+]=+a[4]);System.out.println(arr1(+0+,+0+)=+arr1[0][0]);System.out.println(arr1(+0+,+1+)=+arr1[0][1]);System.out.println(arr1(+0+,+2+)=+arr1[0][2]);System.out.println(arr1(+1+,+0+)=+arr1[1][0]);System.out.println(arr1(+1+,+1+)=+arr1[1][1]);System.out.println(arr1(+1+,+2+)=+arr1[1][2]);}}2.编译并运行程序,结果如图2.4所示。图2.4(五)使用表达式语句与复合语句《面向对象技术及应用》实验指导61.建立包含表达式语句程序,源代码如下。classLX2_5{publicstaticvoidmain(String[]args){intk,i=3,j=4;k=20*8/4+i+j*i;System.out.println(表达式(20*8/4+i+j*i)=+k);}}2.建立包含复合语句程序,源代码如下。classLX2_6{publicstaticvoidmain(Stringargs[]){intk,i=3,j=4;k=i+j;System.out.println(在复合块外的输出k=+k);{floatf;f=j+4.5F;i++;System.out.println(在复合块内的输出f=+f);System.out.println(在复合块内的输出k=+k);}System.out.println(在复合块外的输出i=+i);}}3.编译并运行上述两个源程序,结果如图2.5、2.6所示。图2.5图2.64.将变量i在块内定义会怎样?改变其他变量的位置看看会发生什么变化。思考:指出程序的复合结构以及变量的使用范围。(六)使用选择语句1.使用if...else语句(1)程序功能:使用if...else语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被4整除,但不能被100整除;能被4整除,又能被100整除。(2)编写源程序文件,代码如下。publicclassLX2_7{publicstaticvoidmain(Stringargs[]){booleanleap;intyear=2005;if((year%4==0&&year%100!=0)||(year%400==0))//方法1System.out.println(year+年是闰年);elseSystem.out.println(year+年不是闰年);《面向对象技术及应用》实验指导7year=2008;//方法2if(year%4!=0)leap=false;elseif(year%100!=0)leap=true;elseif(year%400!=0)leap=false;elseleap=true;if(leap==true)System.out.println(year+年是闰年);elseSystem.out.println(year+年不是闰年);year=2050;//方法3if(year%4==0){if(year%100==0){if(year%400==0)leap=true;elseleap=false;}elseleap=false;}elseleap=false;if(leap==true)System.out.println(year+年是闰年);elseSystem.out.println(year+年不是闰年);}}(3)编译运行程序,其结果如图2.7所示。图2.7思考:本程序中有几个选择语句,哪些具有嵌套关系?2.使用switch语句(1)程序功能:在不同温度时显示不同的解释说明。(2)程序源代码如下。classLX2_8{publicstaticvoidmain(Stringargs[]){intc=38;switch(c10?1:c25?2:c35?3:4){case1:System.out.println(+c+℃有点冷。要多穿衣服。);case2:System.out.println(+c+℃正合适。出去玩吧。);case3:System.out.println(+c+℃有点热。);default:System.out.println(+c+℃太热了!开空调。);}}《面向对象技术及应用》实验指导8}(3)编译运行程序,其结果如图2.8所示。图2.8(七)使用循环语句1.for循环语句练习(1)程序功能:按5度的增量打印出一个从摄氏温度到华氏温度的转换表。(2)程序源代码如下。classLX2_9{publicstaticvoidmain(Stringargs[]){inth,c;System.out.println(摄氏温度华氏温度);for(c=0;c=40;c+=5){h=c*9/5+32;System.out.println(+c++h);}}}(3)编译并运行程序,其结果如图2.9所示。图2.92.while循环语句练习(1)程序功能:运行程序后从键盘输入数字1/2/3后,可显示抽奖得到的奖品;如果输入其它数字或字符显示“没有奖品给你!”。(2)程序源代码如下。importjava.io.*;classLX2_10{publicstaticvoidmain(Stringargs[])throwsIOException{charch;System.out.println(按1/2/3数字键可得大奖!);System.out.println(按空格键后回车可退出循环操作.);while((ch=(char)System.in.read())!=''){System.in.skip(2);//跳过回车键switch(ch){case'1':System.out.println(恭喜你得大奖,一辆汽车!);break;case'2':System.out.println(不错呀,你得到一台笔记本电脑!);break;case'3':System.out.println(没有白来,你得到一台冰箱!);break;default:System.out.println(真不幸,你没有奖品!下次再来吧。);}}}《面向对象技术及应用》实验指导9}(3)编译源程序。(4)在命令提示符窗口运行程序,然后分别按1、2、3、r结果如图2.10所示。图2.103.do…while循环语句练习(1)程序功能:求1+2+…+100之和,并将求和表达式与所求的和显示出来。(2)程序源代码如下。classLX2_11{publicstaticvoidmain(Stringargs[]){intn=1,sum=0;do{sum+=n++;}while(n=100)