面向过程VS面向对象
面向过程
分析出解决问题的步骤,然后逐步实现。
例如:婚礼筹办
-- 发请柬(选照片、措词、制作)
-- 宴席(场地、找厨师、准备桌椅餐具、计划菜品、购买食材)
-- 婚礼仪式(定婚礼仪式流程、请主持人)
公式:程序 = 算法 + 数据结构
优点:所有环节、细节自己掌控。
缺点:考虑所有细节,工作量大。
面向对象
找出解决问题的人,然后分配职责。
例如:婚礼筹办
-- 发请柬:找摄影公司(拍照片、制作请柬)
-- 宴席:找酒店(告诉对方标准、数量、挑选菜品)
-- 婚礼仪式:找婚庆公司(对方提供司仪、制定流程、提供设备、帮助执行)
公式:程序 = 对象 + 交互
优点
思想层面:
-- 可模拟现实情景,更接近于人类思维。
-- 有利于梳理归纳、分析解决问题。
技术层面:
-- 高复用:对重复的代码进行封装,提高开发效率。
-- 高扩展:增加新的功能,不修改以前的代码。
-- 高维护:代码可读性好,逻辑清晰,结构规整。
缺点:学习曲线陡峭。
面向对象
知识点
练习:
#类
##### 方法区
class Genshin:
# 数据成员
def __init__(self,name,year):
###### 形式参数符合前文的形式参数章节的规则
### name是变量
self.name = name
self.year = year
# 行为成员
def play(self):
"""
陪伴,羁绊
"""
print(self.name+",我喜欢你!")
#创建对象,实际在调用__init__方法
##### 调用区
######### 自动将对象地址传到方法
genshin01=Genshin("刻晴",22)
genshin01.play()#调用对象的行为