您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 计科1141广东海洋大学java(实验5)
实验名称实验五.类的综合应用课程名称Java程序设计与开发技术课程号学院(系)数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110实验地点钟海楼04017实验日期2016.10.26实验五类的综合应用实验目的:(1)掌握类的继承,实现构造函数的继承。(2)多态,通过相同的方法名实现不同的功能以及通过上型转换实现多态。实验内容:1、/*有一个shape接口,利用该接口来编写求解不同的几何图形(圆柱体,圆锥,长方体,正方体,球)的表面积和体积的应用程序(其中正方体是长方体的子类,圆锥是圆柱的子类),要求用到继承、多态、等面向对象程序设计技术的来编程。并有一个主程序来测试这些类。*/Interfaceshape{Publicdoublevol();//体积Publicdoublearea();//表面积}代码:publicclassShiyan5{publicstaticvoidmain(String[]args){Cuboidcuboid=newCuboid(2,3,4);System.out.println(长,宽,高为2,3,4的长方体的体积是:+cuboid.vol());System.out.println(长,宽,高为2,3,4的长方体的表面积是:+cuboid.area());Cubecube=newCube(2);System.out.println(边长为2的正方体的体积是:+cube.vol());System.out.println(边长为2的正方体的表面积是:+cube.area());circularCylindercircular=newcircularCylinder(3,5);System.out.println(半径为3,高为5的圆柱的体积是:+circular.vol());System.out.println(半径为3,高为5的圆柱的表面积是:+circular.area());Conecone=newCone(3,4);System.out.println(半径为3,高为5的圆锥的体积是:+cone.vol());System.out.println(半径为3,高为5的圆锥的表面积是:+cone.area());Ballball=newBall(5);System.out.println(半径为5的球的体积:+ball.vol());System.out.println(半径为5的球的表面积:+ball.area());}}interfaceshape{publicdoublevol();//体积publicdoublearea();//表面积}classCuboidimplementsshape{//长方体doublea,b,c;Cuboid(){}Cuboid(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}publicdoublevol(){doublev=a*b*c;returnv;}publicdoublearea(){doubles=2*(a*b+b*c+a*c);returns;}}classCubeextendsCuboid{//正方体Cube(doublea){this.a=a;this.b=a;this.c=a;}}classcircularCylinderimplementsshape{//圆柱doubleradius;doubleheight;circularCylinder(){}circularCylinder(doubler,doubleh){this.radius=r;this.height=h;}publicdoublevol(){doublev=3.14*radius*radius*height;returnv;}publicdoublearea(){doublea=3.14*radius*radius;doubleb=2*3.14*radius*height;doubles=b+2*a;returns;}}classConeextendscircularCylinder{//圆锥Cone(){}Cone(doubler,doubleh){super(r,h);}publicdoublevol(){doublev=super.vol()/3;returnv;}publicdoublearea(){doublel=Math.sqrt(radius*radius+height*height);doubles=3.14*radius*radius+3.14*radius*l;returns;}}classBallimplementsshape{doubler;publicBall(doubler){this.r=r;}publicdoublevol(){return(4/3)*3.14*r*r*r;}publicdoublearea(){//TODOAuto-generatedmethodstubreturn4*3.14*r*r;}}2设计一个抽象类CompareObject,其中定义一个抽象方法compareTo()用于比较两个对象。然后设计一个类Posisition从CompareObject类派生,该类有x和y两个成员变量表示坐标,该类实现compareTo()方法,用比较两个Posisition对象到原点(0,0)的距离之差。代码:packageGDOU_JIKE;importjava.util.Scanner;abstractclassCompareObject{//定义抽象类abstractintcompareTo(Posisitiona,Posisitionb);}classPosisitionextendsCompareObject{//定义Posisition类intx;inty;Posisition(){x=0;y=0;}Posisition(inta,intb){x=a;y=b;}intcompareTo(Posisitiona,Posisitionb){intci;intai=a.x*a.x+a.y*a.y;intbi=b.x*b.x+b.y*b.y;ai=(int)Math.sqrt(ai);bi=(int)Math.sqrt(bi);ci=ai-bi;if(ci0){ci=0-ci;}returnci;}}publicclassExercise5{publicstaticvoidmain(String[]args){System.out.print(创建点A,请输入横坐标和纵坐标:);Scannerinput=newScanner(System.in);Scannerinput2=newScanner(System.in);intai=input.nextInt();//输入intbi=input2.nextInt();PosisitionA=newPosisition(ai,bi);System.out.print(创建点B,请输入横坐标和纵坐标:);Scannerinput3=newScanner(System.in);Scannerinput4=newScanner(System.in);intci=input3.nextInt();//输入intdi=input4.nextInt();PosisitionB=newPosisition(ci,di);intC=A.compareTo(A,B);System.out.print(A(+ai+,+bi+)点和B(+ci+,+di+)点到原点的距离之差为:+C);}}
本文标题:计科1141广东海洋大学java(实验5)
链接地址:https://www.777doc.com/doc-6411941 .html