面向对象开发
什么是对象呢?
一本书、一支笔、一个人都可以是对象,一个数据库、一个网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程,对象就是对于单个事物的抽象化。
对象是是一个容器,封装了属性和方法,
属性是对象的状态,方法是对象的行为(完成某种任务)。比如说,我们可以把动物抽象为animal对象,使用属性记录具体是那一种动物,使用方法表示动物的某种行为(奔跑、捕猎、休息等等) 在实际开发中,对象是一个抽象的概念,可以将其简单理解为 : 数据集或功能集。
开发方式有两种:
面向过程的开发: 比较简单快捷,但是需要重复编写代码
面向对象的开发: 开发较复杂,需要考虑一类问题的处理,可以重复利用代码,不需要针对每个问题重复写代码
什么是面向对象呢?
1.面向对象是一种编程范式,它将程序中的数据和操作封装在一个对象中,从而使得程序更加模块化、可重用和易于维护。在面向对象编程中,对象是类的实例化,类是一种抽象的数据类型,它定义了一组属性和方法。
2.面向对象编程的核心思想是封装、继承和多态。封装是将数据和操作封装在一个对象中,隐藏对象的内部实现细节,只暴露必要的接口给外部访问。继承是通过继承父类的属性和方法,来创建一个新的子类,子类可以重写父类的属性和方法,从而实现更加灵活的功能。多态是指同一个方法可以根据不同对象的实现方式,实现不同的行为
举个例子:
面向对象就是把事务分解成一个个的对象,然后对象直接分工与合作。
将大象装进冰箱(需要几步),面向对象做法。
先找出对象,并写出这些对象的功能:
打开冰箱门
*进去
冰箱对象
*打开
*关闭
封装:对问题的归纳总结,封装为一个类
继承:对已经封装的类进行继承,在原来类的基础上可以再次增加新的内容
多态:同一个方法实现不同的操作
类的构成
类的设计有三要素,分别是类名、类的属性、类的方法。
面向对象开发流程
1 - 封装一个类
2 - 实用类创建一个对象
· 格式
·关键字 class
class people: # people 是一个类名
name = '张三' # name 属性
def eat(self): # 方法
print()
# 调用创建的对象
object = people() # 当前的对象是张三
# 调用执行某个行为
object.eat()
本质就是将变量和函数再次封装在一个类中
面向对象的基本使用
例子:如何将一个事务放入在空间内
# 使用面向对象方式开发程序
class Loading:
# 属性
name = None
container = None
# 方法
def open_func(self):
print(f'打开{self.container}')
def load_func(self):
print(f'把{self.name}放入{self.container}中')
def close_func(self):
print(f'关闭{self.container}')
l = Loading()
# 指定数据
l.name = '大象'
l.container = '冰箱'
# 执行数据处理方法
l.open_func()
l.load_func()
l.close_func()
# 如何把老虎关进笼子?
l2 = Loading()
l2.name='老虎'
l2.container='笼子'
# 执行数据处理方法
l2.open_func()
l2.load_func()
l2.close_func()
属性分类
类属性
class 类名:
# 定义类属性,name 就是一个类属性
name = None
对象属性
在方法中使用self定义的属性就是对象属性
class 类名:
# 定义类属性,name 就是一个类属性
name = None
def func(self):
# age是对象属性
self.age = None
两种属性的区别
-
类属性 可以被类的对象获取值 也可以被类执行获取对应值
-
对象属性 只能被类的对象获取值
类的方法
魔法方法
类中自带的方法
init__() 在创建类对象时会调用的方法
str__() 在对对象进行print输出时调用
del__() 在删除对象时会被调用
# 类中的魔法方法
class A:
# 类属性
name = None
# 使用魔法方法 格式是固定的
# init 初始化方法 创建对象时会被自动执行
def __init__(self):
print('init被调用执行')
def __del__(self):
# 对象被销毁删除时会被自动执行
print('del被调用执行')
def __str__(self):
# 当对象被print输出时,会将str中返回值进行输出
return self.name
# 创建对象
a = A()
# 手动删除对象
# del a
# 输出对象
a.name = '张三'
# print时会自动调用str方法,获取返回值
print(a)
# 程序结束 对象会被自动删除
print('程序结束')