21

我想知道Java是否是纯面向对象的。请举例说明。我已经看过了,但我找不到确切的答案。

4

4 回答 4

20

关于 Java 是否纯粹面向对象存在很多争论。Java 应该被视为纯粹的面向对象语言,因为它具有包装类。所以你可以用Integer, Floatetc. 代替int, floatetc. (一共有八种原始类型)。

但是由于 Java 有这八种原始类型,批评者会说 Java 不是纯粹的面向对象的。

于 2012-10-11T09:40:40.147 回答
15

例如,它包含 8 种原始数据类型。对于“纯 oo ”的语言来说,一切都应该作为对象存在,但是int, float, char, .. 等在 Java 中不是对象。

这是一个例子:

int i = 42;
System.err.println(i.toString());
于 2012-10-11T09:37:55.753 回答
9

Java 是一种 OOP 语言,它不是纯粹的基于对象的编程语言。许多语言都是面向对象的。纯面向对象的编程语言需要满足七个品质。他们是:

  • 封装/数据隐藏
  • 遗产
  • 多态性
  • 抽象
  • 所有预定义的类型都是对象
  • 所有操作都是通过向对象发送消息来执行的
  • 所有用户定义的类型都是对象。

Java 不是因为它支持使用原始数据类型,例如 int、byte、long... 等,它们不是对象。与像 Smalltalk 这样的纯 OOP 语言相比,没有原始类型,布尔、int 和方法都是对象。

此答案取自http://wiki.answers.com/Q/Why_is_Java_not_a_pure_OOP_Language

于 2012-10-11T09:39:47.520 回答
6

不,它具有原始数据类型,因此我会说它不是完全面向对象的。我认为Smalltalk可以被认为是面向对象而不是 java。

直接来自维基 Smalltalk is a "pure" object-oriented programming language, meaning that, unlike Java and C++, there is no difference between values which are objects and values which are primitive types. In Smalltalk, primitive values such as integers, booleans and characters are also objects

于 2012-10-11T09:39:08.823 回答