设计一个接口IShape,包含两个方法,perimeterO,area0,用于返回图形的周长和面积。(java)

编写程序实现:
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()); 
		}
}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值