python 关于面对对象
面向对象
关于对面向对象的理解,我认为就是一种资源整合和工具思维。比如说做一件事,不用涉及到每个细节,面面俱到,而是找到一个可以完成这件事的工具即可,使用工具完成,并不用关心是如何去完成的。
面向对象的三大特征
1.封装性
封装就是隐藏对象的属性和方法,进对外公开接口,且不能对其中的属性和方法进行修改,要想使用只能调用接.,封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员
2.继承性
继承是子类继承父类的特征和行为,是子类的对象拥有父类的特征和行为,或者说父类拥有的功能,子类继承之后同样可以拥有,而且还可以拓展。
3.多态性
可以说是同一个行为可以有多个不同的表现形式。是指一个类实例(对象)的相同方法在不同情形有不同表现形式。 比如说狗和猫都是动物类,都可以叫,但是叫声是不同的。现在按照动物类,创建一个机器人,可以模仿所有动物叫,指定模仿谁就是谁的声音.
类
1.类的定义
具有相同特征和行为的事物的抽象,类似于一个模板的概念
2.类的构成
a.类名
b.类得特征即属性
c.类的行为即方法
3.类方法
是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数,能够通过实例对象和类对象去访问
4.类属性
类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本
对象
1.定义
通过类定义,具象的,可见的数据结构实例
2.类对象
类本身也是一个对象,相当于某一类事物概念本身,通常被其类名所指向
3.实例对象
由类创建的实例,可见的,拥有类的特征和行为