标题定义一个名为Rectangle的类表示矩形,其中含有length和width两个double型的成员变量表示长和宽。要求为每一个变量定义访问方法和修改方法,定义求矩形周长的方法getPerimeter()和求面积的方法getArea()。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参数构造方法,将矩形长宽都设置为1.0。画出该类的UML图。编写程序测试这个矩形类的所有方法。
时间: 2024-02-09 13:12:49 浏览: 76
下面是这个矩形类的Python代码实现:
```python
class Rectangle:
def __init__(self, length=1.0, width=1.0):
self.__length = length
self.__width = width
def get_length(self):
return self.__length
def set_length(self, length):
self.__length = length
def get_width(self):
return self.__width
def set_width(self, width):
self.__width = width
def get_perimeter(self):
return 2 * (self.__length + self.__width)
def get_area(self):
return self.__length * self.__width
```
对于长和宽这两个成员变量,我使用了双下划线将其定义为私有变量,然后分别定义了访问方法和修改方法来访问和修改它们的值。这样可以保护这些变量,防止外部直接修改它们的值。
下面是该类的UML图:
```
+---------------------------------+
| Rectangle |
+---------------------------------+
| - __length: double |
| - __width: double |
+---------------------------------+
| + get_length(): double |
| + set_length(length: double): |
| + get_width(): double |
| + set_width(width: double): |
| + get_perimeter(): double |
| + get_area(): double |
+---------------------------------+
```
在该类中,我定义了两个构造方法。默认构造方法会调用带参数的构造方法,并将长和宽都设置为1.0。这样可以方便地创建一个默认大小的矩形对象。
下面是对该类的测试代码:
```python
# 创建一个默认大小的矩形
rect1 = Rectangle()
print(f"Length: {rect1.get_length()}, Width: {rect1.get_width()}")
print(f"Perimeter: {rect1.get_perimeter()}, Area: {rect1.get_area()}")
# 创建一个长为10,宽为5的矩形
rect2 = Rectangle(10, 5)
print(f"Length: {rect2.get_length()}, Width: {rect2.get_width()}")
print(f"Perimeter: {rect2.get_perimeter()}, Area: {rect2.get_area()}")
# 修改矩形的长和宽
rect2.set_length(15)
rect2.set_width(8)
print(f"Length: {rect2.get_length()}, Width: {rect2.get_width()}")
print(f"Perimeter: {rect2.get_perimeter()}, Area: {rect2.get_area()}")
```
输出结果:
```
Length: 1.0, Width: 1.0
Perimeter: 4.0, Area: 1.0
Length: 10, Width: 5
Perimeter: 30, Area: 50
Length: 15, Width: 8
Perimeter: 46, Area: 120
```
可以看到,该类的所有方法都能正常工作,并且我们可以创建、访问和修改矩形对象的长和宽。
阅读全文