设计正方形类Square,并用题目给出的测试类TestSquare测试自己设计的类Square。 类Square中必须提供的数据成员、成员方法、构造方法,由考生根据题目给出的测试类TestSquare判断得出。类Square是否需要继承其它的类或实现什么接口,都有考生自行决定。类Square中可以包含测试类TestSquare没有测到的成员,但不能修改题目指定的测试类TestSquare的代码。 请把自己定义的正方形类Square与题目给出的测试类TestSquare,一起提交调试。不允许改动测试类TestSquare的代码。 class TestSquare{ public static void main(String[] args){ Square[] data=new Square[5]; Scanner input = new Scanner(System.in); for(int i=0;i<data.length;i++){ data[i]=new Square(input.nextInt()); } System.out.println( "数组原顺序:"); for(Square squ:data) System.out.println(squ.getArea()); System.out.println( "升序排序后:"); Square.sortByArea(data); for(Square squ:data) System.out.println(squ.getArea()); } }
时间: 2024-03-10 12:50:52 浏览: 62
以下是一个可能的 Square 类的实现,以及一个符合题目要求的 TestSquare 测试类:
```java
import java.util.Arrays;
public class Square {
private double sideLength;
public Square(double sideLength) {
this.sideLength = sideLength;
}
public double getSideLength() {
return sideLength;
}
public double getArea() {
return sideLength * sideLength;
}
public static void sortByArea(Square[] squares) {
Arrays.sort(squares, (s1, s2) -> Double.compare(s1.getArea(), s2.getArea()));
}
}
```
```java
import java.util.Scanner;
public class TestSquare {
public static void main(String[] args) {
Square[] data = new Square[5];
Scanner input = new Scanner(System.in);
for (int i = 0; i < data.length; i++) {
data[i] = new Square(input.nextDouble());
}
System.out.println("数组原顺序:");
for (Square squ : data)
System.out.println(squ.getArea());
System.out.println("升序排序后:");
Square.sortByArea(data);
for (Square squ : data)
System.out.println(squ.getArea());
}
}
```
在这个实现中,Square 类有一个私有的 sideLength 数据成员,表示正方形的边长。它有一个构造方法,用于构造一个给定边长的正方形对象。它还有一个 getSideLength() 方法,用于获取正方形的边长,以及一个 getArea() 方法,用于计算正方形的面积。最后,它还有一个静态的 sortByArea() 方法,用于按照正方形的面积对一个 Square 数组进行排序。
测试类 TestSquare 中,首先创建一个长度为 5 的 Square 数组 data,然后使用 Scanner 对象读入 5 个 double 值,分别作为正方形的边长构造 5 个正方形对象,并存储到 data 数组中。接着,打印出数组中每个正方形的面积,然后调用 Square.sortByArea() 方法对数组进行排序,最后再次打印出数组中每个正方形的面积,这次按照升序排列。
阅读全文