- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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这些关键字来区别公有属性和
您可能关注的文档
- Python语言程序设计(第2版) 课件 第1章 Python语言基础.pptx
- Python语言程序设计(第2版) 课件 第2章 顺序结构.pptx
- Python语言程序设计(第2版) 课件 第3章 选择结构.pptx
- Python语言程序设计(第2版) 课件 第4章 循环结构.pptx
- Python语言程序设计(第2版) 课件 第5章 字符串与文本分析.pptx
- Python语言程序设计(第2版) 课件 第7章 字典与集合.pptx
- Python语言程序设计(第2版) 课件 第8章 函数与模块.pptx
- Python语言程序设计(第2版) 课件 第10章 文件操作.pptx
- Python语言程序设计(第2版) 课件 第11章 异常处理.pptx
- Python语言程序设计(第2版) 课件 第12章 图形绘制.pptx
- 浙江省临海市白云高级中学2025届高三历史3月月考试题.doc
- 云南拾谷县第一中学2024_2025学年高二物理上学期10月月考试题.doc
- 2025版高考生物总复习第13讲基因的分离定律教案苏教版.doc
- 湖北省黄石实验高中2024_2025学年高一历史下学期期末考试模拟卷.doc
- 通史版2025版高考历史大一轮复习专题七近代化的曲折发展__中日甲午战争至五四运动前4第4讲从维新思想到新文化运动课后达标检测含解析新人教版.doc
- 2024年高考数学考试大纲解读专题04导数及其应用含解析文.doc
- 河南省许汝平九校联盟2024_2025学年高一语文上学期期末考试试题扫描版无答案.doc
- 江西省吉安市吉水县第二中学2024_2025学年高一历史上学期第二次月考试题.doc
- 北京市平谷区2025届高三政治一模考试试题含解析.doc
- 2025届中考物理第四讲物态变化专项复习测试无答案新人教版.docx
文档评论(0)