- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
面向对象设计第十一章
课程目标课程目标1理解面向对象设计的过程324能够阅读和理解面向对象的程序了解封装、多态和继承的概念利用面向对象设计来设计中等复杂程度的软件
PART1面向对象设计的过程
1面向对象设计的过程魔法黑盒组件A组件B面向对象设计的本质是从魔法黑盒及其接口的角度来描述系统。是自顶向下程序设计方法的有力补充,用于开发可靠的、性价比高的软件系统这章将介绍OOD的基本原理并通过案例加深理解。组件可能是服务的用户或客户
1面向对象设计的过程面向对象设计的一些直观指导1、寻找候选对象。2、识别属性。3、考虑接口。4、细化不简单的方法。5、迭代式设计。6、尝试替代方案。7、保持简单。
1面向对象设计的过程以一个例子来说明面向过程:一般情况为了表示一个学生的成绩,面向过程的程序可以用一个dict表示std1={name:Michael,score:98}std2={name:Bob,score:81}处理学生成绩可以通过函数实现defprint_score(std):print(%s:%s%(std[name],std[score]))
1面向对象设计的过程以一个例子来说明面向过程:采用面向对象的程序设计思想,代码则是这样写:classStudent(object):def__init__(self,name,score):self.name=nameself.score=scoredefprint_score(self):print(%s:%s%(self.name,self.score))
1面向对象设计的过程以一个例子来说明面向过程:对象的方法(Method)用面向对象的程序写出来就像这样:bart=Student(BartSimpson,59)lisa=Student(LisaSimpson,87)bart.print_score()lisa.print_score()
PART2类和实例
2类和实例面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。在Python中,定义类是通过class关键字:classStudent(object):pass
2类和实例定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的bart=Student()bart__main__.Studentobjectat0x10a67a590Studentclass__main__.Student
2类和实例可以自由地给一个实例变量绑定属性,比如,给实例bart绑定一个name属性:bart.name=BartSimpsonbart.nameBartSimpson
2类和实例由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:注意:特殊构造方法“__init__”前后分别有两个下划线!!!classStudent(object):def__init__(self,name,score):self.name=nameself.score=score
2类和实例在这里例子中,有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:bart=Student(BartSimpson,59)bart.nameBartSimpsonbart.score59
PART3数据封装
3数据封装面向对象编程的一个重要特点就是数据封装。在上面的Student类中,每个实例就拥有各自的name和score这些数据。我们可以通过函数来访问这些数据,比如打印一个学生的成绩:defprint_score(std):print(%s:%s%(std.name,std.score))print_score(bart)BartSimpson:59
3数据封装可以直接在Student类的内部定义访问数据的函数,就把“数据”给封装起来了。这些封装数据的函数和Student类本身是关联起来的,我们称之为类的方法
您可能关注的文档
- Python程序设计 课件 第1章 计算机和程序设计基础.pptx
- Python程序设计 课件 第2章 Python编写简单程序.pptx
- Python程序设计 课件 第3章 面向对象和图形.pptx
- Python程序设计 课件 第4章 字符串、列表、元组和文件.pptx
- Python程序设计 课件 第5章 函数.pptx
- Python程序设计 课件 第6章 判断结构.pptx
- Python程序设计 课件 第7章 循环结构和布尔值.pptx
- Python程序设计 课件 第8章 集合和字典.pptx
- Python程序设计 课件 第9章 模拟与设计.pptx
- Python程序设计 课件 第10章 类与对象.pptx
文档评论(0)