面向过程程序设计&面向对象程序设计

概念

面向过程编程:把计算机程序视为一系列的命令集合,即一组函数的顺序执行,简化程序设计。面向过程把函数继续切分为子函数,即把大块函数切割成小块函数,降低系统的复杂度。


面向对象编程:把计算机程序视为一组对象集合,每个对象都可以接收其它对象发来的消息,并处理这些消息。计算机程序的执行就是一系列消息在各个对象之间的传递。

Point:面向对象编程

- class Student(object):
// object 是所有类最终都会继承的类
// class Student(object):
- __init__方法
// 通过该特殊的方法在创建实例的时候吧属性绑定上去
// def __init__(self,name,score):
- 参数self
// __init__方法的第一个参数,在__init__方法内部将各种属性绑定到self,self指向创建的实例本身。
#Summary:
-类是创建实例的模板,而实例是一个个个具体的对象,各实例拥有的数据都相互独立,互不影响。
-方法是实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据。
-在 Python中,实例的变量名如果以 __ 开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

封装

  • 在类的内部定义访问数据的函数,这样就将“数据”封装起来了。
def print_score(self):
    print("%s %s"%(self.name,self.score))

封装的另一个好处是可以为类增添新的方法。

访问控制

- 实例的变量名如果以 __ 开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问
- 确保外部代码不能随意修改对象内部的状态,通过访问限制的保护,使代码更加健壮。
- 但还是可以通过在类中添加方法来访问

继承

  继承最大的好处是子类获得了父类的全部功能。但也可以给子类添加方法,当子类和父类存在相同的方法时,子类的方法会覆盖父类的方法。

多态

  • 在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就不行。
  • 调用方只管调用,不管细节

Summary

  • 有了继承,才能有多态。在调用类实例方法的时候,尽量把变量视作父类类型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容