题目:
创建一个直角三角形类(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();
}
}
根据题目要求,我们需要创建一个直角三角形类(regular triangle)RTriangle类,实现接口IShape。类中需要有一个构造方法为直角三角形赋值,还需要覆写接口中的两个方法,来实现求面积与求周长。
代码实现如下:
class RTriangle implements IShape {
private double hight;
private double wight;
public RTriangle(double hight,double wight) {
this.hight = hight;
this.wight = wight;
}
@Override
public double getArea() {
return (hight*wight)/2;
}
@Override
public double getPerimeter() {
return (hight+wight)+Math.sqrt((hight*hight)+(wight*wight));
}
}
注:求周长时需要用到勾股定理。
以上就是 PTA-6-40 创建一个直角三角形类实现IShape接口 的全部内容了,希望能对你有所帮助!