Skip to content

Latest commit

 

History

History
53 lines (30 loc) · 3.54 KB

File metadata and controls

53 lines (30 loc) · 3.54 KB

面向对象编程

面向对象编程---Object Oriented Programming,简称OOP,是一种程序设计思想。

面向对象的特点:

一切皆为对象

在面向对象编程世界里,一切皆为对象,对象是程序的基本单元,对象把程序与数据封装起来提供对外访问的能力,提高软件的重用性,灵活性和扩展性。

在面向对象编程中,通常把对象的数据(字段)称为属性(实际就是变量),把对象的行为称为方法(实际就是函数)。

面向对象三大特征

面向对象的三大特征分别是:封装、继承、多态,这三者是面向对象编程的基本要素

  • 封装(Encapsulation)

通过对象隐藏程序的具体实现细节,将数据与操作包装在一起,对象与对象之间通过消息传递机制实现互相通信(方法调用),具体的表现就是通过提供访问接口实现消息的传入传出。

封装常常会通过控制访问权限来控制对象之间的互访权限,常见的访问权限:公有(public),私有(private),保护(protected)。某些语言可能还会提供更加具体的访问控制,如,Java的package

封装的意义:由于封装隐藏了具体的实现,如果实现的改变或升级对于使用方而言是无感知的,提高程序的可维护性;而且封装鼓励程序员把特定数据与对数据操作的功能打包在一起,有利于应用程序的去耦

  • 继承(Inheritance)

支持类的语言基本都支持继承,继承即类之间可以继承,通过继承得到的类称为子类,被继承的类为父类,子类相对于父类更加具体化。

子类具有自己特有的属性和方法,并且子类使用父类的方法也可以覆盖(重写)父类方法,在某些语言中还支持多继承,但是也带来了覆盖的复杂性。 继承的意义:继承是代码复用的基础机制

  • 多态(Polymorphism)

多态发生在运行期间,即子类型多态,指的是子类型是一种多态的形式,不同类型的对象实体有统一接口,相同的消息给予不同的对象会引发不同的动作。

多态的意义:提供了编程的灵活性,简化了类层次结构外部的代码,使编程更加注重关注点分离(Separation of concerns,SoC)

Python 面向对象编程中的概念

  • **类(Class): **用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • **对象:**通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
  • **类变量:**类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • **数据成员:**类变量或者实例变量用于处理类及其实例对象的相关的数据。
  • **方法重写:**如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖。
  • **实例变量:**定义在方法中的变量,只作用于当前实例的类。
  • **继承:**即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待
  • **实例化:**创建一个类的实例,类的具体对象。
  • **方法:**类中定义的函数。
  • **方法重写:**如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。