python面向对象学习笔记-01

学习笔记


# 0,OOP-Python面向对象

- Python的面向对象

- 面向对象编程

    - 基础

    - 公有私有

    - 继承

    - 组合,Mixxi

- 魔法函数

    - 魔法函数概述

    - 构造类魔法函数

    - 运算类魔法函数

# 1,面向对象概述(ObjectOriented,00)

- OOP思想

    - 接触到任意一个任务,首先想到的是任务这个事件的构成,是由模型构成的

    - 几个名词

        - OO:面向对象

        - OOA:面向对象的分析

        - OOD:面向对象的设计

        - OOI:XXX的实现

        - OOP:XXX的编程

        - OOA->OOD->OOI:面向对象的实现过程

- 类和对象的概念

    - 类:抽象名词,代表一个集合,共性的事物

    - 对象:具象的事物,单个个体

    - 类跟对象的关系

        - 一个具象代表一类事物的某一个个体

        - 一个是抽象,代表一大类事物

- 类中的内容,应该具有两个内容

    - 表明事物的特征,叫做属性(变量)

    - 表明事物功能或动作,称为成员方法(函数)

# 2,类的基本实现

- 类的命名

    - 遵守命名的规范

    - 大驼峰(由一个或者多个单词构成,每个单词首字母大写,单词跟单词之间直接相连)

    - 尽量避开跟系统命名相似的命名

- 如何声明一个类

    - 必须用class关键字

    - 类由属性和方法构成,其他不允许出现

    - 成员属性定义可以直接使用变量赋值,如果没有,允许使用None

    - 案例 01


- 实例化类

        变量 = 类名()#实例化了一个对象

- 访问对象成员

    - 使用点操作符

        obj.成员属性名称

        obj.成员方法

- 可以通过默认内置变量检查类和对象的所有成员

    - 对象所以成员检查

            # dict前后各有连个下划线

            obj.__dict__

案列02

    - 类所有成员

            # dict前后各有两个下划线

            class_name.__dict__


# 3.和对象的成员分析

- 类和对象都可以存储成员,成员可以归类所有,也可以归对象所有

- 类存储成员时使用的是与类关联的一个对象

- 独享存储成员是存储再当前的对象中

- 对象访问一个成员时,如果对象中没有该成员,尝试访问类中的同名成员,

  如果对象中有此成员,一定使用对象中的成员。

- 创建对象的时候,类中的成员不会放入对象中,而是得到一个空对象,没有成员

- 通过对象对类中成员重新赋值或者通过对象添加新成员时,对应成员会保存

  在对象中,而不会修改类成员。

# 5,关于self

- self在对象的方法中表示当前对象本身,如果通过对象调用一个方法,那么该对象会自动传入

  到当前方法的第一个参数中

- self并不是关键字,质只是一个用于接受对象的普通参数,理论上可以用任何一个普通变量代替

- 方法中有self形参的方法称为非绑定类的方法,可以通过对象访问,没有self的时绑定类的方法

  ,只能通过类访问。

- 使用类访问绑定类的方法时,如果方法中需要访问当前类的成员,可以通过__class__成员来访问。

案例03,04



# 6,面向对象的三大特性

- 封装

- 继承

- 多态

## 6.1,封装

- 封装就是对对象的成员进行访问限制

- 封装的三个级别:

    - 公开,public

    - 受保护的,protected

    - 私有的,private

    - public,protected,private不是关键字

- 判别对象的位置

    - 对象内部

    - 对象外部

    - 子类中

- 私有

    - 私有成员是最高级别的封装,只能在当前类或对象中访问

    - 在成员前面加两个下划线即可

        class Person():


            #name是共有的成员

            name = "liuyang"

            # __age就是私有成员

            __age = 18

    - python的私有不是真私有,是一种成为name mangling的改名策略

      可以使用对象,_classname__attributename访问

案例05:


- 受保护的封装 protected

    - 受保护的封装是将成员进行一定级别的封装,然后,在类中或者子类中都

      可以进行访问,但是外部不可以

    - 封装方法:在成员称前添加一个下划线即可

- 【python下划线的使用】(http://blog.csdn.net/handsomekang/article/details/40303207)

你可能感兴趣的:(python面向对象学习笔记-01)