广东海洋大学实验+6+类的综合应用 计科1178.doc

上传人:飞****9 文档编号:138062606 上传时间:2020-07-13 格式:DOC 页数:5 大小:48KB
返回 下载 相关 举报
广东海洋大学实验+6+类的综合应用 计科1178.doc_第1页
第1页 / 共5页
广东海洋大学实验+6+类的综合应用 计科1178.doc_第2页
第2页 / 共5页
广东海洋大学实验+6+类的综合应用 计科1178.doc_第3页
第3页 / 共5页
广东海洋大学实验+6+类的综合应用 计科1178.doc_第4页
第4页 / 共5页
广东海洋大学实验+6+类的综合应用 计科1178.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《广东海洋大学实验+6+类的综合应用 计科1178.doc》由会员分享,可在线阅读,更多相关《广东海洋大学实验+6+类的综合应用 计科1178.doc(5页珍藏版)》请在金锄头文库上搜索。

1、实验六 类的综合应用实验目的:(1)掌握类的继承,实现构造函数的继承。(2)多态,通过相同的方法名实现不同的功能以及通过上型转换实现多态。实验内容:1、 有一个shape接口,利用该接口来编写圆柱体,圆锥,长方体,和正方体的表面积与体积的应用程序(其中正方体是长方体的子类,圆锥是圆柱的子类),要求接口回调技术来求这些几何图形的体积和表面积。Interface shapePublic double vol();/体积Public double area();/表面积2 有一个抽象类CompareObject,其中定义一个抽象方法abstract int compareTo(Object obj)

2、用于比较两个对象。然后设计一个类Posisition从CompareObject类派生,该类有x和y两个成员变量表示坐标,该类实现compareTo()方法,用比较两个Posisition对象到原点(0,0)的距离之差。代码1、public class sy6666611111111 public static void main(String args) Cuboid cuboid = new Cuboid(2,3,4);System.out.println(长,宽,高为2,3,4的长方体的体积是:+cuboid.vol();System.out.println(长,宽,高为2,3,4的长方

3、体的表面积是:+cuboid.area();Cube cube = new Cube(2);System.out.println(边长为2的正方体的体积是:+cube.vol();System.out.println(边长为2的正方体的表面积是:+cube.area();circularCylinder circular = new circularCylinder(3,5);System.out.println(半径为3,高为5的圆柱的体积是:+circular.vol();System.out.println(半径为3,高为5的圆柱的表面积是:+circular.area();Cone c

4、one = new Cone(3,4);System.out.println(半径为3,高为5的圆锥的体积是:+cone.vol();System.out.println(半径为3,高为5的圆锥的表面积是:+cone.area();Ball ball = new Ball(5);System.out.println(半径为5的球的体积:+ball.vol();System.out.println(半径为5的球的表面积:+ball.area();interface shape public double vol(); /体积public double area(); /表面积class Cubo

5、id implements shape /长方体double a,b,c;Cuboid()Cuboid(double a,double b,double c)this.a = a;this.b = b;this.c = c;public double vol()double v = a*b*c;return v;public double area() double s = 2*(a*b+b*c+a*c);return s;class Cube extends Cuboid /正方体Cube(double a)this.a = a;this.b = a;this.c = a;class cir

6、cularCylinder implements shape /圆柱double radius;double height;circularCylinder()circularCylinder(double r,double h) this.radius = r;this.height = h;public double vol()double v = 3.14*radius*radius*height;return v;public double area() double a = 3.14*radius*radius;double b = 2*3.14*radius*height;doub

7、le s = b+2*a;return s;class Cone extends circularCylinder /圆锥 Cone()Cone(double r,double h) super(r,h);public double vol()double v = super.vol()/3;return v;public double area() double l = Math.sqrt(radius*radius+height*height);double s = 3.14*radius*radius+3.14*radius*l;return s; class Ball implemen

8、ts shape double r;public Ball(double r) this.r=r; public double vol() return (4/3)*3.14*r*r*r;public double area() / TODO Auto-generated method stubreturn 4*3.14*r*r;2、package GDOU_JIKE;import java.util.Scanner;abstract class CompareObject /定义抽象类abstract int compareTo(Posisition a,Posisition b);clas

9、s Posisition extends CompareObject /定义Posisition类int x;int y;Posisition()x=0;y=0;Posisition(int a,int b)x=a;y=b;int compareTo(Posisition a,Posisition b)int ci; int ai=a.x*a.x+a.y*a.y; int bi=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; return ci; public

10、 class Exercise5 public static void main(String args)System.out.print(创建点A,请输入横坐标和纵坐标:);Scanner input = new Scanner(System.in);Scanner input2 = new Scanner(System.in);int ai = input.nextInt(); / 输入int bi = input2.nextInt();Posisition A=new Posisition(ai,bi);System.out.print(创建点B,请输入横坐标和纵坐标:);Scanner input3 = new Scanner(System.in);Scanner input4 = new Scanner(System.in);int ci = input3.nextInt(); / 输入int di = input4.nextInt();Posisition B=new Posisition(ci,di);int C=A.compareTo(A, B);System.out.print(A(+ai+,+bi+)点和B(+ci+,+di+)点到原点的距离之差为:+C);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号