甘肃政法学院本科学生实验报告(一)姓名:学院:计算机科学学院专业:计算机科学与技术班级:实验课程名称:JAVA开发与语言基础试验时间2011年9月28日指导教师及职称实验成绩:开课时间2011学年第一学期甘肃政法学院实验管理中心印制实验题目面向对象编程小组合作否姓名唐晓梅班级2011级专升本班学号201181210126一、实验目的:1、熟悉Java面向对象程序设计的基本思想。2、掌握类与对象的定义及使用方法。3、掌握package语句与import语句的用法。4、掌握java继承中父类及其子类的定义方法。5、掌握子类重写父类同名方法的方法。6、掌握用法。二、实验环境:装有JDK1.6,Eclipse的的计算机一台三、实验内容与步骤:(1)Java程序开发环境配置:1、下载并安装JDK1.6,过程可参考教材P4-6。2、配置环境变量:SDK平台提供的Java编译器(javac.exe)和Java解释器(java.exe)位于Java安装目录的bin文件夹中,为了能在任何目录中使用编译器和解释器,应在系统特性中设置Path。对于Windows2000、Windows2003、WindowsXP,用鼠标右键点击“我的电脑”,弹出菜单,然后选择属性,弹出“系统特性”对话框,再单击该对话框中的高级选项,然后点击按钮“环境变量”,添加如下图所示的系统环境变量:J2SDK的安装目录的jre文件夹中包含着Java应用程序运行时所需要的Java类库,这些类库被包含在jre\lib目录下的压缩文件rt.jar中。因此,再添加如下图所示环境变量。3、下载Eclipse3.4或以上版本,将其解压到某一目录下。使用时只需双击eclipse图标即可。4、在记事本中编写简单的Application程序,运用JDK命令方式在屏幕上打印输出“你好,很高兴学习Java”。5、在记事本中编写简单的Applet程序,运用JDK命令方式在JavaApplet中绘制一行文字:“这是一个JavaApplet程序”。6、在Eclipse环境下完成3,4所要求的任务,可参考教材P416实验1的步骤。(2)Java程序:实验3类与对象1、三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。最后在主方法中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。该程序的模板代码如下:请将其补充完整并调试运行。AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】)//a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。}else{【代码4】//给boo赋值。}}doublegetLength(){【代码5】//方法体,要求计算出length的值并返回}publicdoublegetArea(){if(boo){doublep=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));returnarea;}else{System.out.println(不是一个三角形,不能计算面积);return0;}}publicvoidsetABC(doublea,doubleb,doublec){【代码6】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码7】)//a,b,c构成三角形的条件表达式{【代码8】//给boo赋值。}else{【代码9】//给boo赋值。}}}classLader{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height}doublegetArea(){【代码11】//方法体,,要求计算出area返回}}classCircle{doubleradius,area;Circle(doubler){【代码12】//方法体}doublegetArea(){【代码13】//方法体,要求计算出area返回}doublegetLength(){【代码14】//getArea方法体的代码,要求计算出length返回}voidsetRadius(doublenewRadius){radius=newRadius;}doublegetRadius(){returnradius;}}publicclassAreaAndLength{publicstaticvoidmain(Stringargs[]){doublelength,area;Circlecircle=null;Trangletrangle;Laderlader;【代码15】//创建对象circle【代码16】//创建对象trangle。【代码17】//创建对象lader【代码18】//circle调用方法返回周长并赋值给lengthSystem.out.println(圆的周长:+length);【代码19】//circle调用方法返回面积并赋值给areaSystem.out.println(圆的面积:+area);【代码20】//trangle调用方法返回周长并赋值给lengthSystem.out.println(三角形的周长:+length);【代码21】//trangle调用方法返回面积并赋值给areaSystem.out.println(三角形的面积:+area);【代码22】//lader调用方法返回面积并赋值给areaSystem.out.println(梯形的面积:+area);【代码23】//trangle调用方法设置三个边,要求将三个边修改为12,34,1。【代码24】//trangle调用方法返回面积并赋值给areaSystem.out.println(三角形的面积:+area);【代码25】//trangle调用方法返回周长并赋值给lengthSystem.out.println(三角形的周长:+length);}}通过编译得出如下答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+bc&&a+cb&&c+ba【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;returnlength;}else{System.out.println(不是一个三角形,不能计算周长);return0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+bc&&a+cb&&c+ba【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;returnarea;【代码12】:radius=r;【代码13】:return3.14*radius*radius;【代码14】:return3.14*2*radius;【代码15】:circle=newCircle(10);【代码16】:trangle=newTrangle(3,4,5);【代码17】:lader=newLader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2、学习实例成员与类成员的区别:按照下面模板代码中的注释信息将该程序补充完整并调试运行。Example.javaclassA{【代码1】//声明一个float型实例变量a【代码2】//声明一个float型类变量b,即static变量bvoidsetA(floata){【代码3】//将参数a的值赋值给成员变量a}voidsetB(floatb){【代码4】//将参数b的值赋值给成员变量b}floatgetA(){returna;}floatgetB(){returnb;}voidinputA(){System.out.println(a);}staticvoidinputB(){System.out.println(b);}}publicclassExample{publicstaticvoidmain(Stringargs[]){【代码5】//通过类名操作类变量b,并赋值100【代码6】//通过类名调用方法inputB()Acat=newA();Adog=newA();【代码7】//cat象调用方法setA(inta)将cat的成员a的值设置为200【代码8】//cat调用方法setB(intb)将cat的成员b的值设置为400【代码9】//dog象调用方法setA(inta)将dog的成员a的值设置为150【代码10】//dog调用方法setB(intb)将dog的成员b的值设置为300【代码11】//cat调用inputA()。【代码12】//cat调用inputB()。【代码13】//dog调用inputA()。【代码14】//dog调用inputB()。}}通过编译得出如下答案:【代码1】:floata;【代码2】:staticfloatb;【代码3】:this.a=a;【代码4】:this.b=b;【代码5】:A.b=100;【代码6】:A.inputB();【代码7】:cat.setA(200);【代码8】:cat.setB(400);【代码9】:dog.setA(150);【代码10】:dog.setB(300);【代码11】:cat.inputA();【代码12】:cat.inputB();【代码13】:dog.inputA();【代码14】:dog.inputB();3、使用package语句与import语句:上机调试下面程序,学会package与import语句的用法。SquareEquation.javapackagetom.jiafei;publicclassSquareEquation{doublea,b,c;doubleroot1,root2;booleanboo;publicSquareEquation(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;if(a!=0){boo=true;}else{boo=false;}}publicvoidgetRoots(){if(boo){System.out.println(是一元2次方程);doubledisk=b*b-4*a*c;if(disk=0){root1=(-b+Math.sqrt(disk))/(2*a);root2=(-b-Math.sqrt(disk))/(2*a);System.out.printf(方程的根:%f,%f\n,root1,root2);}else{System.out.printf(方程没有实根\n);}}else{System.out.println(不是一元2次方程);}}publicvoidsetCoefficient(doublea,doubleb,doublec){this