面向对象
1.概念
面向对象:是将现实问题构建关系,然后抽象成类,给类定义属性和方法后,再将类实例化为实例,通过访问实例的属性解二调用方法来进行使用。
再python中“类”和“类的实例”都称为对象(python中一切皆对象),因为python的类是更顶级的type实例化后的对象。
2.理解面向对象
1.将功能封装进对象,强调具备了功能的对象
2.关注的是解决问题需要哪些对象
面向对象是相对面向过程而言;面向对象和面向过程都是一种编程思想
面向过程:自上而下顺序执行,逐步求精;其程序结构是按照功能划分为若干个基本模块,这些模块形成一个树状结构,每个模块之间的关系尽可能简单,在功能上相对独立;每个模块均是由顺序、选择和循环三种基本结构组成。程序流程在写程序时就已决定。
3.面向对象的优势
1.面向对象编程更加模块化,更加易于构建大型项目
2.面向对象编程有利于更新和维护,其简化了企业级的编程的协同问题
3.面向对象编程可以把项目做的更大,模块之间解耦,调用更简单
4.面向对象编程的要素
三要素:
继承:继承的主要目的就是实现方法的多态性和代码的可重用性
封装:封装就是把属性和方法封装到一个类中,通过方法来修改和执行业务,有利于后期的修改和维护
多态:多态是为了解决现实生活中的情况的多样性问题,根据不同的条件,做出对应的动作
其他要素:
类:创建一类具有相同特征的额对象的模板,是计算机当中相对于对象的抽象
对象:一切皆对象,凡是具有状态和行为的实体
属性:属性对应着对象的状态,是计算机中表示对象的状态的数据结构
方法:方法对应着对象的状态,是计算机中对对象的行为的一种抽象,是处理业务逻辑的关键所在
构造方法:构造方法是创建对象时所调用的方法
5.举个例子
创建一个学生类
class Student:
"""创建学生类"""
number = 0 # 定义类属性
def __init__(self, name, score):
# 初始化方法,定义学生属性
self.name = name
self.score = score
Student.number += 1
def show(self):
# 打印学生信息的方法
print('name:%s, score:%s' % (self.name, self.score))
# 定义类方法,打印学生的数量
@classmethod
def tital(self):
print('tital:{}'.format(cls.number))
# 实例化,创建对象
student1 = Student('aaa', 100)
student2 = Student('bbb', 101)
Student.total()