定义正方形类,属性:边长,封装边长 方法:求周长
时间: 2024-11-24 20:41:23 浏览: 24
在面向对象编程中,我们可以定义一个名为`Square`的类来表示正方形,其主要特点是所有四个边都相等。下面是一个简单的Python示例:
```python
class Square:
def __init__(self, side_length):
self._side_length = side_length # 封装边长,使用下划线防止直接修改
@property # 定义 getter 方法获取边长
def side_length(self):
return self._side_length
@side_length.setter # 定义 setter 方法设置边长,保持唯一值
def side_length(self, value):
if value <= 0:
raise ValueError("边长必须大于0")
self._side_length = value
# 求周长的方法
def perimeter(self):
return self.side_length * 4
# 使用示例
s = Square(5)
print(s.side_length) # 输出:5
print(s.perimeter()) # 输出:20
```
在这个`Square`类中,我们有私有变量`_side_length`用于存储边长,通过getter和setter方法实现了属性的封装。`perimeter()`方法用于计算正方形的周长,它返回四倍的边长。
阅读全文
相关推荐


















