1.面向对象是一种抽象化的编程的思想,很多编程语言中都有一种思想。
2.面向对象就是将编程当成一个事物,对外界来说,事物是直接使用的,不用去管它内部的情况。而编程就是设置事物能做什么事。
3.面向对象编程中重要的组成部分是类和对象。
4.类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的事物。
5.特征及是属性,行为及是方法。
6.对象是类创建出来的真实存在的事物,创建的过程也被称为实例化。
7.先有类再有对象
8.定义类用class 类名要大写,同时遵循大托峰命名法。
9.创建对象 对象名 = 类名()
10.创建类,定义方法,定义属性。创建对象,类名赋值给对象名(变量)。打印对象,对象名加方法名。
11.创建出来的对象叫做类的实例,创建对象的动作叫做实例化,对象的属性叫做实例属性,对象调用的方法叫做实例方法
12.直接打印对象名是打印对象的内存地址
13.self指的是调用该函数的对象,不能缺少
14.只要用类创建了对象,那么对象就拥有类所有的属性和方法。
15.一个类可以创建多个对象,地址并不相同
16.对象属性既可以在类外面添加和获取,也能在类里面添加和获取
17.在类外面添加对象属性(语法) 对象名.属性名 = 值
18.在类外面获取对象属性(语法) 对象名.属性名
19.在类里面获取对象属性(语法) self.属性名
20._xx_()这样写法的函数叫做魔法方法,指的是具有特殊功能的函数。
21.__Init__()方法的作用:初始化对象
22.当用print输出对象的时候默认打印对象内存地址。如果类定义了_str_()方法,那么就会打印在这个方法return的数据,可以用来打印一些解释性说明文字
23.使用__del__魔法方法来删除对象
24.所有类默认继承object类,object类是基类;其他子类叫派生类。
25.子类默认继承父类的所有属牲和方法。
26.继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法
27.如果一个类继承多个父类,优先继承第一个父类的同名属性和方法
28.如果子类和父类拥有同名属性和方法,子类创建对象调用属性和方法的时候,调用到的是子类里面的同名属性和方法
29.子类和父类有相同的属性和方法,默认使用子类同名属性和方法
30.用__mro__魔法方法来获取类的调用顺序
31.如果是先调用了父类的属性和方法,父类属性会覆盖子类属性,故在调用属性前,先调用自己子类的初始化
32.用super()方法调用父类
33.类里面的属性引用外部引用的做公有属性,可以让外部引用的方法称为公有方法。
34.python提供私有属性和方法,这种类外无法直接更改的私有属性,类外也无法直接调用的私有方法,就叫封装
35.用__创建私有属性,私有属性不能继承
36.私有属性和私有方法只能在类里面访问和修改
37.根据工作习惯如果要修改函数名,一般定义函数名get_xx获取私有属性,定义get_xx来修改私有属性
38.多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)。
39.定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。
40.好处:调用灵活,有了多态,更容易编写通用的代码,做出通用的编程,以适应需求的不断变化!
41.实现步骤:定义父类提供公共方法,定义子类重写父类方法,传递子类对象给调用者可以看到不同子类执行效果不同
42.类属性就是类对象所拥有的属性,被该类的所有实例对象所共有
43.类属性可以使用类对象或者实例对象访问
44.类属性可以通过类和对象去访问(print)
45.定义的某项数据始终保持一致时,可以选择定义类属性
46.实例属性要求每个对象为其开辟一份内存空间来记录数据,而类属性为全类所共有,仅占用一份内存,更加节省内存空间
47.类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是,创建了一个实例属性
48.当方法中需要使用类对象(有访问私有类属性)时,定义类方法
49.类方法一般和类对象配合使用
50.@classmethod定义类方法
51.使用静态方法减少不必要的内存消耗和性能消耗