我想知道Java是否是纯面向对象的。请举例说明。我已经看过了,但我找不到确切的答案。
4 回答
关于 Java 是否纯粹面向对象存在很多争论。Java 应该被视为纯粹的面向对象语言,因为它具有包装类。所以你可以用Integer
, Float
etc. 代替int
, float
etc. (一共有八种原始类型)。
但是由于 Java 有这八种原始类型,批评者会说 Java 不是纯粹的面向对象的。
例如,它包含 8 种原始数据类型。对于“纯 oo ”的语言来说,一切都应该作为对象存在,但是int
, float
, char
, .. 等在 Java 中不是对象。
这是一个例子:
int i = 42;
System.err.println(i.toString());
Java 是一种 OOP 语言,它不是纯粹的基于对象的编程语言。许多语言都是面向对象的。纯面向对象的编程语言需要满足七个品质。他们是:
- 封装/数据隐藏
- 遗产
- 多态性
- 抽象
- 所有预定义的类型都是对象
- 所有操作都是通过向对象发送消息来执行的
- 所有用户定义的类型都是对象。
Java 不是因为它支持使用原始数据类型,例如 int、byte、long... 等,它们不是对象。与像 Smalltalk 这样的纯 OOP 语言相比,没有原始类型,布尔、int 和方法都是对象。
此答案取自http://wiki.answers.com/Q/Why_is_Java_not_a_pure_OOP_Language
不,它具有原始数据类型,因此我会说它不是完全面向对象的。我认为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