package com.baidu.zuoye01;
public interface Shape {
// 求面积
double getArea();
// 求周长
double getPerimeter();
}
package com.baidu.zuoye01;
public class Circle implements Shape {
private final double PI = 3.14; //圆周率
private double r; //半径
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public Circle(double r) {
this.r = r;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return PI * r * r;
}
@Override
public double getPerimeter() {
// TODO Auto-generated method stub
return PI * r * 2;
}
}
package com.baidu.zuoye01;
class Rect implements Shape {
private double width; // 宽
private double 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;
}
public Rect(double width) {
this.width = width;
}
public Rect(double width, double height) {
this.height = height;
this.width = width;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return width * height;
}
@Override
public double getPerimeter() {
// TODO Auto-generated method stub
return 2 * (width + height);
}
}
package com.baidu.zuoye01;
public class Square extends Rect {
public Square(double width) {
super(width);
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return getWidth() * getWidth();
}
@Override
public double getPerimeter() {
// TODO Auto-generated method stub
return 4 * getWidth();
}
}
package com.baidu.zuoye01;
public class Test {
public static void main(String[] args) {
Shape[] shape = new Shape[3];
shape[0] = new Circle(3);
System.out.println("圆形的周长和面积:");
System.out.println(String.format("%.2f", shape[0].getArea()));
System.out.println(shape[0].getPerimeter());
shape[1] = new Rect(5, 8);
System.out.println("矩形的周长和面积:");
System.out.println(shape[1].getArea());
System.out.println(shape[1].getPerimeter());
shape[2] = new Square(5);
System.out.println("正方形的周长和面积:");
System.out.println(shape[2].getArea());
System.out.println(shape[2].getPerimeter());
}
}