一、什么是面向对象?
今天只是简单了解一下面向对象,那到底什么才是面向对象呢?
举个简单的例子,有个笑话说把大象放冰箱里分为几步,
正常人的思维都是,第一步将冰箱门打开,第二部把大象放入冰箱里,第三部关上冰箱门。这整个的过程我们叫它面向过程
而在我们python中是怎样实现的呢?
1 #面向过程 2 def func(): 3 print("打开冰箱门") 4 print("将大象放入冰箱") 5 print("关闭的冰箱门") 6 func() 7 # 打开冰箱门 8 # 将大象放入冰箱 9 # 关闭的冰箱门
现在我有个想法,就是想让大象自己打开冰箱门,自己进冰箱,自己在关上冰箱门,当然在现实生活中是不存在的,但是在python中我们可以实现,这个实现的过程我们就叫它面向对象
1 #面向对象 2 class Foo: 3 def __init__(self,first,next,last): 4 print(first) 5 print(next) 6 print(last) 7 obj = Foo("打开冰箱门","进入冰箱","关闭冰箱门") 8 # 打开冰箱门 9 # 进入冰箱 10 # 关闭冰箱门
面向对象和面向过程的区别
面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
二、类与对象
什么是类?什么是对象?
类在我们汉语言中的理解是有相同之处的事物,在python中我们也可以理解为将多种具有相同方法的的归类。
对象可以是一个动作也可以是一个抽象化的表达,总之万物皆为对象。
1 class Foo: 2 # Foo就是一个类,将多个方法放入到Foo类中 3 def func1(self): 4 #func1方法,在类的里面我们称之为方法 5 pass 6 def func2(self): 7 pass 8 obj = Foo 9 #obj就是一个对象,在详细一点obj是Foo类的一个对象,对象可以有多个。
三、面向对象的三大特性
封装:
封装就是将相关的功能封装到一个类中,将数据封装到一个对象中
继承:
为了方便提供代码的重用性
多态:
对象的多种姿态