请问面向对象编程和面向过程编程的函数调用有什么应用上的不同呢?

如题所述

来,我是自学的,对这种问题比较有理解,因为自学时,也搜索过这些问题,听他们官方大而全的解答,迷迷糊糊,听不懂,现在明白了,我以我的视角给你说说.
首先,面向对象编程,其中一定包括这面向过程编程...过程编程是最最基础,最最普遍的编程,就跟"我喝水容易,还是喝可乐容易这个蠢问题一样",可乐里面包含水,你多不会,你只要喝东西,里面就有水,你不用刻意去找,同样只要你写代码,那就有面向过程的思想
现在你懂了面向过程了,那了解下面向对象吧.其实这种思想很容易理解,那就是,把工作交给专业人士去做.
你把你的需求交给函数去做,这其实就是面向对象了,不过在c语言中,觉得这就叫面向对象了?也太low了吧,于是在java中,我们把有特定函数,特定属性的规定为类,这个类才叫对象的体现...
你懂了么?你可能会疑惑,你自己懂过程和对象的差别,你问的是两者函数调用的区别,为啥我要再给你解释下差别呢?原因就在于,我后面说的,需要这些知识做铺垫.
那么核心,有啥区别呢?我告诉你,你前面都可以不看,这句是我的核心观点,区别就是:过程编程是基石,是简单的,任何码农都会的技术,面向对象的函数是高级的,是封装的,用起来不那么简单,有一点费劲的方式.好了,说完了,有啥区别?没啥区别,都完成功能,都一样调用,可是java8最新版本,也在倡导过程编程,推出兰姆达表达式等等,为啥这么做?是说面向对象不好么?不,面向对象很好,但是他们想表达的就是,面向对象太高级了,而有些很简单的需求,并不要那么高级,基础的过程编程,就足够了,何必牛刀杀鸡?追问

面向对象的基本概念我懂得,我主要想问的是如果在纯C环境下编写一个函数,里面有结构体(属性集)和一堆函数(行为集),然后在main函数里调用这个函数,算不算面向对象

追答

算,不过别去较真,较真的话,对象应该拥有封装,继承,多态等众多特性,C完成不了,但是呢,面向对象是一种思想,你可以去模拟,只要有这种思想的影子在就可以,你百度,百分之九十五的人都说C不是面向对象的,是面向过程的.但是呢,以我的观点来看,面向对象始终是一个思想,不是一个切切实实的代码,java中有类,C也可以写类似的,java的类可以继承,可以多态,C也可以模拟啊,还是那句话,面向对象(思想),括号里的才重要,是一个思想,核心就是:你把专业的事细分出来,交给专业的人去做,就好了.你不用管人家内部怎么搞定的,你只需要知道,这个对象能用哪些资源完成那些事就行了,你把它需要的给他,他把你想要的给你,你们互相不影响内部运行就可以了,这样解释明白么?如果你深入学习学习对应的面向对象编程的语言,你就彻底明白为什么很多企业采用这种模式,因为它的进阶是面向接口思想,因为面向对象嘛,假如,你想计算1+1,你不需要找别人,我有一个类叫做add类,它需要两个参数,然后返回给你相加结果.但是有一天,你需求变了,你需要计算一加一,那么你只需要替换掉add为addchinese就行,因为这两个类都属于ADD接口,而你的程序中,参数写的不是add,也不是addchinese,而是ADD,所以当某一天add满足不了你了,你不用你该你的任何代码,你只需要把原来add换成addchinese就行了,因为你本来也要接受的是一个ADD接口的类,你明白了么?这就是面向对象进阶后的很多好处!!!你想学的话,我可以给你介绍介绍...多看看书,看看视频

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-12
如果单纯说调用其实都一样,new一个对象在调用 如果是 static那就直接调。
问题的重点,面向对象和 面向过程区别不是在于如何调用函数。
面向对象的重点是
封装(封装方法)
继承(就是把物体归类然后分支,比如 人类是大类,你就是一个分支,我也是一个分支)
多态(父类引用指向子类对象,这是类的多态)
不难看出,你是觉得面向过程简单,反而用面向对象的思维做比较难。
这样的原因是因为在程序非常小的时候,面向过程简单。
当你进入企业,进入工作后,会有非常多非常多的功能,模块。需要分活,张三负责登录
李四负责数据操作,等等等等。这时候才会体现出面向对象的好处。
另外一点:
面向对象只是一个思想,更深入的是面向接口,然后面向组件。追问

那如果在纯C环境下编写一个函数,里面有结构体(属性集)和一堆函数(行为集),然后在main函数里调用这个函数,算不算面向对象

追答

会了么?看懂了么?

不行我语音跟你说

追问

面向对象的基本概念我懂得,我主要想问的是如果在纯C环境下编写一个函数,里面有结构体(属性集)和一堆函数(行为集),然后在main函数里调用这个函数,算不算面向对象

本回答被网友采纳
相似回答