最新广东海洋大学实验+6+类的综合应用 计科1178
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六类的综合应用
实验目的:
(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.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) {