zoukankan      html  css  js  c++  java
  • python之类与类之间的关系

    在我们的世界中事物和事物之间总会有一些联系.   在面向对象中. 类和类之间也可以产生相关的关系

    1. 依赖关系
      执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的. 随时可以更换另外一个东西来完成此操作

      

    class Person:
        def play(self, tools):
            tools.run()
            print('终于能打游戏了')
    
    class Computer:
        def run(self):
            print('电脑已经打开,DNF已经登陆')
    class Phone:
        def run(self):
            print('王者荣耀已经登陆')
    c = Computer()
    PH = Phone()
    p = Person()
    p.play(c)
    # 电脑已经打开,DNF已经登陆
    # 终于能打游戏了
    p.play(PH)
    # 王者荣耀已经登陆
    # 终于能打游戏了

    2. 关联关系
      在对象里面埋对象
      1. 一对一关系
        

    class Boy:
    
        def __init__(self, name,  girlFriend=None):
            # 在初始化的时候可以给一个对象的属性设置成另一个类的对象
            self.girlFriend = girlFriend  # 一个男孩有一个女朋友
    
        def chi(self):
            if self.girlFriend:
                print(f"带着他的女朋友{self.girlFriend.name}去吃饭")
            else:
                print("单身狗, 吃什么吃? 滚去学习.")
    
        def movie(self):
            if self.girlFriend:
                print(f"带着他的女朋友{self.girlFriend.name}去看电影")
            else:
                print("单身狗, 看什么看? 滚去学习.")
    
    
    class Girl:
        def __init__(self, name):
            self.name = name
    
    b = Boy("宝浪")
    g = Girl("ABC")
    b.chi()  # 单身狗, 吃什么吃? 滚去学习.
    
    # alex给包浪介绍了一个女朋.
    b.girlFriend = g
    b.chi() # 带着他的女朋友ABC去吃饭
    
    g2 = Girl("QWER")
    b.girlFriend = g2 # 换了个女朋友
    b.chi() # 带着他的女朋友QWER去吃饭

      2. 一对多关系
        

    # 一对多
    class School:
        def __init__(self, name):
            self.teach_list = []
        def zhaopin(self,teach):
            self.teach_list.append(teach)
        def shagnke(self):
            for t in self.teach_list:
                t.work()
    class Teacher:
        def   __init__(self, name):
            self.name = name
        def work(self):
            print(f'{self.name}在上课')
    x = School('xxx学校')
    t1 = Teacher('教师1')
    t2 = Teacher('教师2')
    t3 = Teacher('教师3')
    t4 = Teacher('教师4')
    
    x.zhaopin(t1)
    x.zhaopin(t2)
    x.zhaopin(t3)
    x.zhaopin(t4)
    
    x.shagnke()
    '''
    教师1在上课
    教师2在上课
    教师3在上课
    教师4在上课
    '''

    类中的关系: 依赖关系是最轻的. 最重的是继承关系. 关联关系是比较微妙的.

  • 相关阅读:
    什么是软件测试架构师?
    Spring常用注解
    Ant 风格路径表达式
    <url-pattern>写成/和/*的区别
    Spring+SpringMVC+Hibernate
    Spring+SpringMVC+MyBatis框架整合
    Spring各个jar包的介绍
    单点登录原理与简单实现(转载)
    博客网站系统
    POM.xml配置文件详解
  • 原文地址:https://www.cnblogs.com/q455674496/p/10145226.html
Copyright © 2011-2022 走看看