• 面向对象


        1. 初识面向对象
            面向过程:
                一切以事务的发展流程为中心.
            面向对象:
                一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象
            打比方:
                大象进冰箱
                    步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门
                    面向对象:大象, 你进冰箱.
                        此时主语是大象. 我操纵的是大象. 此时的大象就是对象
        2. 类. 对象
            类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类.
            对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象
            类与对象的关系:
                类是对xxx事物的归类.
                    写:
                        __init__(self, 参数)  参数一般作为属性设置给对象. 对象就是self, 对属性的封装.
                        def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象.
                            pass
                对象是xx类型的一个具体
                    创建对象: 类名()
            创建类:
            class 类名:
                def __init__(self): # 初始化方法. 又被成为构造方法
                    self.属性 = 值
                    self.属性 = 值
                    self.属性 = 值
                def fangfa(self):
                    方法体(函数体,  return)
            创建对象:
                变量 = 类名() # 实例化 <-> 创建对象
                变量.属性 # 访问对象的属性信息
                变量.方法() # 访问类中的方法
        3. 面向对象和面向过程的对比
            如果写一些比较小的程序用面向过程.
            程序很复杂. 很庞大建议用面向对象.
        4. 面向对象的三大特征
            封装:
                1. 对属性的封装(__init__())
                    self.xxx = xxx
                2. 对方法和功能的封装
            继承
                子类自动拥有父类中除了私有内容外的其他所有内容
                class Bar(Foo):  Bar对Foo进行了扩展
                    pass
                当出现x是一种y的时候. 推荐使用继承关系
                python支持多继承. 查找顺序: 先找离他近的.
            多态(python原生直接就是多态)
        1. 初识面向对象
            面向过程:
                一切以事务的发展流程为中心.
            面向对象:
                一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象
            打比方:
                大象进冰箱
                    步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门
                    面向对象:大象, 你进冰箱.
                        此时主语是大象. 我操纵的是大象. 此时的大象就是对象
        2. 类. 对象
            类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类.
            对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象
            类与对象的关系:
                类是对xxx事物的归类.
                    写:
                        __init__(self, 参数)  参数一般作为属性设置给对象. 对象就是self, 对属性的封装.
                        def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象.
                            pass
                对象是xx类型的一个具体
                    创建对象: 类名()
            创建类:
            class 类名:
                def __init__(self): # 初始化方法. 又被成为构造方法
                    self.属性 = 值
                    self.属性 = 值
                    self.属性 = 值
                def fangfa(self):
                    方法体(函数体,  return)
            创建对象:
                变量 = 类名() # 实例化 <-> 创建对象
                变量.属性 # 访问对象的属性信息
                变量.方法() # 访问类中的方法
        3. 面向对象和面向过程的对比
            如果写一些比较小的程序用面向过程.
            程序很复杂. 很庞大建议用面向对象.
        4. 面向对象的三大特征
            封装:
                1. 对属性的封装(__init__())
                    self.xxx = xxx
                2. 对方法和功能的封装
            继承
                子类自动拥有父类中除了私有内容外的其他所有内容
                class Bar(Foo):  Bar对Foo进行了扩展
                    pass
                当出现x是一种y的时候. 推荐使用继承关系
                python支持多继承. 查找顺序: 先找离他近的.
            多态(python原生直接就是多态)
    1. 成员
            在类中你能写的所有内容都是类的成员
        2. 变量
            1. 实例变量: 昨天写的就是实力变量, 由对象去访问的变量.
            2. 类变量. 此时. 这个变量属于类. 但是对象也可以访问.
        3. 方法
            1. 实例方法: 昨天写的就是实例方法. 使用    对象.方法()
                特点: 在声明的时候. 需要给出self, self必须放在第一个位置
                      在调用的时候. 自动的会把对象传递给形参的self
            2. 类方法(@classmethod): 类方法是属于类的.
                特点:在声明的时候需要给出一个能够接受类名的参数, cls , 也必须放在参数的第一个
                     在调用的时候. 自动得把xx对象的类传递给cls
            3. 静态方法(@staticmethod): 静态方法也是属于类的. 静态方法就好比. 我们在类中定义了一个函数
                静态方法一般和类方法差不多. 使用类名去访问
        4. 属性
            在方法上添加一个@property. 可以把一个方法变成一个属性. 但是这个属性不可以被赋值
            当我们某一个属性必须经过计算才能得到结果的时候.
        5. 私有
            所有以双下划线开头的方法, 变量都是私有内容. 外界无法访问. 除非你主动暴露这些内容
     类与类之间的关系
            在我们的世界中事物和事物之间总会有一些联系.
            在面向对象中. 类和类之间也可以产生相关的关系
            1. 依赖关系
                执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的.
                随时可以更换另外一个东西来完成此操作
            2. 关联关系
                在对象里面埋对象
                self.girlFriend = girl
                1. 一对一关系
                    你和你的女朋友
                self.teach_list = [t1,t2,t3]
                2. 一对多关系
                     一个学校. 一堆老师

            类中的关系: 依赖关系是最轻的. 最重的是继承关系. 关联关系是比较微妙的.
        self到底是谁?
            self:谁调用的就是谁. 类型是根据调用方的对象来进行变换的
            super:表示的是父类
        特殊成员:
            __init__() # 创建对象的时候初始化操作
            __call__() # 对象()
            __getitem__() # 对象[哈哈]
            __setitem__() # 对象[哈哈] = 值
            __new__() # 创建对象的时候.开辟内存
            __enter__() # with 对象
            __exit__() #结束with的时候
            __hash__() # 可哈希 hash()
  • 相关阅读:
    每天一个小算法(Heapsort)
    每天一个小算法(matlab armijo)
    每天一个小算法(Shell sort5)
    每天一个小算法(Shell Sort3)
    每天一个小算法(Shell Sort2)
    Java并发编程:阻塞队列
    Java并发编程:并发容器之CopyOnWriteArrayList
    Java并发编程:并发容器之ConcurrentHashMap
    Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
    豆瓣的前世今生
  • 原文地址:https://www.cnblogs.com/liuzhiqiang666/p/10133675.html
Copyright © 2020-2023  润新知