Day08 - 面向对象编程
面向对象思想有三大要素:封装、继承和多态。
- 封装,指的是在类中编写的数据或者方法都封装起来,对外只提供调用接口,当类被实例化对象后,就可以直接调用类里面的方法。
- 继承,即可以直接继承前辈的属性和方法。通俗的说就是可以使用已经存在的经验和方法,我们可以不需要重复劳作就可以获得,同时还可以在此基础上进行扩展。
- 多态,字面意思就是多种状态。当子类继承父类后,我们可以对父类方法进行重写,通过方法重写可以让父类的同一个行为在子类中拥有不同版本,当我们调用这个经过子类重写的方法时,不同子类对象会表现出不同的行为,称之为多态。
类和对象
类是对象的蓝图和模板,对象是类的具体实例。在对面对象编程中,一切皆为对象,对象都有属性和方法,每个对象都是独一无二的,且对象一定属于某个类。
定义类和实例化对象
Python中用class关键字定义类。写在类中的方法,我们称为方法。在命名属性的时候,常用_开头,暗示属性是受保护的,不建议外界直接访问。
练习
练习1:定义一个类描述数字时钟。
ps.这个练习感觉做出来的功能怪怪的。无非就是时间累计,转化为时分秒吧。。。
import time
class Clock:
def __init__(self, hour = 0, minute = 0, second = 0):
self._hour = hour
self._minute = minute
self._second = second
def run(self):
self._second += 1
if self._second == 60:
self._second = 0
self._minute += 1
if self._minute == 60:
self._minute = 0
self._our += 1
if self._our == 24:
self._hour ==0
def show(self):
s = '%02d:%02d:%02d' % (self._hour, self._minute, self._second)
return s
def main():
clock = Clock()
while True:
print(clock.show())
time.sleep(1)
clock.run()
if __name__ == '__main__':
main()