设计一个长方形类,成员变量包括长和宽。类中有计算面积和周长的方法,并有相应的 set 方法和 get 方法设置和获得长和宽。编写测试类测试是否达到预定功能。要求使用自定义的包。
时间: 2024-10-19 15:16:14 浏览: 34
设计一个名为`Rectangle`的类,我们可以按照以下步骤创建:
```java
// 首先,自定义一个名为`custom包`
package custom;
import java.util.HashMap;
import java.util.Map;
// 创建Rectangle类
public class Rectangle {
// 成员变量:长度和宽度
private double length;
private double width;
// 构造函数
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
// 设置方法(setters)
public void setLength(double length) {
this.length = length;
}
public void setWidth(double width) {
this.width = width;
}
// 获取方法(getters)
public double getLength() {
return length;
}
public double getWidth() {
return width;
}
// 计算面积的方法
public double calculateArea() {
return length * width;
}
// 计算周长的方法
public double calculatePerimeter() {
return 2 * (length + width);
}
}
```
接下来,我们创建一个测试类`RectangleTest`来验证`Rectangle`类的功能:
```java
package custom;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class RectangleTest {
@Test
public void testRectangle() {
// 创建一个Rectangle实例
Rectangle rectangle = new Rectangle(5, 4);
// 测试set方法
rectangle.setLength(6);
rectangle.setWidth(7);
assertEquals(6, rectangle.getLength());
assertEquals(7, rectangle.getWidth());
// 测试get方法
assertEquals(5, rectangle.getLength(), 0.0001); // 留出一点精度误差
assertEquals(4, rectangle.getWidth(), 0.0001);
// 测试计算面积和周长
double area = rectangle.calculateArea();
double perimeter = rectangle.calculatePerimeter();
assertEquals(28, area, 0.0001); // 面积应为20
assertEquals(26, perimeter, 0.0001); // 周长应为24
System.out.println("All tests passed.");
}
}
```
在这个例子中,`RectangleTest`类使用JUnit框架进行了单元测试,确保了`Rectangle`类的成员变量、setter和getter方法以及计算面积和周长的方法功能正常。
阅读全文