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

    类与类之间的关系

    依赖关系是类与类之间关系最轻的一种,创建两个类.一个是主体负责整个事情的掌控,另一个类进行服从.

    举例:

    class Elphant:
      def __init__(self, name):
        self.name = name
      def open(self, ref):
        print("大象要开门了. 默念三声. 开!")

        ref.open_door()

      def take(self):

        print("钻进去")

      def colse(self,ref):

        print("关门")

        ref.colse_door()

    class Refrigerator:

      def open_door(self):

        print("冰箱门被打开了")

      def colse_door(self):

        print("冰箱门被关闭了")

    el  = Elphant("小飞象")

    r = Refrigerator()

    el.open(r)  #将会调用class Refrigerator 执行"冰箱门被打开了"

    el.take()

    el.colse(r)

    类与类之间还存在:

    1.关联关系:两种事物之间都有固有的联系,但是从某些特殊角度来看,这两种角度是可以进行更改和更换.

    2.聚合关系:属于关联关系中的一种特例,侧重点是xxx和XXX聚合成xxx,各有各的生命周期,比如电脑,有cpu,有硬盘

    电脑换了,CPU还是好的,还是一个完整的个体.

    3.组合关系:属于关联关系中的一种特例,组合关系比聚合还要紧密,只要一个一个类坏了,其他的都坏了

    关联关系进行举例:

    # class boy:
    # def __init__(self,name,girl = None): #只要把其中的一个变量设为空,然后用另一个类中的变量给与赋值,两个类之间的关系就关联起来了
    # self.name = name
    # self.girl = girl
    # def wan(self):
    # if self.girl:
    # self.girl.happy()
    # print("%s和%s玩的很开心" %(self.name,self.girl.name1))
    # else:
    # print("自己玩去")
    #
    # class girl1:
    # def __init__(self,name1):
    # self.name1 = name1
    #
    # def happy(self):
    # print("猪八戒胖胖的比较好玩")
    # b = boy("猪八戒")
    #
    # g = girl1("高小姐")
    # b.girl = g
    # # b.wan()
    # # b.girl = None
    # b.wan()

    继承关系:

    在面向对象的世界中存在着继承关系. 我们现实中也存在着这样的关系. 我们说过. x是一
    种y, 那x就可以继承y. 这时理解层面上的. 如果上升到代码层面. 我们可以这样认为. 子类在不
    影响父类的程序运行的基础上对父类进行的扩充和扩展. 我们可以把父类被称为超类或
    者基类. 子类被称为派生类.

    类的特殊成员

    1. 类名() 会自动执行__init__()   是一种构建方法
    2. 对象() 会自动执行__call__()
    3. 对象[key] 会自动执行__getitem__()
    4. 对象[key] = value 会自动执行__setitem__()
    5. del 对象[key] 会自动执行 __delitem__()
    6. 对象+对象 会自动执行 __add__()
    7. with 对象 as 变量 会自动执行 __enter__ 和__exit__

    8.打印对象的时候会自动执行,__str__

    9.干掉可和哈希 __hash__==None

    10.输出类的描述信息__doc__

    11.__module__:表示当前操作的对象在那个模块

    12__class__表示当前操作的对象的类是什么

    13.__del__:析构方法,当对象在内存中被释放时,自动触发执行

    14.__dict__:查看类或对象中的所有成员

    15.__str__:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值

  • 相关阅读:
    Docker学习笔记07_网络配置
    Docker学习笔记06_部署appache+tomcat+redis+mongo+python
    Docker学习笔记05_部署nginx+php+mysql+phpmyadmin
    Docker学习笔记04_镜像管理
    Docker学习笔记03_容器的简单应用
    Docker学习笔记02_基本操作
    Docker学习笔记01_CentOS 7安装Docker
    Cisco Ironport ESA配置拒收黑名单
    CentOS 7安装Cobra
    jvm内存模型、常见参数及调优
  • 原文地址:https://www.cnblogs.com/lowen107/p/9931389.html
Copyright © 2011-2022 走看看