Java是纯粹的面向对象还是不是?

时间:2012-10-11 09:35:20

标签: java

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

4 个答案:

答案 0 :(得分:17)

关于Java是否纯粹面向对象,存在很多争论。 Java应该被认为是纯粹的面向对象语言,因为它有包装类。 因此,您可以使用IntegerFloat等代替intfloat等。(总共有八种基本类型)。

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

答案 1 :(得分:12)

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

以下是一个例子:

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

答案 2 :(得分:6)

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

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

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

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

答案 3 :(得分:5)

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

直接来自wiki 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