定义一个类,里面存放一个公有方法求长方形面积和周长 。再定义一个私有方法求圆的面积和周长。长方形的长和宽、圆的半径从键盘输入
时间: 2024-12-21 13:29:19 浏览: 14
在面向对象编程中,你可以创建一个类来封装计算几何形状面积和周长的行为。下面是一个简单的Python类的例子,用于表示长方形和圆:
```python
class GeometryShape:
def __init__(self):
self.rectangle_length = float(input("请输入长方形的长度: "))
self.rectangle_width = float(input("请输入长方形的宽度: "))
def calculate_rectangle_area(self):
"""
公共方法计算长方形面积
"""
area = self.rectangle_length * self.rectangle_width
print(f"长方形面积: {area}")
def calculate_rectangle_perimeter(self):
"""
公共方法计算长方形周长
"""
perimeter = 2 * (self.rectangle_length + self.rectangle_width)
print(f"长方形周长: {perimeter}")
# 私有方法,不可直接通过实例调用
def _calculate_circle_area_and_perimeter(self, radius):
import math
"""
私有方法,用于计算圆的面积和周长
"""
circle_area = math.pi * (radius ** 2)
circle_circumference = 2 * math.pi * radius
return circle_area, circle_circumference
# 由于私有方法不能直接访问,需要通过公共方法间接操作
def calculate_circle_info(shape, radius):
circle_data = shape._calculate_circle_area_and_perimeter(radius)
print(f"圆的面积: {circle_data[0]}, 圆的周长: {circle_data[1]}")
# 示例中不直接调用私有方法
if __name__ == "__main__":
rectangle = GeometryShape()
rectangle.calculate_rectangle_area()
rectangle.calculate_rectangle_perimeter()
radius = float(input("请输入圆的半径: "))
calculate_circle_info(rectangle, radius)
```
在这个例子中,`GeometryShape`类包含了长方形的属性和公共方法。用户可以输入长方形的长和宽来获取面积和周长。而计算圆的面积和周长是一个内部细节,我们将其封装在一个私有方法 `_calculate_circle_area_and_perimeter` 中,外部用户无法直接调用它。如果你想让外部也能计算圆的面积和周长,可以通过辅助函数 `calculate_circle_info` 来间接实现。
阅读全文