实验一《类与对象》_第1页
实验一《类与对象》_第2页
实验一《类与对象》_第3页
实验一《类与对象》_第4页
实验一《类与对象》_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一类与对象实验课程名:Java程序设计专业班级: 学号: 姓名: 实验时间:9.16-9.23 实验地点:K4—307 指导教师:伍红华一、 实验目的和要求使用类来封装对象的属性和功能;掌握类变量与实例变量,以及类方法与实例方法的区别;掌握使用package和import语句;巩固以下概念:子类的继承性,子类对象的创建过程,成员变量的继承与隐藏,方法的继承与重写。二、 实验内容1三角形、梯形和圆形的类封装编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。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返回}}classCircledoubleradius,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】【代码16】【代码17】【代码18】//创建对象circle//创建对象trangle。//创建对象lader//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);}解答:源代码://AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){sideA=a;sideB=b;sideC=c;// 【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif((a+b>c)&&(a+c>b)&&(b+c>a))//代码2a,b,c构成三角形的条件表达式{boo=true;//代码3给boo赋值。}else{boo=false;//代码4给boo赋值。}}doublegetLength(){if(boo){length=sideA+sideB+sideC;returnlength;//代码5方法体,要求计算出length的值并返回}else{System.out.println(”不是一个三角形,不能计算周长”);return0;}}publicdoublegetArea(){if(boo){doublep=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));returnarea;}else{Systemout.printin(”不是一个三角形,不能计算面积”);return0;}}publicvoidsetABC(doublea,doubleb,doublec){sideA=a;sideB=b;sideC=c;//代码6参数a,b,c分别赋值给sideA,sideB,sideCif((a+b>c)&&(a+c>b)&&(b+c>a))//代码6a,b,c构成三角形的条件表达式{boo=true;//代码7给boo赋值。}else{boo=false;//代码8给boo赋值。}}}classLader{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){above=a;bottom=b;height=h;//代码9方法体,将参数a,b,c分别赋值给above,bottom,height}doublegetArea(){area=(above+bottom)*height/2;returnarea;//代码10方法体,,要求计算出area返回}}classCircle{doubleradius,area;Circle(doubler){radius=r;//代码12方法体}doublegetArea(){area=Math.PT*radius*radius;returnarea;//代码13方法体,要求计算出area返回}doublegetLength(){return(2*Math.PT*radius);//代码14getArea方法体的代码,要求计算出length返回}voidsetRadius(doublenewRadius){radius=newRadius;}doublegetRadius(){returnradius;}}publicclassAreaAndLength{publicstaticvoidmain(Stringargs[]){doublelength,area;Circlecirclenull;Trangletrangle;Laderlader;circle=newCircle(2);//代码15创建对象circletrangle=newTrangle(6,8,10);//代码16创建对象trangle。lader=newLader(3,5,6);//代码17创建对象laderlength=circle.getLength();//代码18circle调用方法返回周长并赋值给lengthSystemout.println("圆的周长:"+length);area=circle.getArea();//代码19circle调用方法返回面积并赋值给areaSystemout.println("圆的面积:"+area);length=trangle.getLength();//代码20trangle调用方法返回周长并赋值给lengthSystemout.println("三角形的周长:"+length);area=trangle.getArea();//代码21trangle调用方法返回面积并赋值给areaSystemout.println("三角形的面积:"+area);area=lader.getArea();//代码22lader调用方法返回面积并赋值给areaSystemout.println("梯形的面积:"+area);trangle.setABC(12,34,1);//代码23trangle调用方法设置三个边,要求将三个边修改为12,34,1。area=trangle.getArea()//【代码24】trangle调用方法返回面积并赋值给areaSystemout.println("三角形的面积:"+area);

length=trangle.getLength()//【代码25】trangle调用方法返回周长并赋值给lengthSystemout.println("三角形的周长:"+length);}}运行结果:(alt+printscreen),Problems@Javadoc冏,Declaration旦ConsoFe凉<teriTiinated>AreaAndlL巳ngth[JavaApplication]E:\Progi□豹月怅:12.56637061435917212.566370614359172三悄蛋的再怅:2斗.0三曲廉拊面寒:24.0棣孚対司航:2斗.0不是f三怕矗』不能计聲可税三曲廉拊面寒:❺左不是一4■三怕矗』不能汁算冏长三怕爭的月怅冷花运行结果分析:实验后的练习:程序中仅仅省略【代码15】,编译能通过吗?答:不能程序中仅仅省略【代码16】,编译能通过吗?答:不能程序中仅仅省略【代码15】,运行时出现怎样的异常提示?払Problems@Javadoc[^,Declaration貝ConsoFe蘆■^terminated>Ar&aALength[JavaApplication]E:\ProgramFilesXJava1答:Exceptioninthread''irain"~j日w日,J■日门E.RullPnin~terE:<(z亡lotionatfireaAndLen^thJirain(Ar亡日/VidLength,~j曰:i答:给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC。答:让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。答: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()o【代码14】 //dog调用inputB()o}}解答:源代码:运行结果:(alt+printscreen)运行结果分析:运行结果分析:(4)实验后的练习:a)将inputA()方法中的System.out.println(a);改写为System.out.println(a+b);编译是否出错?为什么?b)将inputB()方法中的System.out.println(b);改写为System.out.println(a+b);编译是否报错?为什么?答:3.使用package语句与import语句:创建一个java包,名为"chan”;定义一个学生类studentl,分别定义num,name,sex三个属性,访问修饰符分别是private、无修饰符和public修饰符。在主类student中创建学生类的对象,并且分别设置学号,姓名和性别的初始值,在主类中调用对象。用import语句导入学生包fxj_stu,分别定义num,name,sex三个属性,访问修饰符分别是private、无修饰符和public修饰符,然后在主类中创建对象,修改其属性值,看能否成功,如果不能,改变其访问修饰符,然后再观察结果。student.javapackagechan;importfxj.fxj_stu;classstudentl{publicintnum;Stringname;publicStringsex;}publicclassstudent{publicstaticvoidmain(String[]args){student1new_student=newstudent1();new_student.num=14;new_="chan";new_student.sex="男";fxj_stuxiaming=newfxj_stu();xiaming.num=19;="夏明";xiaming.sex="男";

System.out.println(”输出我的基本信息:");System.out.println(”号码:"+new_student.num);System.out.println(”姓名:"+new_);System.out.println(”性另U:"+new_student.sex);System.out.printl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论