定义接口 DiagArea,其中包含方法 double getDiagonal()求对角线长, double getArea()求 面积。定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类 实现此接口(如:矩形有长 w 和宽 h,并有相应的构造方法,有一个方法直接显示边 长、面积和对角线长)。定义 Main 类作为运行入口,并使用测试该类。
参考如下:
//测试类Test
public class Main
{
public static void main(String[] args)
{
Rectangle rectangle = new Rectangle(10.2, 5.1);
System.out.println("对角线:" + rectangle.getDiagonal());
System.out.println("面积:" + rectangle.getArea());
}
}
interface DiagArea {
double getDiagonal();
double getArea();
}
class Rectangle implements DiagArea {
private double w; // 长
private double h; // 宽
public Rectangle() {
}
public Rectangle(double w, double h) {
this.w = w;
this.h = h;
}
@Override
public double getDiagonal() {
return Math.sqrt(w * w + h * h);
}
@Override
public double getArea() {
return w * h;
}
public double getW() {
return w;
}
public void setW(double w) {
this.w = w;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
}
class Square implements DiagArea {
private double side;
public Square() {
}
public Square(double side) {
this.side = side;
}
@Override
public double getDiagonal() {
return Math.sqrt(side * side + side * side);
}
@Override
public double getArea() {
return side * side;
}
public double getSide() {
return side;
}
public void setSide(double side) {
this.side = side;
}
}
接口DiagArea:
public interface DiagArea {
//求对角线长
double getDiagonal();
//求面积
double getArea();
}
矩形类:
public class Rectangle implements DiagArea{
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public void showInfo() {
System.out.println("长方形 长:" + height + ",宽:" + width);
}
@Override
public double getDiagonal() {
return Math.sqrt(width * width + height * height);
}
@Override
public double getArea() {
return width * height;
}
}
正方形类:
public class Square implements DiagArea{
private double sideLength;
public Square(double sideLength) {
this.sideLength = sideLength;
}
public void showInfo() {
System.out.println("正方形边长: " + sideLength);
System.out.println("正方形面积:" + getArea());
System.out.printf("正方形对角线长:%.2f\n", getDiagonal());
}
@Override
public double getDiagonal() {
return Math.sqrt(sideLength * sideLength + sideLength * sideLength);
}
@Override
public double getArea() {
return sideLength * sideLength;
}
}
Main 类:
public class Main {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(3, 4);
rectangle.showInfo();
System.out.println("长方形面积:" + rectangle.getArea());
System.out.printf("长方形对角线长:%.2f\n", rectangle.getDiagonal());
Square square = new Square(5);
square.showInfo();
}
}
测试输出:
长方形 长:4.0,宽:3.0
长方形面积:12.0
长方形对角线长:5.00
正方形边长: 5.0
正方形面积:25.0
正方形对角线长:7.07