面向对象概念

面向对象的程序设计具有三个基本特征:封装,继承和多态,可以大大增加程序的可靠性,代码的可重用性和程序的可维护性,从而提高程序开发效率。

对象的定义

所谓对象,从概念层面来说,就是某种事物的抽象(功能)。 抽象原则包括数据抽象和过程抽象两个方面:数据抽象就是定义对象的属性;过程抽象就是定义对象的操作。

面向对象的程序设计强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即对象),对象的外部只需要知道它做什么,不需要知道它如何去做。

从规格层面来说,对象是一系列可以被其他对象使用的公共接口(对象交互)。从语言实现层面来看,对象封装了数据和代码(数据和程序)

封装

封装是面向对象的主要特性。所谓封装,就是把客观事物抽象并封装成对象,即将数据成员,属性,方法和事件等集合在一个整体内。通过访问控制,还可以隐藏内部成员,只允许可信的对象访问或操作自己的部分数据或方法。

继承

继承是面向对象的程序设计中代码重用的主要方法。继承是允许使用现有类的功能,并在无须重新改写原来的类的情况,对这些功能进行扩展。继承可以避免代码复制和相关的代码的维护问题。

多态性

派生类具有基类的所有非私有数据和行为以及新类自己定义的所有其他数据或行为,即子类具有两个有效类型:子类的类型及其继承的基类的类型。对象可以表示对个类型的能力称为多态性。多态性允许每个对象以自己的方式去响应共同的消息,从而允许用户以更明确的方式建立通用的软件,提高软件开发的可维护性。

类对象

类使用关键字class声明。类的格式如下:

class  类名:

       类体

class 实际上是Python的复合语句,python解释器解释执行class 语句时,会创建一个类对象。

类是抽象的,要使用类定义的功能,就必须实例化类,即创建类的对象,创建对象后可以使“  .  ”’ 运算符来调用其成员。

注意:创建类的对象,创建类的实例,实例化类等说法是等价的,都说明以类为模板生成了一个对象的操作。

Object = 类名 (参数列表)

Object . 对象函数 或 Object . 对象属性

语句a = complex(1, 3) 创建类complex 的实例对象并绑定到变量a ; 表达式a.conjugate() 调用对象 a 的conjugate() 方法,返回其共轭值( 1-3j )表达式 a.real 引用对象 a 的实部 返回 1.0

属性

类的数据成员是在类中定义的成员变量,用来存储描述类的特征的值,称为属性。属性可以被定义该类中定义的方法访问,也可以通过类对象或实例对象进行访问,而在函数体或代码块中定义的局部变量,则只能在其定义的范围内进行访问。

实例属性

通过“ self. 变量名” 定义的属性,称为实例属性,也称为实例变量。类的每个实例都包含该类的实例变量的一个单独副本,实例变量属于特定的实例。实例变量在类的内部通过self 访问,在外部通过对象实例访问。

实例属性一般在__init__ 方法中通过如下方式初始化:

self。实例变量名 = 初始值

self。实例变量名 = 值 #写入

私有属性和公有属性

Python 类的成员没有访问控制限制,这与其他面向对象的语言不同。通常,约定两个下划线开头,但是不以两个下划线结束的属性是私有的,其他的为公共的。不能直接访问私有属性,但可以在方法中访问。

方法

方法是与类相关的函数,类的方法的定义与普通的函数一致。

一般情况下,类的方法的第一个参数一般为 self ,这种方法称为实例方法,实例方法对类的某个给定的实例进行操作,可以通过self 显示地访问该实例。实例方法的声明格式如下:

def 方法名(self ,[形参列表]):

函数体

方法调用的格式如下:

对象 . 方法名 ([ 实参列表 ] )

__init__ 方法和 __new__ 方法

Python类体中,可以定义特殊的方法: __new__方法和__init__方法。

__new__ 方法是一个类的方法,创建对象时调用,返回当前对象的一个实例,一般无须重载该方法

__init__方法即构造函数(构造方法),用于执行类的实例的初始化工作,创建完对象后建调用,初始化当前对象的实例,无返回值。

__del__方法

Python类体中,可以定义一个特殊的方法: __del__方法:

__del__方法即解析函数(析构方法),用于实现销毁类的实例所需的操作,如释放对象所占用的非托管资源。

默认情况下,当对象不再被对象使用时,__del__ 方法运行,由于Python解释器实现自动垃圾回收,即无法保证这个方法什么时候运行。

通过del 语句,可以强制销毁一个对象实例,从而保证调用对象实例的__del__ 方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值