java类的使用测试点一个没过

Java类的使用中,一个测试点不能过

img


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        double a =sc.nextDouble();
        if(a<0) a = -a;
        
        double b = sc.nextDouble();
        if(b<0) b = -b;
        Square s = new Square(a);
        Circle c = new Circle(b);
        System.out.printf("边长为%.1f的正方形周长为%.1f,面积为%.1f\n",a,s.diameter(a),s.getArea(a));
        System.out.printf("半径为%.1f的圆周长为%.2f,面积为%.2f",b,c.diameter(b),c.getArea(b));

    }
}
abstract class Shape{
    private double r;

    public Shape(){};
    public Shape(double r) {
        this.r = r;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }
    public abstract double diameter(double r);
    public abstract double getArea(double r);
}
class Circle extends Shape{
    double PI = 3.14;
    public Circle(double r){
        super(r);
    }

    @Override
    public double diameter(double r) {
        return 2.0*PI*r;
    }

    @Override
    public double getArea(double r) {
        return PI*r*r;
    }

}
class Square extends Shape{

    public Square(double r){
        super(r);
    }
    @Override
    public double diameter(double r) {
        return 4.0*r;
    }

    @Override
    public double getArea(double r) {
        return r*r;
    }
}


代码逻辑没啥问题,是不是少了对1000的判断,不确定,贴个加了判断的代码

public class Main {
    public static void main(String[] args) {
        System.out.println("输入在一行中给出2个绝对值不超过1000的数A和数B:");
        Scanner sc  = new Scanner(System.in);
        double a = Math.abs(sc.nextDouble());
        double b = Math.abs(sc.nextDouble());
        while (a > 1000 || b > 1000) {
            System.out.println("输入在一行中给出2个绝对值不超过1000的数A和数B:");
            a = Math.abs(sc.nextDouble());
            b = Math.abs(sc.nextDouble());
        }

        Square s = new Square(a);
        Circle c = new Circle(b);
        System.out.printf("边长为%.1f的正方形周长为%.1f,面积为%.1f\n",a,s.diameter(a),s.getArea(a));
        System.out.printf("半径为%.1f的圆周长为%.2f,面积为%.2f",b,c.diameter(b),c.getArea(b));

    }
}