定义一个名为Rectangle 的类表示矩形,具甲含有length 和 width 两个double 型的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法getPerimeter0和求面积的方法 getATea0。定义一个带参数构造方法,通过给出的长和宽创建短形对象。定人默认构造方法,在该方法甲调用有参数构造万法,将矩形长宽 都设置为 1.0。画出该类的 UML 图。编写程序测试这个矩形类的所有方法。
时间: 2024-03-25 19:40:10 浏览: 74
好的,以下是你的问题:
首先,这是一个定义矩形的类,类名为Rectangle,包含两个double类型的成员变量length和width,代表矩形的长和宽。要求为每个变量定义访问方法(getter)和修改方法(setter),并且定义求矩形周长的方法getPerimeter()和求面积的方法getArea()。
其次,需要定义一个带参数构造方法,通过给出的长和宽创建短形对象。同时还需要定义一个默认构造方法,在该方法中调用有参数构造方法,将矩形长宽都设置为1.0。
最后,需要画出该类的UML图,并编写程序测试这个矩形类的所有方法。
我的回答如下:
```java
public class Rectangle {
private double length;
private double width;
// 构造方法
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
public Rectangle() {
this(1.0, 1.0);
}
// getter和setter方法
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
// 求矩形周长的方法
public double getPerimeter() {
return 2 * (length + width);
}
// 求面积的方法
public double getArea() {
return length * width;
}
}
```
UML图如下:
```
+----------------+
| Rectangle |
+----------------+
| - length: double|
| - width: double |
+----------------+
| + Rectangle() |
| + Rectangle(length: double, width: double)|
| + getLength(): double|
| + setLength(length: double): void|
| + getWidth(): double|
| + setWidth(width: double): void|
| + getPerimeter(): double|
| + getArea(): double|
+----------------+
```
测试程序如下:
```java
public class TestRectangle {
public static void main(String[] args) {
Rectangle r1 = new Rectangle(); // 默认构造方法,长度和宽度均为1.0
System.out.println("r1的长度为:" + r1.getLength() + ",宽度为:" + r1.getWidth());
System.out.println("r1的周长为:" + r1.getPerimeter() + ",面积为:" + r1.getArea());
Rectangle r2 = new Rectangle(2.0, 3.0); // 带参数构造方法
System.out.println("r2的长度为:" + r2.getLength() + ",宽度为:" + r2.getWidth());
System.out.println("r2的周长为:" + r2.getPerimeter() + ",面积为:" + r2.getArea());
r2.setLength(4.0);
r2.setWidth(5.0);
System.out.println("r2的长度为:" + r2.getLength() + ",宽度为:" + r2.getWidth());
System.out.println("r2的周长为:" + r2.getPerimeter() + ",面积为:" + r2.getArea());
}
}
```
输出结果如下:
```
r1的长度为:1.0,宽度为:1.0
r1的周长为:4.0,面积为:1.0
r2的长度为:2.0,宽度为:3.0
r2的周长为:10.0,面积为:6.0
r2的长度为:4.0,宽度为:5.0
r2的周长为:18.0,面积为:20.0
```
阅读全文