文章目录
一、面对对象编程介绍
1.1面向过程编程
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。
在python中就一句话,可以流水线的编程,调用返回值
- 特性:模块化,流程化
- 优点:体系结构更加清晰,简化程序的复杂度
- 缺点:可扩展性极其的差,所以说面向过程的应用场景是,不需要经常变化的软件,如:linux内核,httpd,git等软件。
1.2函数式编程
**函数式编程,或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
比起命令式编程,函数式编程更强调程序执行的结果而非执行的过程,倡导利用简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。
1.3面向对象编程
**面向过程的编程思想将一个功能分解为一个一个小的步骤,我们通过完成一个一个的小的步骤来完成一个程序。
- 优点:这种编程方式,符合我们人类的思维,编写起来相对比较简单。
- 缺陷:这种方式编写代码的往往只适用于一个功能,如果要在实现别的功能,即使功能相差极小,也往往要重新编写代码,所以它可复用性比较低,并且难于维护。**
二、面向对象编程三大特性
2.1 对象和类
- 类(Class) 是现实或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
- 类(Class)是创建实例的模板
- 对象(Object) 是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
- 对象(Object) 是一个一个具体的实例
- 如何定义类? class 类(): pass
- 如何将类转换成对象?
- 实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = 类名(参数1,参数2…参数n)构成。
- Example:
2.2 封装特性
封装:顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
所以,在使用面向对象的封装特性时,需要:
1). 将内容封装到某处
2). 从某处调用被封装的内容
1). 通过对象直接调用被封装的内容: 对象.属性名
2). 通过self间接调用被封装的内容: self.属性名
3). 通过self间接调用被封装的内容: self.方法名()
-
构造方法‘_ _init _ _’与其他普通方法不同的地方在于,当一个对象被创建后,会立即调用构造方法。自动执行构造方法里面的内容。
-
对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。
-
Example:
执行结果:
2.3 继承特性
继承描述的是事物之间的所属关系,当我们定义一个class的时候,可以从某个现有的class
继承,新的class称为子类、扩展类(Subclass),而被继承的class称为基类、父类或超类(Baseclass、Superclass)。
重写父类方法: 就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法。
- Example:
- 运行程序
运行结果:
- 运行程序:
运行结果
- 示例:
多继承
私有属性和私有方法
-
优势:
-
Example:
-
运行程序:
执行结果:
-
运行程序:
结果会报错!! -
2.4 多态特性
多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。通俗来说: 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
- Exampe:
运行程序
运行结果:
三、面对对象高级特性
3.1 类方法和静态方法
- Example:
- 运行程序:
运行结果:
3.2 Property类属性
- Example:
运行程序
运行结果