我理解的面向过程与面向对象
自从学习python以来,以前所接触的代码是根据实际的案例,按照过程,像踩西瓜皮那样,从上到下的按照思路来走,这样的编程思路只适合于中小型的项目案例开发,如果面对较多的数据以及变量,就有些力不从心了,会产生很冗余的代码量,但是面向对象就不同了,虽说面向对象较面向过程来说,相对复杂,但是面向对象对于代码模块化来说是明显高于面向过程的,而且因为其显著特点在扩展功能以及维护上是明显优于面向过程的,所以说二者没有好坏之分,只有合不合适,对于我们来讲更是会不会,熟练不熟练的问题了。所以学好面向对象的编程思路也是很有必要的。
面向对象编程的基本概念
类:
类是一类事物的总称,这类事物有着或多或少的相似之处,称为特征,类是一个概念。
对象:
对象就是实际存在的事物,世间万物都是对象,是类型表示的具体的实际存在一个实例
类与对象的关系:
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能。
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
怎样定义一个类:
组成部分包括,类型名称,属性,方法。通过关键字class定义类型,通过_init_()函数,来初始化累的属性数据,通过普通的函数来实现类的行为方法(ps:类中的函数第一个参数必须是self)。
怎样创建一个对象:
可以直接通过类的名称,来创建对象。
怎样使用对象的属性:
对象的属性,可以直接通过 对象的引用变量.属性名称 来使用。
再怎样使用对象的方法(调用函数):
对象的方法,可以直接通过 对象的引用变量.方法名称() 来调用方法
创建对象的过程:
首先,调用对象的_new_()函数申请内存,创建对象。其次,给创建好的对象,初始化对象的数据,会自动调用_init_()函数,给对象的属性赋值。
创建好的对象,赋值给了一个变量,变量是什么类型?存放的是什么数据?
对象赋值给一个变量,变量存放的是对象的存储地址数据,存放的是类类型
面向对象的三大特性是指:
封装
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承
所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
多态
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。