描述一系列的几何图形,包括矩形,圆形,三角形

请设计类,描述一系列的几何图形,包括矩形,圆形,三角形。

  1. 这些图形都有面积,周长两种属性

  2. 这些图形,都可以被画出来(输出或打印出来,即都有一个draw方法)

请定义类,来描述以上几何图形,并考虑类中成员变量的访问权限,并提供必要的方法进行属性(成员变量的)访问。

package com.caompany;

import static java.lang.Math.sqrt;

/**
 * @Author:gaoyuan
 * @Description:
 * @DateTime:2021/1/11 19:28
 **/
public class Main {

    public static void main(String[] args) {
        Gectangle gectangle = new Gectangle(20, 18);
        gectangle.Draw();
        System.out.println("面积为:" + gectangle.getArea() + "\t" + "周长为:" + gectangle.getPerimeter());
        Circle circle = new Circle(3.14, 6.18);
        circle.Draw();
        System.out.println("面积为:" + circle.getArea() + "\t" + "周长为:" + circle.getPerimeter());
        Triangle triangle = new Triangle(sqrt(3), 6);
        triangle.Draw();
        System.out.println("面积为:" + triangle.getArea() + "\t" + "周长为:" + triangle.getPerimeter());


    }
}

abstract class Geometry {
    private double area;//面积
    private double perimeter;//周长

    //构造方法
    public Geometry(double area, double perimeter) {
        this.area = area;
        this.perimeter = perimeter;
    }

    public abstract void Draw();//画图形

    public void setArea(double area) {
        this.area = area;
    }

    public void setPerimeter(double perimeter) {
        this.perimeter = perimeter;
    }

    public double getArea() {
        return area;
    }

    public double getPerimeter() {
        return perimeter;
    }
}

//矩形类
class Gectangle extends Geometry {
    public Gectangle(double area, double perimeter) {
        super(area, perimeter);
    }

    @Override

    public void Draw() {
        System.out.println("画出矩形!");
    }

}

//圆形类
class Circle extends Geometry {

    public Circle(double area, double perimeter) {
        super(area, perimeter);
    }

    @Override
    public void Draw() {
        System.out.println("画出圆形!");
    }
}

class Triangle extends Geometry {
    public Triangle(double area, double perimeter) {
        super(area, perimeter);
    }

    @Override
    public void Draw() {
        System.out.println("画出三角形!");
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值