面向对象的三种关系:
1.依赖关系
A类(A类实例化对象)依赖B类(B类实例化对象)的意思就是B类实例化的对象名作为参数传递给A类(对象)的方法,那么在A类对象就可以用B类实例化对象的方法
1) 植物大战僵尸简易版
# 植物大战僵尸简易版 class ZhiWu:#创建植物类 def __init__(self,name,hp,attack):#初始化属性 self.name=name self.hp=hp self.attack=attack def da(self,js): js.hp-=self.attack class JiangShi:#创建僵尸类 def __init__(self,name,hp,attack):#初始化属性 self.name=name self.hp=hp self.attack=attack def eat(self,zw): zw.hp -= self.attack # 创建僵尸和植物对象 zw=ZhiWu("紫罗兰",20,10) js=JiangShi("躺尸",30,5) # 植物攻击一次 zw.da(js) print(js.hp)#20 # 僵尸攻击一次 js.eat(zw) print(zw.hp)#15
2) 大象关冰箱
class Elephant: def __init__(self, name): self.name = name def open(self, ref): print(‘冰箱开门吧‘) ref.open_door() def close(self, ref): print(‘冰箱关门吧‘) ref.close_door() def get_in(self): print(‘进冰箱装自己‘) class Refrigerator: def open_door(self): print(‘冰箱默默地打开了自己的门‘) def close_door(self): print(‘冰箱默默地关上了自己的门‘) e = Elephant(‘小象‘) ref1 = Refrigerator() #大象进冰箱 e.open(ref1) e.get_in() e.close(ref1)
2.关联关系,又叫组合,聚合关系
A类和B类关联意思是B类对象作为参数传递给A中并且封装成了A对象的一个属性
1) 男朋友女朋友
class Boy(): def __init__(self,name,girlfirend = None): self.name = name self.girlfriend = girlfirend def have_dinner(self): if self.girlfriend: print("%s和女朋友%s一起吃饭"%(self.name,self.girlfriend.name)) else: print("自己吃饭") class Girl(): def __init__(self,name): self.name = name Shawn = Boy("孙") Chen = Girl("陈") Shawn.have_dinner() 运行结果:自己吃饭 Shawn.girlfriend = Chen Shawn.have_dinner() 运行结果:孙和女朋友陈一起吃饭
原文地址:https://www.cnblogs.com/duoduoyichen/p/10376668.html
时间: 2024-11-10 12:08:01