1、定义并实现一个矩形类Rectangle,其私有实例成员为矩形的左下角与右上角两个点的坐标,能设置左下角和右上角两个点的位置,能根据左下角与右上角两个点的坐标计算矩形的长、宽、周长和面积,另外根据需要适当添加其他成员方法和特殊方法(如构造方法)。实现并测试这个类
时间: 2024-05-06 22:16:24 浏览: 123
定义一个名为rectangle 的矩形类,其属性数据为矩形左上角和右上角的点的坐标能计算矩形的面积
5星 · 资源好评率100%
下面是一个可能的实现:
```python
class Rectangle:
def __init__(self, x1, y1, x2, y2):
self.x1 = x1
self.y1 = y1
self.x2 = x2
self.y2 = y2
def set_points(self, x1, y1, x2, y2):
self.x1 = x1
self.y1 = y1
self.x2 = x2
self.y2 = y2
def width(self):
return abs(self.x2 - self.x1)
def height(self):
return abs(self.y2 - self.y1)
def area(self):
return self.width() * self.height()
def perimeter(self):
return 2 * (self.width() + self.height())
```
这个类有四个实例变量 `x1`, `y1`, `x2`, `y2` 来表示矩形的左下角和右上角两个点的坐标。构造方法 `__init__` 接受这四个参数并将它们储存为实例变量。`set_points` 方法可以用来更新这些点的坐标。`width` 和 `height` 方法可以计算出矩形的长和宽,`area` 方法可以计算出矩形的面积,`perimeter` 方法可以计算出矩形的周长。
下面是测试这个类的代码:
```python
r = Rectangle(0, 0, 3, 4)
print(r.width()) # 输出 3
print(r.height()) # 输出 4
print(r.area()) # 输出 12
print(r.perimeter()) # 输出 14
r.set_points(-1, -1, 2, 3)
print(r.width()) # 输出 3
print(r.height()) # 输出 4
print(r.area()) # 输出 12
print(r.perimeter()) # 输出 14
```
这个代码创建了一个矩形对象 `r`,并测试了它的各个方法。然后使用 `set_points` 方法改变了矩形的位置,并再次测试了各个方法,结果应该和之前一样,因为这些方法只和矩形的位置有关,而不是和具体的实例变量有关。
阅读全文