计一个圆柱体类,该类有通过参数初始化对象或通过一个已知对象初始化一个新对象,以及有求圆柱体体积和表面积的功能。
时间: 2024-03-14 07:45:34 浏览: 58
好的,以下是一个简单的圆柱体类的实现,包括参数初始化和对象初始化,以及求圆柱体体积和表面积的功能:
```python
import math
class Cylinder:
def __init__(self, radius=0, height=0):
self.radius = radius
self.height = height
def __str__(self):
return "Cylinder: radius = {} , height = {}".format(self.radius, self.height)
def volume(self):
return math.pi * self.radius ** 2 * self.height
def surface_area(self):
return 2 * math.pi * self.radius * (self.radius + self.height)
```
在上面的实现中,我们定义了一个名为Cylinder的类。在初始化方法中,我们可以通过传递半径和高度参数来初始化圆柱体对象。如果没有传递参数,则默认半径和高度都为0。
我们还实现了__str__方法,以便在打印圆柱体对象时打印出其半径和高度。我们还实现了volume和surface_area方法,以便计算圆柱体的体积和表面积。
接下来,我们可以使用以下代码来测试我们的实现:
```python
c1 = Cylinder(5, 10)
print(c1)
print("Volume: ", c1.volume())
print("Surface Area: ", c1.surface_area())
c2 = Cylinder()
c2.radius = 3
c2.height = 6
print(c2)
print("Volume: ", c2.volume())
print("Surface Area: ", c2.surface_area())
c3 = Cylinder(c1.radius, c1.height)
print(c3)
print("Volume: ", c3.volume())
print("Surface Area: ", c3.surface_area())
```
这将输出以下结果:
```
Cylinder: radius = 5 , height = 10
Volume: 785.3981633974483
Surface Area: 471.23889803846896
Cylinder: radius = 3 , height = 6
Volume: 169.64600329384882
Surface Area: 150.79644737231007
Cylinder: radius = 5 , height = 10
Volume: 785.3981633974483
Surface Area: 471.23889803846896
```
阅读全文