Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java C和OOP需要一点澄清_Java_C_Oop_Procedural - Fatal编程技术网

Java C和OOP需要一点澄清

Java C和OOP需要一点澄清,java,c,oop,procedural,Java,C,Oop,Procedural,我目前正在做大量的C语言编程。我是一名本科生。我们学习的第一门语言是Java,现在我正在学习C 在Java中,我们为所述对象实例创建一个类及其字段变量(状态)和一组方法(或行为) < C >我们有一些非常相似的东西,我们有一个包含对象的结构(我想,我认为这是它的‘状态’或字段变量或‘TuffubTeTs’),我们有对象可以被传递来修改它的行为。 在C语言中,我可以通过数据隐藏或通过头文件共享来实现相同类型的“封装”和一种形式的“继承” 虽然我完全理解Java和C以非常不同的方式实现这一点,但我不

我目前正在做大量的C语言编程。我是一名本科生。我们学习的第一门语言是Java,现在我正在学习C

在Java中,我们为所述对象实例创建一个类及其字段变量(状态)和一组方法(或行为)

< C >我们有一些非常相似的东西,我们有一个包含对象的结构(我想,我认为这是它的‘状态’或字段变量或‘TuffubTeTs’),我们有对象可以被传递来修改它的行为。

在C语言中,我可以通过数据隐藏或通过头文件共享来实现相同类型的“封装”和一种形式的“继承”

虽然我完全理解Java和C以非常不同的方式实现这一点,但我不明白为什么C不是真正的OOP,而是程序化的

我觉得我错过了一些重要的事情。也许我不清楚程序编程是什么?或者我只是计划错了,或者使用C完全错了。很高兴知道

编辑:

我不会在每张海报上打字,而是将其添加到这里。非常感谢大家,我真的认为我遗漏了一些重要的概念。你们所有的帖子都很有意义,我觉得我有了更好的理解。非常感谢大家这么快的回复,并花时间回复这篇文章


再次感谢,我真的很感激

您可以用过程语言(或几乎任何语言)进行面向对象编程,但这更难,因为您需要自己做更多的工作

Java被大多数人认为是OOP语言,因为它直接支持封装、继承和多态性等OOP概念


C不被认为是OOP语言,因为虽然您可以使用它进行封装、继承和多态性,但该语言不提供帮助您实现这一点的构造。

当然,您可以在任何语言中使用面向对象编程技术(即使是纯机码)。不同之处在于,在Java中,对象是强制执行的,而在C中,它们只是一种可能的约定(您可以选择遵循或忽略)。

是的,我们可以实现Java或任何其他语言的功能,而在C中,它们以易用性著称。 这些语言使得使用封装、继承等概念变得更加容易。
这两种语言的最大差异是由于使用了不同的编程范式。C分解为函数,而JAVA分解为对象。C更倾向于面向过程,而JAVA更倾向于面向数据。

这一点已经得到了回答。@YoungHobbit或者,在C中,一切都是对象。而且,类不定义对象。对象是与以下内容相关的类(或类型,取决于语言)的实例: