![Java类及对象实验报告_第1页](http://file4.renrendoc.com/view/11ad0389e51688bbda06ce50ada85020/11ad0389e51688bbda06ce50ada850201.gif)
![Java类及对象实验报告_第2页](http://file4.renrendoc.com/view/11ad0389e51688bbda06ce50ada85020/11ad0389e51688bbda06ce50ada850202.gif)
![Java类及对象实验报告_第3页](http://file4.renrendoc.com/view/11ad0389e51688bbda06ce50ada85020/11ad0389e51688bbda06ce50ada850203.gif)
![Java类及对象实验报告_第4页](http://file4.renrendoc.com/view/11ad0389e51688bbda06ce50ada85020/11ad0389e51688bbda06ce50ada850204.gif)
![Java类及对象实验报告_第5页](http://file4.renrendoc.com/view/11ad0389e51688bbda06ce50ada85020/11ad0389e51688bbda06ce50ada850205.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.**邮电大学(计算机学院)课实验报告实验名称:类与对象专业名称:计算机科学与技术班级:计科1405班学生:高宏伟学号:04141152指导教师:霞林一、实验目的通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法。二、实验要求编写一个创建对象和使用对象的方法的程序。编写一个包含类成员和示例成员的程序。编写一个使用Java包的程序。三、实验容(一)三角形、梯形和圆形的类封装实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。程序模板:AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){this.sideA=a;//【代码1】参数a,b,c分别赋值给sideA,sideB,sideC this.sideB=b; this.sideC=c;if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB)//【代码2】a,b,c构成三角形的条件表达式{boo=true;//【代码3】给boo赋值。}else{boo=false;【代码4】//给boo赋值。}}doublegetLength(){returnsideA+sideB+sideC;【代码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){this.sideA=a; this.sideB=b; this.sideC=c;//【代码6】参数a,b,c分别赋值给sideA,sideB,sideCif((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB【代码7】)//a,b,c构成三角形的条件表达式{boo=true;【代码8】//给boo赋值。}else{boo=false;【代码9】//给boo赋值。}}}classLader{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){this.above=a; this.bottom=b; this.height=h;【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height}doublegetArea(){return(above+bottom)*height/2;【代码11】//方法体,,要求计算出area返回}}classCircle{doubleradius,area;Circle(doubler){this.radius=r;【代码12】//方法体}doublegetArea(){returnMath.PI*radius*radius;//【代码13】方法体,要求计算出area返回}doublegetLength(){returnMath.PI*2*radius;//【代码14】getArea方法体的代码,要求计算出length返回}voidsetRadius(doublenewRadius){radius=newRadius;}doublegetRadius(){returnradius;}}publicclassAreaAndLength{publicstaticvoidmain(Stringargs[]){doublelength,area;Circlecircle=null;Trangletrangle;Laderlader;circle=newCircle(5);【代码15】//创建对象circletrangle=newTrangle(3,4,5);【代码16】//创建对象trangle。lader=newLader(2,3,4);【代码17】//创建对象laderlength=circle.getLength(); System.out.println("圆的周长:"+length); area=circle.getArea(); System.out.println("圆的面积:"+area); length=trangle.getLength(); System.out.println("三角形的周长:"+length); area=trangle.getArea(); System.out.println("三角形的面积:"+area); area=lader.getArea(); System.out.println("梯形的面积:"+area); trangle.setABC(12,34,1); area=trangle.getArea(); System.out.println("三角形的面积:"+area); length=trangle.getLength(); System.out.println("三角形的周长:"+length);}}实验后的练习:1.程序中仅仅省略【代码15】,编译能通过吗? 不能通过,提示如下E*ceptioninthread"main"java.lang.Error:Unresolvedpilationproblems: ThelocalvariablecirclemaynothavebeeninitializedThelocalvariablecirclemaynothavebeeninitialized atAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85)2.程序中仅仅省略【代码16】,编译能通过吗? 不能通过,提示如下E*ceptioninthread"main"java.lang.Error:Unresolvedpilationproblems: Thelocalvariabletranglemaynothavebeeninitialized Thelocalvariabletranglemaynothavebeeninitialized Thelocalvariabletranglemaynothavebeeninitialized Thelocalvariabletranglemaynothavebeeninitialized ThelocalvariabletranglemaynothavebeeninitializedatAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:89)3.程序中仅仅省略【代码15】,运行时出现怎样的异常提示?E*ceptioninthread"main"java.lang.Error:Unresolvedpilationproblems: Thelocalvariablecirclemaynothavebeeninitialized Thelocalvariablecirclemaynothavebeeninitialized atAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85)给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC。doublegetsideA(){returnsideA;} doublegetsideB(){returnsideB;} doublegetsideC(){returnsideC;}让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。circle.setRadius(3);System.out.println("修改后的半径为"+circle.getRadius());System.out.println("修改后的面积为"+circle.getArea());System.out.println("修改后的周长为"+circle.getLength());(二)实例成员与类成员。实验要求:按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。程序运行效果示例: 程序运行效果如下图所示:程序模板:E*ample.javaclassA{【代码1】//声明一个float型实例变量a【代码2】//声明一个float型类变量b,voidsetA(floata){【代码3】//将参数a的值赋值给成员变量a}voidsetB(floatb){【代码4】//将参数b的值赋值给成员变量b}floatgetA(){returna;}floatgetB(){returnb;}voidinputA(){System.out.println(a);}staticvoidinputB(){System.out.println(b);}}publicclassE*ample{publicstaticvoidmain(Stringargs[]){A.b=100; //通过类名操作类变量b,并赋值100 A.inputB();//通过类名调用方法inputB() Acat=newA(); Adog=newA(); cat.setA(200); //cat调用方法setA(inta)将cat的成员a的值设置为200 cat.setB(400); //cat调用方法setB(intb)将cat的成员b的值设置为400 dog.setA(150); //dog调用方法setA(inta)将dog的成员a的值设置为150 dog.setB(300); //dog调用方法setB(intb)将dog的成员b的值设置为300 cat.inputA(); //cat调用inputA()。 cat.inputB(); //cat调用inputB()。 dog.inputA(); //dog调用inputA()。 dog.inputB(); //dog调用inputB()。}}实验后的练习:1.将inputA()方法中的System.out.println(a);改写为System.out.println(a+b);编译是否出错?为什么?不会,可以在非静态方法中引用静态变量。2.将inputB()方法中的System.out.println(b);改写为System.out.println(a+b);编译是否报错?为什么?会,无法在静态方法中引用非静态变量。(三)使用package语句与import语句。实验要求:按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。掌握一些重要的操作步骤。程序模板:模板1:将模板1给出的Java源文件命名为SquareEquation.java,将编译后得到的字节码文件复制到c:\1000\tom\jiafei目录中。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.a=a;this.b=b;this.c=c;if(a!=0){boo=true;}else{boo=false;}}}模板2:将模板
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国导盲石行业投资前景及策略咨询研究报告
- 2025至2030年中国高档胶合板数据监测研究报告
- 《AS的用法总结》课件
- 车位出租协议合同
- 简化版劳动合同解除范文
- 度营销精英目标责任合同
- 智能家电销售与售后服务合同
- 产品质量保证与合同管理版
- 商品代理分销合同
- 模范夫妻离婚合同书范本
- 2024-2025学年七年级数学下册第7章《幂的运算》检测卷(苏科版2024 含答案解析)
- 2025春季开学前学校安全隐患排查工作实施方案:5大安全排查一个都不能少
- (完整版)高考英语词汇3500词(精校版)
- 2024年联勤保障部队第九四〇医院社会招聘笔试真题
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- 00015-英语二自学教程-unit1
- 2024中华人民共和国农村集体经济组织法详细解读课件
- 中小学教师教育法律法规培训PPT页
- 人教版小学三年级道德与法治下册全册教案(精品)
- 通用标准快装接头尺寸表
- 可降解塑料袋项目可行性研究报告写作范文
评论
0/150
提交评论