设计一个名为Fan的类表示一个风扇。这个类包括: 1.三个名为SlOW、MEDIUM和FAST,其值为1、2和3常量表示风扇的速度。 2.一个名为speed的int类型私有数据域表示风扇的速度(默认值为SLOW)。 3.一个名为on的boolean类型私有数据域表示风扇是否打开(默认值为false)。 4.一个名为radius的double类型私有数据域表示风扇的半径(默认值为5)。 5.一个名为color的string类型数据域表示风扇的颜色(默认值为white)。 6.这四个数据域的访问器和修改器。 7.一个构造方法创建一个具有特地速度、半径、颜色以及是否打开的风扇。 请在自己的草稿本上画出UML图,养成良好的设计习惯。 要求:创建两个Fan对象: 第一个对象,构造默认值的风扇对象Fan1; 第二个对象,赋值最大速度、半径为10、颜色为blue,打开它的对象Fan2。 显示每个对象的speed、radius、color和on属性使用python
时间: 2023-11-27 08:53:55 浏览: 50
以下是Fan类的UML图:
```
----------------------------------
| Fan |
----------------------------------
| - SLOW: int = 1 |
| - MEDIUM: int = 2 |
| - FAST: int = 3 |
| - speed: int = SLOW |
| - on: bool = False |
| - radius: double = 5.0 |
| - color: str = "white" |
----------------------------------
| + get_speed() -> int |
| + set_speed(speed: int) -> None|
| + is_on() -> bool |
| + set_on(on: bool) -> None |
| + get_radius() -> double |
| + set_radius(radius: double) -> None|
| + get_color() -> str |
| + set_color(color: str) -> None|
| + __init__(speed: int = SLOW, on: bool = False, radius: double = 5.0, color: str = "white")|
----------------------------------
```
代码实现如下:
```python
class Fan:
SLOW = 1
MEDIUM = 2
FAST = 3
def __init__(self, speed=SLOW, on=False, radius=5.0, color="white"):
self.__speed = speed
self.__on = on
self.__radius = radius
self.__color = color
def get_speed(self):
return self.__speed
def set_speed(self, speed):
self.__speed = speed
def is_on(self):
return self.__on
def set_on(self, on):
self.__on = on
def get_radius(self):
return self.__radius
def set_radius(self, radius):
self.__radius = radius
def get_color(self):
return self.__color
def set_color(self, color):
self.__color = color
# 创建默认值的Fan对象
fan1 = Fan()
print("Fan1 speed:", fan1.get_speed())
print("Fan1 radius:", fan1.get_radius())
print("Fan1 color:", fan1.get_color())
print("Fan1 on:", fan1.is_on())
# 创建赋值的Fan对象
fan2 = Fan(speed=Fan.FAST, on=True, radius=10.0, color="blue")
print("Fan2 speed:", fan2.get_speed())
print("Fan2 radius:", fan2.get_radius())
print("Fan2 color:", fan2.get_color())
print("Fan2 on:", fan2.is_on())
```