这是本人在csdn上的第一篇博客
学习一定要做笔记,为了以后方便的查询和参考,而不至于为了寻找某个知识点的资料重复踩坑
俗话说:好记性不如烂笔头 , 站在岸上学不会游泳
多写多记,坚持不懈,成就自己
面向对象
- OOP:面向对象的编程
- OOA:面向对象的分析
- OOD:面向对象的设计
一切事物皆对象,将现实的事物抽象出来,把现实生活的事物以及关系,抽象成类,通过继承,实现,组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。
面向对象和面向过程的区别
面向过程性能优于面向对象(因为创建对象需要实例化,比较消耗资源),但不易复用、不易维护和拓展
面向对象具有封装、继承和多态性的特性,可以开发出低耦合的系统,比较灵活。
注意:面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。
面向对象的三大特性和五大原则
三大特性:继承、封装、多态性
五大原则:
-
单一职责原则SRP(Single Responsibility Principle)
类的功能要单一,不能包罗万象,跟杂货铺似的。 -
开放封闭原则OCP(Open-Close Principle)
一个模块对于拓展是开放的,对于修改是封闭的,想要增加功能热烈欢迎,想要修改不行 -
里式替换原则LSP(the Liskov Substitution Principle LSP)
子类可以替换父类出现在父类能够出现的任何地方。比如你能代表你爸去你姥姥家干活。 -
依赖倒置原则DIP(the Dependency Inversion Principle DIP)
高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。就是你出国要说你是中国人,而不能说你是哪个村子的。比如说中国人是抽象的,下面有具体的xx省,xx市,xx县。你要依赖的抽象是中国人,而不是你是xx村的。 -
接口分离原则ISP(the Interface Segregation Principle ISP)
设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。就比如一个手机拥有打电话,看视频,玩游戏等功能,把这几个功能拆分成不同的接口,比在一个接口里要好的多。
总结
- 抽象会使复杂的问题更加简单化。
- 从以前面向过程的执行者,变成了张张嘴的指挥者。
- 面向对象更符合人类的思维,面向过程则是机器的思想