Python语言程序设计(第2版) 课件 第9章 面向对象程序设计.pptx

Python语言程序设计(第2版) 课件 第9章 面向对象程序设计.pptx

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第9章面向对象程序设计;9.1.1面向对象的基本概念

1.对象

现实世界中客观存在的事物称作对象(object),任何对象都具有各自的特征(属性)和行为(方法)。

面向对象程序设计中的对象是现实世界中的客观事物在程序设计中的具体体现,它也具有自己的特征和行为。对象的特征用数据来表示,称为属性(property)。对象的行为用程序代码来实现,称为对象的方法(method)。总之,任何对象都是由属性和方法组成的。;2.类

类(class)是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。任何对象都是某个类的实例(instance)。

在系统中通常有很多相似的对象,它们具有相同名称和类型的属性、响应相同的消息、使用相同的方法。将相似的对象分组形成一个类,每个这样的对象被称为类的一个实例,一个类中的所有对象共享一个公共的定义,尽管它们对属性所赋予的值不同。;3.消息

一个系统由若干个对象组成,各个对象之间通过消息(message)相互联系、相互作用。消息是一个对象要求另一个对象实施某项操作的请求。发送者发送消息,在一条消息中,需要包含消息的接收者和要求接收者执行某项操作的请求,接收者通过调用相应的方法响应消息,这个过程被不断地重复,从而驱动整个程序的运行。

;4.封装

封装(encapsulation)是指把对象的数据(属性)和操作数据的过程(方法)结合在一起,构成独立的单元,它的内部信息对外界是隐蔽的,不允许外界直接存取对象的属性,只能通过使用类提供的外部接口对该对象实施各项操作,保证了程序中数据的安全性。

类是数据封装的工具,对象是封装的实现。类的访问控制机制体现在类的成员中可以有公有成员、私有成员和保护成员。对于外界而言,只需要知道对象所表现的外部行为,而不必了解内部实现细节。;5.继承

继承(inheritance)反映的是类与类之间抽象级别的不同,根据继承与被继承的关系,可分为基类和衍类,基类也称为父类,衍类也称为子类,正如“继承”这个词的字面含义一样,子类将从父类那里获得所有的属性和方法,并且可以对这些获得的属性和方法加以???造,使之具有自己的特点。;6.多态

多态(polymorphism)是指同一名字的方法产生了多个不同的动作行为,也就是不同的对象收到相同的消息时产生不同的行为方式。

将多态的概念应用于面向对象程序设计,增强了程序对客观世界的模拟性,使得对象程序具有了更好的可读性,更易于理解,而且显著提高了软件的可复用性和可扩充性。;9.1.2从面向过程到面向对象

面向过程程序设计就是采用自顶向下的方法,分析出解决问题所需要的步骤,将程序分解为若干个功能模块,每个功能模块用函数来实现。

一个面向对象的程序一般由类的声明和类的使用两部分组成。程序设计始终围绕“类”展开。通过声明类,构建了程序所要完成的功能,体现了面向对象程序设计的思想。在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类的概念。;9.2.1类的定义

在Python中,通过class关键字来定义类。定义类的一般格式如下:

class类名:

类体

例如定义了一个Person类:

classPerson:

name=brenden#定义了一个属性

defprintName(self):#定义了一个方法

print(self.name);9.2.2对象的创建和使用

在Python中,用赋值的方式创建类的实例,一般格式为:对象名=类名(参数列表)

创建对象后,可以使用“.”运算符,通过实例对象来访问这个类的属性和方法(函数),一般格式为:

对象名.属性名

对象名.函数名()

例如,语句“p=Person()”产生了一个Person的实例对象,此时可以用p.name来调用类的name属性。;例9-1类和对象应用示例。

classCC:

x=10#定义属性

y=20#定义属性

z=30#定义属性

defshow(self):#定义方法

print((self.x+self.y+self.z)/3)

b=CC()#创建实例对象b

b.x=30#调用属性x

b.show()#调用方法show

程序输出结果如下:26.666666666666668;9.3.1属性和方法的访问控制

1.属性的访问控制

在Python中没有像C++中public和private这些关键字来区别公有属性和

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档