面向对象、面向过程
# 面向对象、面向过程
面向过程:具体化,流程化,解决一个问题,需要一步一步的分析,一步一步的实现.
面向对象:模型化,将现实中的事物抽象为程序中的属性或者功能,并且自己无需管理模型中方法实现的过程,只需要会调用.
面向对象的底层其实还是面向过程
面向对象的三大特征:1.封装性 2.继承性 3.多态性
# 优缺点:
面向过程:
- 优点:性能比面向对象好,因为类调用时需要实例化,内存开销较大
- 缺点:不易维护,不易复用,扩展
面向对象:
- 优点:易维护,易复用,易扩展
- 缺点:内存开销大,性能比面向过程差
类:类是对象的抽象,将现实生活中的具体的事物中的属性或者行为抽象出来,作为程序中的方法或者属性,类是抽象的
对象:对象是类的实例,通过类创建现实生活中的一个具体的实物
# 面向对象的创建和使用
- 使用面相对象开发,第 1 步 是设计 类
- 使用 类名() 创建对象,创建对象 的动作有两步:
- 在内存中为对象 分配空间 先执行
__new__
方法 - 调用初始化方法
__init__
为 对象初始化
- 在内存中为对象 分配空间 先执行
- 对象创建后,内存 中就有了一个对象的 实实在在 的存在 —— 实例
因此,通常也会把:
- 创建出来的 对象 叫做 类 的 实例
- 创建对象的 动作 叫做 实例化
- 对象的属性 叫做 实例属性
- 对象调用的方法 叫做 实例方法
在程序执行时:
- 对象各自拥有自己的 实例属性
- 调用对象方法,可以通过 self.
- 访问自己的属性
- 调用自己的方法
结论
- 每一个对象 都有自己 独立的内存空间,保存各自不同的属性
- 多个对象的方法,在内存中只有一份,在调用方法时,需要把对象的引用 传递到方法内部
# 定义类和属性
class Student:
name = "类属性" # 属性
def test(self):
print("类中的方法")
# You是创建出来的实例 Student()动作叫做实例化
You = Student()
print(You.name)
You.test()
"""
类属性
类中的方法
"""
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
编辑 (opens new window)
上次更新: 2023/05/17, 23:08:21