1、 定义并实现⼀个矩形类Rectangle,其私有实例成员为矩形的左下角与右上角两个点的坐标,能设置左下角和右上角两个点的位置,能根据左下⾓与右上角两个点的坐标计算矩形的长、宽、周长和⾯积,另外根据需要适当添加其他成员⽅法和特殊方法(如构造方法)。实现并测试这个类。
时间: 2024-02-28 18:53:40 浏览: 179
好的,让我来帮你实现这个矩形类。
```python
class Rectangle:
def __init__(self, x1, y1, x2, y2):
self.x1, self.y1 = x1, y1
self.x2, self.y2 = x2, y2
def set_left_bottom(self, x, y):
self.x1, self.y1 = x, y
def set_right_top(self, x, y):
self.x2, self.y2 = x, y
def get_width(self):
return abs(self.x2 - self.x1)
def get_height(self):
return abs(self.y2 - self.y1)
def get_perimeter(self):
return 2 * (self.get_width() + self.get_height())
def get_area(self):
return self.get_width() * self.get_height()
```
这里我们定义了一个`Rectangle`类,它有四个实例属性`x1`、`y1`、`x2`和`y2`,分别表示矩形的左下角和右上角两个点的坐标。`__init__`方法用于初始化这四个属性,`set_left_bottom`和`set_right_top`方法用于设置左下角和右上角两个点的位置。`get_width`和`get_height`方法用于计算矩形的长和宽,`get_perimeter`和`get_area`方法用于计算矩形的周长和面积。
下面是一个简单的测试:
```python
r = Rectangle(0, 0, 5, 5)
print(r.get_width()) # 输出 5
print(r.get_height()) # 输出 5
print(r.get_perimeter()) # 输出 20
print(r.get_area()) # 输出 25
r.set_left_bottom(2, 2)
r.set_right_top(7, 7)
print(r.get_width()) # 输出 5
print(r.get_height()) # 输出 5
print(r.get_perimeter()) # 输出 20
print(r.get_area()) # 输出 25
```
这里我们先创建了一个左下角为`(0, 0)`,右上角为`(5, 5)`的矩形`r`,然后分别调用`get_width`、`get_height`、`get_perimeter`和`get_area`方法,验证计算结果是否正确。接着,我们调用`set_left_bottom`和`set_right_top`方法,改变矩形的位置,再次调用上述方法进行验证。由于矩形的长、宽、周长和面积并未改变,因此输出结果不变。
阅读全文