面向对象(下)

153 阅读2分钟
1.
强化
向对象编程的设计能
,进
步理解类、属性、
法 的构建场景 **
强化 对self的理解,
法中使
self 可以获取和修改属性
2. 需求说明

烤地
规则:
1. 地
⾃⼰
的状态,默认是
的,地
可以进
烧烤
2. 地
⾃⼰
烧烤的总时间,由每次烧烤的时间累加得出
3. 地
烧烤时,需要提供本次烧烤的时间
4. 地
烧烤时,地
状态随着烧烤总时间的变化
改变:[0, 3)
的、[3, 6) 半
不熟、[6, 8) 熟了、>=8 烤糊了
5. 输出地
信息时,可以显示地
的状态和烧烤的总时间
3.
向对象设计
类图
3.1 地
1. 使
SweetPotato 类可以创建 地
对象
2. 地
有两个属性:
状态 state:字符串
烧烤总时间 cooked_time:整数
3. 定义 cook
法, 提供参数 time 设置 本次烧烤的时间
使
本次烧烤时间 对 烧烤总时间 进
累加
根据 烧烤总时间, 设置地
的状态:
[0, 3) ->
[3, 6) -> 半
不熟
[6, 8) -> 熟了
于等于8 -> 烤糊了
3.2 主程序逻辑
1. 创建地
对象
2. 分多次烧烤地
3. 每烧烤
次,输出地
信息
4. 代码实现
4.1 定义地
类,并且定义 init () 和 str ()
class SweetPotato:# 定 义 类
"""地⽠类"""
definit (self):
self.cooked_state = "⽣的"# 地⽠状态
self.cooked_time = 0 # 烧烤总时间
defstr (self):
return "地⽠状态:%s, 烧烤总时间:%d" % ( self.cooked_state, self.cooked_time)
4.2 定义"烤地
"
defcook(self,time):
"""烧烤"""
# 本次烧烤时间累加到烧烤总时间中
self.cooked_time += time
# 根据烧烤总时间改变地⽠的状态
if self.cooked_time >= 0 and self.cooked_time< 3: self.cooked_state = "⽣的"
elif self.cooked_time >= 3 and self.cooked_time< 6:
self.cooked_state = "半⽣不熟"
elif self.cooked_time >= 6 and self.cooked_time< 8: self.cooked_state = "熟了"
else:
self.cooked_state = "烤糊了"
对象
法中可以使
self修改、获取对象属性,如 cook
法中使
self 修改了 cooked_time
和 cooked_state 属 性
4.3 测试代码
把上
2块代码合并为
个程序后,在代码的下
添加以下代码进
测试
# 创建对象
digua1 =SweetPotato() digua1.cook(1)
print(digua1) # 地⽠状态:⽣的,烧烤总时间:1
digua1.cook(2)
print(digua1) # 地⽠状态:半⽣不熟, 烧烤总时间:3 digua1.cook(3)
print(digua1) # 地⽠状态:熟了, 烧烤总时间:6 digua1.cook(3)
print(digua1) # 地⽠状态:烤糊了, 烧烤总时间:9

更多学习资料可关注:gzitcast