zoukankan      html  css  js  c++  java
  • 2019.04.17 面向对象编程篇207

    86.面向对象和面向过程的区别-执行者思维

      类,对象,继承,封装,多态

      次封装不是那个封装,也可以认为是那个封装,只是这个封装加了私有方法

      都是为实例对象做准备,__init__, self

      怎么还有个编程范式咧:面向过程,面向对象,函数式编程

      第一节面向对象和面向过程  什么区别呢?是什么呢造车和开车来举例子吧

      我是不是要去看他的定义啊   这两个是一种思维的东西 .

      

    87.对象的进化故事

      函数怎么诞生,对象怎么来,是要实现什么技术而来的

      将不同类型的数据,方法(即函数)放到一起,就是对象

    88.类的定义_类和对象的关系

      有什么关系   类是抽象的,是对象的模板,通过模板可以创建出很多相同的对象

      咧如,对象是一个饼干,类就是制作这个饼干的”模具“   类就是将行为和状态打包到一起

    89.构建函数_init_

      创建是咧就是调用构造方法,所以参数应该和构造方法一直     

      self不用写,系统会默认的把对象传过来的   构造方法和self都为实例对象服务

      当我创建对象的时候实际上是调用了两个方法:__init__(初始化创建好的对象,初始化是指“给实例赋值”)   __new__(用于创建对象)

      通过类名调用构造函数   self指的是当前创建的对象

    90.实例属性_内存分析

      怎么说呢?这个内存分析   不会画  栈  堆   

      有助于我们理解,局部变量吧   那个是属于哪个之类的

    91,实例方法-内存分析方法调用过程

      从属关系  就是局部变量嘛   对象存在他就纯在,对象没有它就没有

      

      isinstance 判断这个对象是不是属于这个类

    92类对象

      类对象,类属性,类方法,静态方法   后面两个是要通过装饰器的

      type模具类---类----对象   都是对象的意思是,都可以引用地址

    93.类属性-内存分析

      属性的值是有变化的,要注意

      因为方法是共享的吗   也会在类对对象的地址中

    94.类方法-静态方法-内存分析

      cls特指类对象  还有@classmethod 

      这两个方法都不能访问实例属性,和实例方法,这两个方法有什么用,有什么区别  无

    95.__del__()析构方法和垃圾回收机制

      析构函数   实现对象被销魂时所需要的操作

      Python如何实现自动垃圾回收,对象没有被引用时(引用计数0),由垃圾回收器调用__del__方法

      会有一个refc这样的东西计数吧,当创建就加一,消失就减一

      什么意思,创建不做任何操作也会被删除吗     不管了   不重要,   知道有这个机制就好了

    96.__call__()方法和可调用对象

      定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用

      都是对象,为什么函数可以,我不可以

      字典,元祖,列表创建都是 a =  ()    然后输出的时候又是恢复成自己的专属括号

    97.方法没有重载-方法的动态性

      python中是没有方法的重载的,类体中定义了多个重名的方法,只有最后一个方法有效

      Python是动态语言,一行行的执行,可以动态的修改结构

      这跟动态性有什么关系  方法是对象,函数是对象,一切都是对象。对象引用

    98.私有属性

      有什么用    和封装有关系     封装起来,外部是能访问的

      私有属性是这个样存的  _Employee__age   dir(e)    

    99.私有方法

      内部是可以按照正常的进行调用就好了

      为什么要有这个还是有点不明白  还是等做练习的慢慢的理解吧

    100.@property装饰器-get和set方法

      @progerty就是把方法当成属性使用  getter

      要想设置值的话给用setter

      装饰器是什么,就是装饰嘛,在原有的基础让你更美一点,装饰修饰

      为什么有这个鬼东西,就是我想对属性进行修改是,要判断,而不是随便的修改,也不能

      随便的访问  那就封装成方法呗  我知道属性就好了,就懒得再去记住你的函数名了然后这就诞生了

     

    101面向对象的三大特征说明(封装,继承,多态)

      封装:隐藏对象的属性和实现细节,只对外提供必要的方法

      继承:提高代码的重用性

      多态:同一方法调用由于对象不同会产生不同的行为

    102 继承

      1. 成员继承:子类继承了父类除构造方法之外的所有成员。

      构造函数中包含调用父类构造函数

      object是所有类的父类 最终都是继承他  所以他的一些方法可以直接用如:__init__,__new__

      必须显示调用父类初始化方法,不然解释器不糊去调用

      私有,只有父类才有,多以不能调用   要用私有的方法去调用

      dir(对象)查询对象拥有的变量名

    103 方法的重写

      2. 方法重冐:子类可以重新定义父类中癿方法,这样就会覆盖父类的方法,也称为“重写”

    104 object根类 -dir()

      dir(对象)查看所有属性

    105  重写__str__()方法

      返回“对象的描述”   就一个内置的方法当我print(对象)时的描述,你觉得不好也可以修改

    106.多重继承

      java只有单继承  

      尽量避免使用

    107mro()

      打印类的层次结构   C.mro()   继承顺序依次从左往右

    108super()获得父类的定义

      通过super()调用父类的方法

      A.say()  也可以调用啊    说明super()就是父类吗

    109 多态

      多态是方法的多态,属性没有多态

      多态的存在有必要条件:继承,方法重写

      isinstance是判断是不是这个类的子类

    110 特殊方法和运算符重载

      Python的运算符实际上是通过调用对象的特殊方法实现的

      我们可以重写上面的特殊方法,运算符的重载

    111特殊属性

      

    112对象的深浅拷贝和深拷贝_内存分析

      不晓得要干嘛  

    113组合

      与继承相关   也能实现代码的重用    组合让我们把他们组合起来吗

      也能实现一个类拥有另一个类的方法和属性  这和继承不同  继承是子类继承了父类

      这个组合应该没有关系吧   一个是拥有  一个是是

    114 设计模式_工厂模式实现

      造东西   造对象吗   分离   一些复杂的项目的时候吧    管理自己的类对象的

      所以是先建一个总的工厂  需要建什么你传给我,我就返回给你

    115设计模式_单例模式实现

      只生成一个实例对象,通常要重写new方法和构造方法

    五天的Python基础结束  整体的知识体系建立起来了。也就这几样东西吧,数据,数据结构,控制语句,函数,对象

    一步挨一步变化过来的,还差模块的引入和异常。应该还欧克吧

  • 相关阅读:
    【Tomcat】export: `xxx': 不是有效的标识符
    【Linux】查看程序是否正常运行
    【Linux】bat文件如何执行
    【oracle】截取字符串
    【java异常】Expected one result (or null) to be returned by selectOne(), but found: 63
    【java异常】定时任务异常ERROR 20604 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task
    【oracle】ORA-12638
    【java异常】Unable to install breakpoint in
    【oracle】处理锁表
    20180318 代码错题(4)
  • 原文地址:https://www.cnblogs.com/Py-king/p/10725482.html
Copyright © 2011-2022 走看看