面向过程:为了简化程序设计,把大块函数通过切割成小块函数来降低系统的复杂度。
面向对象:把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
面向对象的设计思想是抽象出Class,根据Class创建Instance。
面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。
数据封装、继承和多态是面向对象的三大特点。
继承
继承有什么好处?最大的好处是子类获得了父类的全部功能。
多态
当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在代码运行的时候,总是会调用子类的run()。这样,我们就获得了继承的另一个好处:多态。
为了统计学生人数,可以给Student类增加一个类属性,每创建一个实例,该属性自动增加:
代码:
class Student(object):
count =0
def __init__(self, name):
self.name = name
Student.count=Student.count+1 //在小函数中,因为,没传入一个实例,这一句就被执行一次
#测试
if Student.count !=0:
print('fail')
else:
bart = Student('Bart')
if Student.count !=1:
print('fail')
else:
lisa = Student('Bart')
if Student.count !=2:
print('fail')
else:
print('Students:', Student.count)
print('success')