物件導向(下)

純潔的程式碼發表於2020-04-02
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


相關文章