视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
广东海洋大学实验+6+类的综合应用 计科1178
2025-09-30 19:45:34 责编:小OO
文档
实验六 类的综合应用

实验目的:

(1)掌握类的继承,实现构造函数的继承。

(2)多态,通过相同的方法名实现不同的功能以及通过上型转换实现多态。

实验内容:

1、有一个shape接口,利用该接口来编写圆柱体,圆锥,长方体,和正方体的表面积与体积的应用程序(其中正方体是长方体的子类,圆锥是圆柱的子类),要求接口回调技术来求这些几何图形的体积和表面积。

Interface shape{

Public double vol();//体积

Public double area();//表面积

}

2  有一个抽象类CompareObject,其中定义一个抽象方法abstract int compareTo(Object  obj)用于比较两个对象。然后设计一个类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的长方体的表面积是:"+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 cone = 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 Cuboid 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 circularCylinder 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;

        double 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 implements 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 stub

        return 4*3.14*r*r;

    }

    }

2、

package GDOU_JIKE;

    import java.util.Scanner;

    abstract class CompareObject{              //定义抽象类

        abstract int compareTo(Posisition a,Posisition b);

    }

    class 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(ci<0)

            {ci=0-ci;}

            return ci; 

        }

    }

    public 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);

        }

    }下载本文

显示全文
专题