码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象(一) 类与类之间的关系之依赖和关联

时间:2019-02-14 20:26:29      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:div   依赖关系   tor   class   大战   lse   关系   def   关联   

面向对象的三种关系:

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()
运行结果:孙和女朋友陈一起吃饭

 

面向对象(一) 类与类之间的关系之依赖和关联

标签:div   依赖关系   tor   class   大战   lse   关系   def   关联   

原文地址:https://www.cnblogs.com/duoduoyichen/p/10376668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!