什么是面向对象编程?
Object Oriented Programming,简称OOP,即面向对象编程。和面向对象编程相对的是面向过程编程。
那么,什么才是面向对象编程?要想了解这个问题我们要先了解面向过程。
举个最简单点的例子来区分面向过程和面向对象
有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择
1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
2、去饭店,张开嘴:老板!来一份鱼香肉丝!
看出来区别了吗?1是面向过程,2是面向对象
面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。
面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。
面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。
面向过程和面向对象的区别:
面向过程
优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。
缺点:不易维护、不易复用、不易扩展
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程差
面向对象三大特性五大原则是什么?
面向对象的三大特性:封装, 继承,多态
1.封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性
2.继承
把公共的方法或者属性当做父类,子类继承父类;提高代码复用性
3.多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。
五大基本原则
1.单一职责原则
2.开放封闭原则
3.里氏替换原则
4.依赖倒置原则
5接口分离原则