/** * @author aachen0 * @date 2018/3/26 16:07 * IDE:IntelliJ IDEA * 1、定义长方形类,含: * 属性:宽、长(整型); * 方法:求周长、面积; * 构造方法4个:(1)无参——宽、长默认值为1;(2)2个参数——宽、长各为参数值。 * 要求:进行测试。 * 2、定义圆类,它有一个变量radius(半径)。构造方法传递给radius,编程计算并输出圆的周长和面积(确保输入的数据不为负数)。 * 3、定义长方体类,定义求底面积、体积的方法。 * 4、定义球类,定义求体积的方法。 */ public class HomeWork { public static void main(String[] args) { Graph g0 = new Rectangle(); Graph g1 = new Rectangle(24, 24); Graph g2 = new Circle(12); Graph g3 = new Cube(24, 24, 24); Graph g4 = new Sphere(-12); Graph g5 = new Sphere(12); System.out.println("无参长方形的周长" + g0.getGirth()); System.out.println("长方形的面积" + g1.getArea()); System.out.println("圆的周长" + g2.getGirth()); System.out.println("立方体的体积" + g3.getVolume()); System.out.println("立方体的底面积" + ((Cube) g3).getBasalArea()); System.out.println("立方体的面积" + g3.getArea()); System.out.println("负数半径的球体面积" + g4.getArea()); System.out.println("球的体积" + g5.getVolume()); } } interface Graph { double PI = 3.1415926; double getGirth(); double getArea(); double getVolume(); } class Rectangle implements Graph { int width; int length; Rectangle() { width = 1; length = 1; } Rectangle(int width, int length) { this.width = width; this.length = length; } public double getGirth() { return (width + length) * 2; } public double getArea() { return width * length; } @Override public double getVolume() { return 0; } } class Circle implements Graph { private int radius; Circle(int radius) { try { if (radius < 0) throw new IllegalArgumentException("半径不能为负"); } catch (IllegalArgumentException e) { e.printStackTrace(); return; } this.radius = radius; } @Override public double getGirth() { return 2 * PI * radius; } @Override public double getArea() { return PI * radius * radius / 2; } @Override public double getVolume() { return 0; } } class Cube extends Rectangle { private int height; Cube(int width, int lenght, int height) { super(width, lenght); this.height = height; } //这里是求底面积 public double getBasalArea() { return super.getArea(); } //这里是求总面积 @Override public double getArea() { return super.getArea() * 2 + (height * width + height * length) * 2; } public double getVolume() { return super.getArea() * height; } } class Sphere extends Circle { private final int radius; Sphere(int radius) { super(radius); this.radius = radius; } @Override public double getVolume() { return 4 * PI * radius * radius * radius / 3; } @Override public double getArea() { return super.getArea() * 2; } }
接口小练习
最新推荐文章于 2022-05-09 00:49:03 发布