一.面向对象和面向过程的区别
面向过程:关注具体的实现过程
---优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低。
---缺点:很难解决非常复杂的业务逻辑,且软件元素之间的“耦合度”非常高,只要其中一环出问题,整个系统都受到影响,导致最终的软件扩展力差。另外,无法达到组件复用。
面向对象:关注对象能完成哪些实际的功能
---优点:“耦合度”低,扩展力强更容易解决现实世界中更复杂的业务逻辑。
---缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计。
注:C语言是纯面向过程、C++是半面向对象、Java是纯面向对象。
目前新出的语言都是面向对象的,因为人在认识现实世界的时候都是以面向对象的方式,这样更符合人的思维方式。
二.面向对象的三大特征
面向对象的分析:OOA,面向对象的设计:OOD,面向对象的编程:OOP
1.封装
---封装原理:将抽象性接口的实现细节部分包装、隐藏起来的方法,封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要想访问,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
---优点:i).减少耦合;ii).类内部的结构可以自由修改;iii).可以对成员变量实现更精确的控制;
---步骤:i).将属性设置为私有:只有本类才能访问ÿ