写在开头,主要的是为了记录,整个学习路线参考github:https://github.com/Snailclimb/JavaGuide。
面向过程(Process Oriented):按照问题解决的步骤,按照步骤解决的顺序,依次调用函数 。比较适用于便底层的开发,单片机、嵌入式、linux/Unix。因为面向对象编程时类调用需要实例化,这时的开销比较大(实例化一个类实际上是一个递归的过程,依次往上准备实例化父类,直至Object类;此时才正式开始实例化,从Object类向下正式开始实例化,而每执行一个实例化,依次执行实例变量初始化和实例代码初始化,再执行构造函数初始化)。
面向对象(Object Oriented):模块化设计。实际工作时不可能仅仅考虑性能,开发效率也是重要的考虑因素(面向对象易维护,易复用,易扩展)。有封装(信息隐藏,利用抽象数据类型将数据和基于数据的操作封装在一起,尽可能隐藏内部细节,只保留一些对外的接口。有降低耦合,类的内部结构自由修改,可以对成员更精确的控制,隐藏信息,实现细节优点)、继承(使用已存在的类为基础建立新类的技术,新类的定义可以增加新的数据和功能,也可以用父类的功能)、多态(引用变量到底会指向哪一个类的实例对象)