Java为什么不是纯面向对象语言?

13

我认为Java是纯面向对象的,但实际上它并不是。但我不知道为什么Java不是纯面向对象的语言,请帮我找出原因。

我认为Java不是纯面向对象的语言的原因在于它仍然具有基本数据类型,这些类型不是对象。此外,Java还有静态方法和变量,它们与类本身而非类的实例相关联。这些特征使得Java无法完全符合纯面向对象的标准。

你对纯面向对象的定义是什么?为什么你认为Java不是纯面向对象的?有任何参考资料吗? - RBaarda
1
请看这里一个类似的问题:https://dev59.com/U3NA5IYBdhLWcg3wZ9DU - slothrop
这是你的第二个问题,将会被关闭。你应该好好想一想。 - Peter Knego
2
我支持关闭,因为在SO上经常被问到 - 但不是因为这个原因:这是一个非常真实的问题。请关闭投票者花时间找到重复的问题,这比让问题被踩和关闭更有帮助。 - Andreas Dolk
因此,面向对象编程语言总是处理对象,也就是说,每个东西都应该是对象。然而,在Java中,我们使用的是原始数据类型(int、float)而不是对象,所以Java不是纯粹的面向对象编程语言,但比C语言更支持面向对象编程。因此,Java引入了包装类(Integer等)的概念来解决这些非对象数据类型的问题。 - Puneet Purohit
3个回答

23

这是一个作业问题,对吧?

因为原始类型。例如试试这个:

int i = 42;
System.err.println(i.toString());

2
+1 因为你举了一个例子 - Waldheinz
难以理解“这是一个作业问题,对吗?”的意义。 - ChiefTwoPencils

3
通常的反对意见是,Java不是“纯粹”的面向对象,因为它有原始类型(int、double等),这些类型不是对象。

1
为了通过反证法:Java有“int”,而“int”像Java中的所有原始类型一样,不是一个“Object”。可能还有更多的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接