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

我想知道Java是否纯粹面向对象。 请用例子解释一下。 我已经瞪了它,但我找不到确切的答案。

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

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

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

这是一个例子:

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

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

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

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

这个答案来自http://wiki.answers.com/Q/Why_is_Java_not_a_pure_OOP_Language

不,它有原始数据类型,因此我会说它不完全面向对象。 我认为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 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