内容正文:
第8章 面向对象程序设计
Chap8 Object-oriented
Nanjing University
1
面向对象
2
fp.read()
','.join(['Amy', 'John', 'Tom'])
这些都是面向对象程序设计的形式
Python
Nanjing University
2
面向对象程序设计基本概念
8.1
3
Python
Nanjing University
程序设计范式(paradim)
4
面向过程程序设计
面向对象程序设计
函数式设计
逻辑式程序设计
Python
Nanjing University
面向对象程序设计
8.1
5
Python
Nanjing University
8.1.1 面向对象程序设计
6
Python
Nanjing University
面向对象程序设计
对象(实例)
由数据及能对其实施的操作所构成的封装体
类
类描述了对象的特征(数据和操作)
7
Python
Nanjing University
7
面向对象程序设计
8
面向对象程序设计:以数据为中心的程序设计方式
隐藏数据细节
更接近自然思考方式
面向过程程序设计:以功能为中心的程序设计方式
需要数据细节
Python
Nanjing University
8
面向对象程序设计
9
[4, 2, 7, -1, 3]构建了一个列表对象,x是对其的引用,由于列表对象允许使用sort()方法进行排序,因此通过x.sort()的调用将x引用的对象进行排序
>>> x = [4, 2, 7, -1, 3]
>>> x.sort()
>>> x
[-1, 2, 3, 4, 7]
Python
Nanjing University
9
8.1.2 面向对象程序设计的基本特征
10
Python
Nanjing University
封装
抽象
多态
继承
面向对象程序设计
面向对象程序设计(OOP)
Encapsulation
Polymorphism
Inheritance
Abstraction
Python
Nanjing University
11
面向对象程序设计的基本特征
抽象(Abstraction)与封装(Encapsulation)
抽象是指对现实世界问题和实体的本质表现;问题分解成数据和数据上的操作
封装是将程序具体的实现细节进行隐藏的一种机制
抽象是抽取现实问题和实体的本质,封装是将这些本质包装起来进行内部实现
12
Abstraction
Encapsulation
Python
Nanjing University
面向对象程序设计的基本特征
继承(Inheritance)
新创建的类的一些特征(包括属性和方法)可以从其他已有的类获得
子类继承父类的所有属性和方法,允许修改或添加其他的特征,父类保持不变
提高程序设计的代码复用性
13
Inheritance
Python
Nanjing University
面向对象程序设计的基本特征
多态(Polymorphism)与绑定(Binding)
多态指一个事物有多种不同的解释,根据传递参数的不同执行不同的函数或操作不同的代码
绑定是指在具体某次使用多态元素时确定使用的是哪一种形式
14
Polymorphism
Binding
Python
Nanjing University
类与对象
8.2
15
Python
Nanjing University
类与对象
类是对象的特征抽象
对象是类的具体化
16
Python
Nanjing University
8.2.1 类
17
Python
Nanjing University
类的定义和方法1
18
ClassName, 类的名称
类文档字符串,提供查询时的帮助信息
1
3
3
1
2
class ClassName:
'''类文档字符串'''
类体
File
2
类体, 需要缩进,定义一些类的属性和方法
Python
Nanjing University
18
19
Python
Nanjing University
类的定义和方法1
20
class Dog:
'''define Dog class'''
def greet(self):
print('Hi')
File
class MyDate:
'''
this is a very simple example class
'''
pass
File
如果类中没有任何属性和方法,仅作为名称空间使用,类体可以用pass语句表示
Python
Nanjing University
20
类的定义和方法2
21
父类, 可选,指定从某个已定义的类继承
1
1
class ClassName(object