【面向对象编程】 特征:封装、继承和多态。

面向对象

  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。   
    •   比如:数字、字符、列表、元组、字典、函数等
    •   对象的类型:数字类型、字符类型等(type函数查看对象的数据类型)
    •   数字、字符、元组是不可改变值的对象
    •   对象的特征也称为属性,比如长度等
  • 方法:类中定义的函数叫做方法,没在类中定义的叫函数
  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
    •   也是一种对象,是用来创建对象的对象(id函数识别对象在内存中的地址)
    •   对象所具有的行为也可以称作方法,比如对字符串进行拆分、方法的本质是函数
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。(把用类创建对象的过程称为实例化)
  • 模块:只一整个.py文件中的类、函数等

 

封装

  什么是封装:封装是指将数据与具体操作的实现代码放在某个对象内部,就是将类或者是函数中的某些属性限制在某个区域之内,外界只能通过接口使用该对象,无法直接调用。

  封装数据的主要原因是:保护隐私 (不能直接调用、修改对象内部的私有信息)

  封装方法的主要原因是:隔离复杂度  (能隐藏对象实现细节,使代码更易维护)

 

  拓展:

    1、类通过将函数和变量封装在内部,实现了比函数更高一级的封装

    2、在编程语言里,对外提供的接口(接口可理解为了一个入口),就是函数,称为接口函数,这与接口的概念还不一样,接口代表一组接口函数的集合体。

  

  封装的两个层面:

    1、第一种(什么都不用做):创建类和对象会分别创建二者的名称空间,我们只能用类名.或者obj.的方式去访问里面的名字,这本身就是一种封装。

      

    2、第二种(定义私有化) : 类中把某些属性和方法隐藏起来(或者说定义成私有的),只在类的内部使用、外部无法访问,或者留下少量接口(函数)供外部访问。

      提示:

        Python中私有化的方法也比较简单,即在准备私有化的属性(包括方法、数据)名字前面加两个下划线即可。

        类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式:

 

继承:

  继承:子类需要重用父类的属性和方法,子类中也可以定义自己的属性和方法。

    通过继承创建的新类称为子类派生类,被继承的类称为基类父类超类

  python继承的优点:

    实现代码复用,减少代码量;

    拥有父类的所有功能,只需要编写子类附加的功能即可。

 

 

 

多态:

 多态:以封装和继承为前提,不同的子类对象调用相同的方法,产生不同的执行结果

 

posted @ 2022-01-28 16:25  Phoenixy  阅读(63)  评论(0编辑  收藏  举报