设计一个平面点类,拥有两个实例属性:横座标、纵座标;拥有一个特殊方法__str__以及一个普通的实例方法:计算它与另一个平面点之间的距离。再由平面点类出发,以 组合或继承的方式设计一个平面矩形类,拥有两个实例属性:某条对角线的两个端点:拥有二个普通的实例方法:计算周长、计算面积:别忘了实现它的__str__方法。编写一些简单的测试代码。
时间: 2024-03-02 17:51:58 浏览: 108
好的,我来为您解答。
首先,我们可以设计一个平面点类 Point:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"({self.x}, {self.y})"
def distance(self, other):
dx = self.x - other.x
dy = self.y - other.y
return (dx ** 2 + dy ** 2) ** 0.5
```
接着,我们可以以继承的方式设计一个平面矩形类 Rectangle,它继承了 Point 类的属性和方法:
```python
class Rectangle(Point):
def __init__(self, p1, p2):
self.p1 = p1
self.p2 = p2
def __str__(self):
return f"({self.p1}, {self.p2})"
def perimeter(self):
return 2 * (self.p1.distance(self.p2))
def area(self):
return (self.p1.distance(self.p2)) ** 2
```
这里我们定义了两个端点 p1 和 p2,以此来表示一个矩形。然后,我们实现了计算周长和面积的方法 perimeter 和 area,它们分别调用了 Point 类的 distance 方法来计算两点之间的距离。
最后,我们来编写一些测试代码:
```python
# 创建一个点
p1 = Point(0, 0)
print(p1) # 输出 (0, 0)
# 创建另一个点
p2 = Point(3, 4)
print(p2) # 输出 (3, 4)
# 计算两个点之间的距离
print(p1.distance(p2)) # 输出 5.0
# 创建一个矩形
r = Rectangle(p1, p2)
print(r) # 输出 ((0, 0), (3, 4))
# 计算矩形的周长和面积
print(r.perimeter()) # 输出 14.142135623730951
print(r.area()) # 输出 25.0
```
以上就是平面点类和平面矩形类的设计和测试过程。希望我的回答能够帮助到您。
阅读全文