我只想知道天气java是否纯粹是面向对象编程,因为我们在java中有int,float等原始数据类型,有人说java不是纯粹的面向对象程序,但我知道原始数据类型也是对象“班级”班。 现在我的实际问题是,如果原始数据类型也是“Class”类的对象,那么我们不能使用任何集合类来存储和检索它们?当我们尝试在任何集合类中存储任何原始类型时,为什么会发生自动装箱?这意味着作为集合文档说如果我们只能在集合类中存储对象而不是原始数据类型,那么数据类型不再被视为对象.. !! ??
答案 0 :(得分:1)
这些原始类型具有包装类。
int - java.lang.Integer
float - java.lang.Float
这样,您实际上可以拥有List<Integer>
等等。
答案 1 :(得分:1)
我将纯度定义为编程语言偏离纯粹面向对象编程的程度,该编程语言仅包含对象和消息传递。换句话说,
与Smalltalk和Self相比,Java远非纯粹的OO语言,但与C ++相比可能更接近,所以它向前迈进了一步。例如,在Smalltalk中,通过消息传递完成对象的创建:
| window |
window := Window new.
window label: 'Hello'.
window open
在现代编程中,我认为与纯OO更接近的概念是Erlang或Akka的演员模型。我写了一段时间的博客文章:what is object-oriented programming?
答案 2 :(得分:0)
建议您查看这篇文章:What's the difference between primitive and reference types?。为了回答你的原始问题,除了引用类型之外,Java在原始类型方面不是“纯粹的”OO。但是,通过自动装箱,这对于该语言的用户来说几乎是透明的。