C和OOP需要一点澄清

时间:2015-12-14 09:39:51

标签: java c oop procedural

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

在Java中,我们为对象的实例创建一个类及其字段变量(state)和一堆方法(或行为)。

在C中我们有一些非常相似的东西,我们有一个包含我们对象的结构(我想,我认为这是'状态'或字段变量或'attrubutes')我们有函数可以传递对象改变其行为。

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

虽然我完全理解Java和C以非常不同的方式实现这一点,但我很困惑为什么C不是真正被认为是OOP而是程序性的。

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

编辑:

我不会在每张海报上打字,而只是在这里添加。非常感谢你们,老实说我以为我错过了一些重要的概念。你们所有的帖子都有意义,我觉得我有更好的理解。非常感谢你们这么快回答并花时间回复这篇文章。

再次感谢,我真的很感激!

3 个答案:

答案 0 :(得分:7)

你可以用程序语言(或几乎任何语言)进行面向对象的编程,这只是更难,因为你必须自己做更多的管道。

Java被认为是一种OOP语言(大多数人都认为),因为它提供了对封装,继承和多态等OOP概念的直接支持。

çISN&#39;吨认为是一个面向对象的语言,因为当你的可以的做封装,继承和多态与它的语言没有按&#39;:T提供结构来帮助你做到这一点< / p>

答案 1 :(得分:1)

是的,我们可以实现Java或C中已知的任何其他语言的功能,但唯一需要注意的重点是易用性。 这些语言使得使用封装,继承等概念变得更加容易。 由于使用了不同的编程范例,两种语言之间出现了最大的差异。当JAVA分解为对象时,C分解为函数。 C更加面向程序,而JAVA是面向数据的。

答案 2 :(得分:0)

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