编写程序实现:
1设计一个接口IShape,包含两个方法,perimeterO,area0,用于返回图形的周长和面积。
2设计三个类(矩形Rectangle,圆形类Circle.三角形类Triangle)实现接IShape,并设计其相应的toString0方法3.设计一个测试类,创建一个图形数组,随便包含以上各种图形(可重复),遍历数组,显示它们的周长和面积。
package work;
import java.lang.Math;
public interface Calculate {
public abstract double perimeter();
public abstract double area();
public abstract String show();
}
class Circle implements Calculate {
private double r;
public Circle(double r) {
this.r = r;
}
public double perimeter() {
//圆形周长
return 2*Math.PI*this.r;
}
public double area() {
return Math.PI*Math.pow(r, 2);
}
public String show() {
return "圆形:";
}
}
class Rectangle implements Calculate {
private double width;
private double height;
public Rectangle() {
}
public Rectangle(double width,double height) {
this.width = width;
this.height = height;
}
public double perimeter() {
//计算长方形周长
return 2*(this.height+this.width);
}
@Override
public double area() {
//计算长方形面积
return this.height*this.width;
}
public String show() {
return "长方形:";
}
}
class Square implements Calculate{
private double side;
public Square(double side) {
this.side = side;
}
public double perimeter() {
return this.side*4;
}
public double area() {
return Math.pow(this.side, 2);
}
public String show() {
return "正方形:";
}
}
class Triangle implements Calculate {
private double a;
private double b;
private double c;
private double s;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double perimeter() {
return this.a+this.b+this.c;
}
public double area() {
s=(a+b+c)/2;
return Math.sqrt(s*(s-a)*(s-b)*(s-c));
}
public String show() {
return "三角形:";
}
}
class CalculateDemo {
public static void main(String[] args) {
Circle q=new Circle(3);
Rectangle w=new Rectangle(5,6);
Square e=new Square(4);
Triangle r=new Triangle(3,4,5);
Calculate [] shape= {q,w,e,r};
for (int i = 0; i < shape.length; i++) {
System.out.println(shape[i].show());
System.out.println(" 周长="+shape[i].perimeter());
System.out.println(" 面积="+shape[i].area());
}
}
}