zoukankan      html  css  js  c++  java
  • 面向对象(一) 类与类之间的关系之依赖和关联

    面向对象的三种关系:

    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()
    运行结果:孙和女朋友陈一起吃饭
    
  • 相关阅读:
    ZOJ 1002 Fire Net
    Uva 12889 One-Two-Three
    URAL 1881 Long problem statement
    URAL 1880 Psych Up's Eigenvalues
    URAL 1877 Bicycle Codes
    URAL 1876 Centipede's Morning
    URAL 1873. GOV Chronicles
    Uva 839 Not so Mobile
    Uva 679 Dropping Balls
    An ac a day,keep wa away
  • 原文地址:https://www.cnblogs.com/duoduoyichen/p/10376668.html
Copyright © 2011-2022 走看看