定义一个接口IgetArea,有方法double getArea(); 用于计算形状面积,定义另外一个接口IgetPerimeter,有方法 double getPerimeter();用于计算形状周长。接口IShape 有常量 PI=3.14,继承 接口IgetArea和IgetPerimeter
定义一个直角三角形类(regular triangle)RTriangle类,实现接口IShape。两条直角边作为Triangle类的私有成员,类中包含参数为2条直角边的构造方法。
定义一个圆形类Circle,实现接口IShape。半径r作为Circle类的私有成员,类中包含参数为r的构造方法。
定义一个锥体类Cone ,类中有一个IShape类型的成员IS,和锥体高h的成员,包含一个构造方法给IS和h赋初值,另外还有一个 public double getVolume() 方法,用于计算锥体的体积
接口定义:
interface IgetArea{
double getArea();
}
interface IgetPerimeter{
double getPerimeter();
}
裁判测试程序样例:
import java.lang.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double a = input.nextDouble();
double b = input.nextDouble();
double r=input.nextDouble();
double h=input.nextDouble();
IShape[] is=new IShape[2];
is[0]=new RTriangle(a,b);
is[1]=new Circle(r);
Cone cn1;
for(int i=0;i<2;i++) {
cn1=new Cone(is[i],h);
String vol=String.format("%.2f", cn1.getVolume());
String p=String.format("%.2f",is[i].getPerimeter());
System.out.println("Volume"+i+"="+vol+" Perimeter="+p);
}
}
}
/* 将其他代码填写在下面 */
输入样例:
3 4 5 6
结尾无空行
输出样例:
Volume0=12.00 Perimeter=12.00
Volume1=157.00 Perimeter=31.40
结尾无空行
结果如下:
import java.util.*;
interface IgetArea{
double getArea();
}
interface IgetPerimeter{
double getPerimeter();
}
interface IShape extends IgetArea,IgetPerimeter{
double PI=3.14;
}
class RTriangle implements IShape{
double a;
double b;
RTriangle(double m,double n){
a=m;
b=n;
}
public double getArea() {
return a*b/2;
}
public double getPerimeter() {
return a+b+Math.pow((a*a+b*b),0.5);
}
}
class Circle implements IShape{
double r;
Circle(double r){
this.r=r;
}
public double getArea() {
return PI*r*r;
}
public double getPerimeter() {
return 2*PI*r;
}
}
class Cone{
IShape IS;
double h;
Cone(IShape a,double h){
IS=a;
this.h=h;
}
public double getVolume() {
return 1/3.0*h*IS.getArea();
}
}