面向对象编程
面向对象编程:Object Oriented Programming,简称OOP,是一种程序设计方法。
面向对象面向过程区别
完成自我介绍功能,面向过程完成功能
stu_a = {
“name”:“A”
“age”:18,
“hometown”:“东北”
}
stu_b = {
“name”:“B”
“age”:19,
“hometown”:“山东”
}
stu_c = {
“name”:“C”
“age”:20,
“hometown”:“河北”
}
def stu_info(stu):
自我介绍
for key,value in stu.items():
print(“key=%s,value=%d”%(key,value))
stu_info(stu_a)
stu_info(stu_b)
stu_info(stu_c)
接下来我们用面向对象的思想来完成功能
stu_a = Student(个人信息)
stu_b = Student(个人信息)
stu_c = Student(个人信息)
stu_a.info()
stu_b.info()
stu_c.info()
面向过程:根据业务逻辑从上到下写代码,要面面俱到都要思考到
面向对象:讲数据与函数绑定到一起,进行封装。减少重复代码的重写过程,找一个能完成这个功能的哥们来完成
面向对象和面向过程都是解决问题的一种思路而已。
概念及术语
类(Class): 用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。其中的对象被称作类的实例。
实例:也称对象。通过类定义的初始化方法,赋予具体的值,成为一个"有血有肉的实体"。
实例化:创建类的实例的过程或操作。
实例变量:定义在实例中的变量,只作用于当前实例。
类变量:类变量是所有实例公有的变量。类变量定义在类中,但在方法体之外。
数据成员:类变量、实例变量、方法、类方法、静态方法和属性等的统称。
方法:类中定义的函数。
静态方法:不需要实例化就可以由类执行的方法
类方法:类方法是将类本身作为对象进行操作的方法。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称override。
封装:将内部实现包裹起来,对外透明,提供api接口进行调用的机制
继承:即一个派生类(derived class)继承父类(base class)的变量和方法。
多态:根据对象类型的不同以不同的方式进行处理。