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基础结束  整体的知识体系建立起来了。也就这几样东西吧,数据,数据结构,控制语句,函数,对象

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

  • 相关阅读:
    牛客IOI周赛17-提高组 卷积 生成函数 多项式求逆 数列通项公式
    6.3 省选模拟赛 Decompose 动态dp 树链剖分 set
    AtCoder Grand Contest 044 A Pay to Win 贪心
    5.29 省选模拟赛 树的染色 dp 最优性优化
    luogu P6097 子集卷积 FST FWT
    CF724C Ray Tracing 扩展欧几里得 平面展开
    5.30 省选模拟赛 方格操作 扫描线 特殊性质
    5.29 省选模拟赛 波波老师 SAM 线段树 单调队列 并查集
    Spring main方法中怎么调用Dao层和Service层的方法
    Bug -- WebService报错(两个类具有相同的 XML 类型名称 "{http://webService.com/}getPriceResponse"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。)
  • 原文地址:https://www.cnblogs.com/Py-king/p/10725482.html
Copyright © 2011-2022 走看看