请设计类,描述一系列的几何图形,包括矩形,圆形,三角形。
-
这些图形都有面积,周长两种属性
-
这些图形,都可以被画出来(输出或打印出来,即都有一个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("画出三角形!");
}
}