6-18 创建一个直角三角形类实现IShape接口 (20 分)
原创
©著作权归作者所有:来自51CTO博客作者qq63a17a25c2b1c的原创作品,请联系作者获取转载授权,否则将追究法律责任
6-18 创建一个直角三角形类实现IShape接口 (20 分)
创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。>两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。
interface IShape {// 接口
public abstract double getArea(); // 抽象方法 求面积
public abstract double getPerimeter(); // 抽象方法 求周长
}
直角三角形类的定义:
直角三角形类的构造函数原型如下:
RTriangle(double a, double b);
其中 a 和 b 都是直角三角形的两条直角边。
裁判测试程序样例:
import java.util.Scanner;
import java.text.DecimalFormat;
interface IShape {
public abstract double getArea();
public abstract double getPerimeter();
}
/*你写的代码将嵌入到这里*/
public class Main {
public static void main(String[] args) {
DecimalFormat d = new DecimalFormat("#.####");
Scanner input = new Scanner(System.in);
double a = input.nextDouble();
double b = input.nextDouble();
IShape r = new RTriangle(a, b);
System.out.println(d.format(r.getArea()));
System.out.println(d.format(r.getPerimeter()));
input.close();
}
}
输入样例:
3.1 4.2
输出样例:
6.51
12.5202
参考答案
class RTriangle implements IShape{
private double a;
private double b;
public RTriangle(double a, double b) {
super();
this.a = a;
this.b = b;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return this.a * this.b / 2.0;
}
@Override
public double getPerimeter() {
// TODO Auto-generated method stub
return this.a + this.b + Math.sqrt(this.a * this.a + this.b * this.b) ;
}
}