面向对象和面向过程:(自我理解,仅供参考)
面向对象:这里不能把对象通俗的理解为某一个事物,如男/女朋友,俗话说"万物皆对象."
面向对象是一个特别抽象的概念,打个比方:
比如我喜欢一种美食,我在我的观念里可以脑补它的酸甜辣的程度,口感以及咀嚼
时的感觉,而我通过语言告诉你这个东西是酸的还是辣的,这个东西不存在,只是我心中
所想象出来的,我对它很清楚,但通过语言告诉你,你并不会知道这个东西是什么样的.所
以说,面向对象是一种抽象的概念.
而面向过程呢,就是指我脑补出来的这个东西,比如我要吃到它,首先我应该想好需
要准备什么食材,调料,然后去超市购买,回来以后先给他洗干净,然后需不需要腌制呀,
去腥呀,然后是煮还是炒,放多少调料,这个过程就是面向过程.
举个简单的例子
有一天你想吃水煮肉片了,你有两种选择:
1.去饭店说:老板,来份水煮肉片,然后就可以吃了
2.去菜市场买肉,水煮肉片调料,豆芽,白菜,豆腐皮等等,然后回家自己做
1就是面向对象 而2就是面向过程
面向对象和面向过程的优缺点:
面向过程:
优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。
缺点:不易维护、不易复用、不易扩展.
面向对象:
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 .
缺点:性能比面向过程差
面向对象OOP的三大特征:
可以这样理解:我是一个上帝,我需要造人.人需要有五官,四肢等特征,我就要根据这些特征进行造人
,不能胡编乱造也就是(封装),其次需要造的数量太多了,我一个人忙不过来,我就需要一些帮手,但我
不想把这个方法教给我的帮手,我就造好模板,然后让帮手去造四肢五官,这就是(继承),然后我造出来
的人都太相似,没有自己的独特点,我就想着在原有基础上进行修改,就有个男人,女人,高的,矮的,胖的
瘦的等不同的人,并且这些特征会随着父母遗传给下一代(多态)
封装
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
<>继承
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
多态
多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。