一、面向对象编程介绍
1、面向过程编程
面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可。缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身
2、面向对象编程
面向对象的程序设计的
优点:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。
缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精准的预测问题的处理流程与结果,面向对象的程序一旦开始就由对象之间的交互解决问题,例如游戏新出的英雄都比较逆天
应用场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等都是面向对象的程序设计大显身手的好地方。
相关概念:类、对象、实例、实例化
类:具有相同特征的一类事物(人、狗、老虎)
对象/实例:具体的某一个事物(如人属性的张三、李四等)
实例化:类——>对象的过程
面向对象之间的交互
低配版
#交互#人
# life_value,aggr,name,job 属性
# attack 方法
class Person:
def __init__(self,life_value,aggr,name,job):
self.life = life_value
self.aggressive = aggr
self.name = name
self.job = job
def attack(self,dog_obj): # 方法
print('%s 攻击了 %s'%(self.name,dog_obj.name))
dog_obj.life = dog_obj.life - self.aggressive
# dog
# 属性:life_value,aggr,name,kind
# 方法:bite
class Dog:
def __init__(self, life_value, aggr, name, kind):
self.life = life_value
self.aggressive = aggr
self.name = name
self.kind = kind
def bite(self,person_obj): # 方法
print('%s 咬了 %s'%(self.name,person_obj.name))
person_obj.life -= self.aggressive
# person_obj.life = self.aggressive - person_obj.life
tiedan = Dog(1000,100,'铁蛋','土狗') # 实例化 dog 对象名(随意)
boss_gold = Person(1000,200,'太黑','old_driver') # 实例化人
boss_gold.attack(tiedan) # 人攻击狗
print(tiedan.life)
tiedan.bite(boss_gold) # 狗反击
print(boss_gold.life)