设计一个平面点类,拥有两个实例属性:横座标、纵座标:拥有一个特殊方法__str__以及一个普通的实例方法:计算它与另一个平面点之间的距离。再由平面点类出发,以组合或继承的方式设计一个平面矩形类,拥有两个实例属性:某条对角线的两个端点:拥有二个普通的实例方法:计算周长、计算面积;别忘了实现它的__str__方法。编写一些简单的测试代码。
时间: 2024-02-09 11:07:49 浏览: 56
好的,我来为你设计平面点类和平面矩形类。
平面点类:
```python
import math
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return "({0}, {1})".format(self.x, self.y)
def distance(self, other):
return math.sqrt((self.x - other.x)**2 + (self.y - other.y)**2)
```
平面矩形类:
```python
class Rectangle:
def __init__(self, point1, point2):
self.point1 = point1
self.point2 = point2
def __str__(self):
return "[({0}, {1}), ({2}, {3})]".format(self.point1.x, self.point1.y, self.point2.x, self.point2.y)
def perimeter(self):
length = abs(self.point1.x - self.point2.x)
width = abs(self.point1.y - self.point2.y)
return 2 * (length + width)
def area(self):
length = abs(self.point1.x - self.point2.x)
width = abs(self.point1.y - self.point2.y)
return length * width
```
测试代码:
```python
# 创建两个平面点
p1 = Point(0, 0)
p2 = Point(3, 4)
# 输出平面点的坐标和两点之间的距离
print("点1坐标:", p1)
print("点2坐标:", p2)
print("两点之间的距离:", p1.distance(p2))
# 创建一个平面矩形
r = Rectangle(p1, p2)
# 输出平面矩形的两个顶点坐标、周长和面积
print("矩形顶点坐标:", r)
print("矩形周长:", r.perimeter())
print("矩形面积:", r.area())
```
输出结果为:
```
点1坐标: (0, 0)
点2坐标: (3, 4)
两点之间的距离: 5.0
矩形顶点坐标: [(0, 0), (3, 4)]
矩形周长: 14
矩形面积: 12
```
阅读全文