听了几节试听课(真不错!)
敲代码跑仿真,梳理一下绿皮书面向对象部分。
一、OOP思想
OOP全称是Object Oriented Programming,即面向对象的编程。
与面向对象相对的是面向过程,下面举个例子:
比如有一天你想吃个菜包子,那么一般来说你有以下两种方法可以吃到这个菜包子:
1、自己做包子:买面粉,蔬菜和调料等,然后洗净、切菜、和面、发面、包包子,上锅蒸。面向过程
2、买现成的包子:去门口包子店买一个。面向对象
可以发现,面向过程是具体化的,为了实现一个目标或功能,你需要一步一步的去完成。
面向对象是抽象化的,省去了很多繁琐的细节,你只需要买一个包子就可以了,因为那些繁琐的细节已经被封装成一个对象了。至于里面的过程细节到底是什么,即师傅到底是怎么做出来的,我们不需要去知道,只管吃就行了。
面向过程&面向对象
因此:面向对象的底层其实还是面向过程,把面向过程抽象成一个对象,然后封装方便我们我们去使用。
二、相关概念
1.OOP的优势
封装(Encapsulation):以事务(transation)为单位,将类的属性和方法封装在一起。
继承(Inheritance):子类具有父类的属性和方法或者重新定义、追加属性和方法等。
多态(Polymorphism):同一个父类的函数可以体现为不同的行为。
2.OOP 的基本概念
类(Class):包含成员变量和成员方法的基本模块。
属性(Property):class中存储数据的变量。
方法(Method):class中的task/function。
句柄(Handle):是指向对象的指针,看成是实例的名字。
对象(Object):是类的一个实例,类需要例化才能使用。