面向对象编程

参考别人的总结,感觉原作者写的通俗易懂。

面向对象编程(object oriented programming)

OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。

oop的一条基本原则:计算机程序是由单个能够起到子程序作用的单元或对象组合而成。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。

函数编程(面向过程编程)与oop主要的区别是oop可以使程序更加容易扩展和易改变。

面向对象的特征:

(1)封装encapsulation

封装是面向对象的特征之一,是对象和类概念的主要特性。

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

在类中对数据的赋值、内部调用对外部是透明的(外部用户不能用,不是自己人不能使用)。这使得类编程了一个容器,里面包含类的数据和方法,一些功能的实现细节不对外暴露,只对外开放接口。

作用:防止数据被随意修改;使外部程序不需要关注对象内的构造,只需要通过此对象对外提供的接口进行直接访问即可。

(2)继承inheritance

一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。实现代码的重复使用。

oop语言的一个主要功能就是继承。继承可以使用现有类的所有功能,并在无需重新编写原来类的情况下,对这些功能进行扩展。通过继承创建的类称为‘子类’或者‘派生类。被继承的类称为‘基类’、‘父类’或者‘超类’。继承的过程是从一般到特殊的过程。要实现继承,可以通过”继承“和“组合composition”来实现。

继承实现方式分为两类:实现继承、接口继承。

实现继承是指使用基类的属性和方法而无需额外编码的能力;

接口继承是指仅使用属性和方法的名称,但是子类必须提供实现的能力;

(3)多态polymorphism

多态是面向对象的重要特性。一个接口,多种实现。指的是一个基类中派生出了不同的子类,且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。

多态允许将子类的对象当做父类的对象使用,某父类的引用指向其子类的对象,调用的方法是该子类型的方法。

接口重用,一种接口,多种实现。

多态性是允许你将父对象设置成为和一个或者更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。即:允许将子类型的指针赋值给父类型的指针。

多态的作用

封装可以隐藏实现细节,使得代码模块化;继承可以扩展已经存在的代码块(类);它们的目的都是为了--代码重用。

多态的目的是实现接口重用,为了类在继承和派生时,保证使用“家谱”中的任一类的实例的某一属性时的正确调用。类似于从父类调用子类的方法。

阅读更多
上一篇笨办法学python 习题33
下一篇python实践项目
想对作者说点什么? 我来说一句

Python 3面向对象编程

2017年12月23日 38.36MB 下载

Java面向对象编程(孙卫琴)第2版.pdf

2018年02月04日 136.07MB 下载

JAVA面向对象编程 孙卫琴 PDF 高清版

2017年10月26日 313.24MB 下载

Java 面向对象编程.pdf

2012年12月24日 304.72MB 下载

没有更多推荐了,返回首页

关闭
关闭