4

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

在 Java 中,我们为一个对象的实例创建了一个类,它是字段变量(状态)和一堆方法(或行为)。

在 C 中我们有一些非常相似的东西,我们有一个包含我们的对象的结构(我猜,我认为这是它的“状态”或字段变量或“属性”),我们有可以传递对象的函数来修改它的行为。

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

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

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

编辑:

我不会在每张海报上打字,而是将其添加到此处。非常感谢你们,老实说,我以为我错过了一些重要的概念。你们都说得有道理,我觉得我有更好的理解。非常感谢大家这么快回答并花时间回复这篇文章。

再次感谢我真的很感激!

4

3 回答 3

7

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

Java 被认为是一种 OOP 语言(大多数人),因为它直接支持 OOP 概念,如封装、继承和多态。

C 不被视为 OOP 语言,因为虽然您可以使用它进行封装、继承和多态性,但该语言不提供帮助您执行此操作的构造。

于 2015-12-14T09:44:02.533 回答
1

是的,我们可以实现 Java 或任何其他在 C 中众所周知的语言的功能,但唯一需要注意的主要一点是易用性。这些语言使封装、继承等概念的使用变得更加容易。两种语言的最大差异是由于使用了不同的编程范式而产生的。C分解为函数,而JAVA分解为对象。C 更面向过程,而 JAVA 更面向数据。

于 2015-12-14T09:56:54.993 回答
0

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

于 2015-12-14T09:46:03.067 回答