案例:计算图形面积

实验名称:

计算图形面积

实验目的:

学习并运用方法的调用,方法的重写,动态绑定技术

实验步骤:

  1. 定义三个类,父类GeometricObject代表几何形状,子类Circle代表圆形, MyRectangle代表矩形。
  2. 定义一个测试类GeometricTest, 编写equalsArea方法测试两个对象的面积是否相等(注意方法的参数类型,利用动态绑定技术),编写displayGeometricObject方法显示对象的面积(注意方法的参数类型,利用动态绑定技术)。

实验结果:

63.61725123519331
32.0
false

实验代码:

 

import static java.lang.Math.PI;

public class Test {

    public static boolean equalArea(GeometricObject go1,GeometricObject go2){
        return go1.findArea() == go2.findArea();
    }

    public static void display(GeometricObject go){
        System.out.println(go.findArea());
    }

    public static void main(String[] args) {
        Circle c = new Circle(4.5);
        double carea = c.findArea();
        display(c);
        MyRectangle re = new MyRectangle(4,8);
        double rarea = re.findArea();
        display(re);

        boolean isEquals = equalArea(c,re);
        System.out.println(isEquals);
    }
}

class GeometricObject {

    private String color;
    private double weight;

    public GeometricObject() {
    }

    public GeometricObject(String color, double weight) {
        this.color = color;
        this.weight = weight;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    public double findArea() {
        return 0.0;
    }
}



class Circle extends GeometricObject {
    private double radius;

    public Circle(String color, double weight, double radius) {
        super(color, weight);
        this.radius = radius;
    }

    public Circle() {
    }


    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public Circle(double radius) {
        this.radius = radius;
    }

    @Override
    public double findArea(){
        double area = PI*radius*radius;
        return area;
    }
}



class MyRectangle extends GeometricObject {
    private double width;
    private double height;

    public MyRectangle() {
    }

    public MyRectangle(String color, double weight, double width, double height) {
        super(color, weight);
        this.width = width;
        this.height = height;
    }

    public MyRectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
    @Override
    public double findArea(){
        double area = width*height;
        return area;
    }
}

实验总结:

了解了方法是如何定义并调用的;了解了方法的重写,需要有继承关系,方法名参数列表一致;了解了动态绑定技术如何使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值