什么是面向对象,什么是面向过程,区别是什么?
面向过程编程的核心就是把要实现的事情拆分成一个个步骤依次完成,但是随着程序长度和逻辑复杂度的增加,代码的清晰度可能会降低。
面向对象编程的话,相比过程,它以对象为核心,第一步并不会聚焦于要干什么,而是先考虑各个对象有什么性质、能做什么事情。有了对象就可以通过对象来访问它的数据,在逻辑或信息复杂的时候可以使逻辑和数据的后续流动更加清晰。
类:是对对象的抽象 对象:对象是类的具体 eg.类:猫 对象:花猫 白猫 黑猫
属性:对象拥有的性质(类里面的变量) 方法:对象能做些什么(类里面的函数)
Eg.洗衣服(面向过程编程)
开机 —— 清洗——烘干(一步一步来)
面向对象编程:人和洗衣机都是执行事物的对象,人能放东西和开机,洗衣机能清洗和烘干,这些可以作为类的方法被定义出来。
面向过程是编年体(我国传统史书的一种体裁,按年、月、日编排记述史实)、面向对象是纪传体(通过记叙人物活动反映历史事件的体裁。)。
面向对象的特点:封装、继承、多态
封装:写类的人将内部实现细节隐藏起来,使用类的人只通过外部接口访问和使用,(接口可以被大致理解为提供使用的方法)封装能减少我们对不必要细节的精力投入。Eg.有人写好了洗衣机这个类,你只需要知道洗衣机怎么用就够了,不需要知道洗衣机是怎么生产的。
继承:面向对象编程允许创建有层次的类,就像现实中的儿子继承爸爸,类也可以有子类和父类来表示从属关系。Eg.创建一个叫学生的父类,可以分别让小学生和大学生去继承这个类。父类的属性和方法都可以被继承,不需要反复定义,减少代码的冗余。
多态:同样的接口因为对象具体类的不同而有不同的表现。面向对象编程的多态让你可以无需判断,统一调用同一名称的方法。
面向对象也不一定优于面向过程,要根据使用场景的不同来选择。
参考:某站Up主:林粒粒呀
声明:仅供学习使用。