我不明白包装类和自动装箱?

时间:2011-11-24 13:00:50

标签: java

我正在读一本名为“两个学期的Java”的书,我真的不明白包装类和自动装箱。

你可以用一些代码向我解释一下吗?

这真的让我很烦恼:

Object [] anArray = new Object[20];
anArray[0] = new Integer (37);

Object在这里引用的是对象类,代码是为它创建数组吗?

我有了这本书,我有一点点理解,我只需要有人向我简要解释一下。如果我在线阅读,我会感到困惑。

3 个答案:

答案 0 :(得分:6)

包装类

包装类用于封装基本类型,以便可以针对它们定义操作。例如,ToString()方法在包装类中定义,但不能在基本类型上调用。

<强>自动装箱

Autoboxing允许在原始类型和包装类型之间自动转换

使用自动装箱

int i;
Integer j;
i = 1;
j = 2;
i = j;
j = i;

没有自动装箱

int i;
Integer j;
i = 1;
j = new Integer(2);
i = j.intValue();
j = new Integer(i)

关于问题的第二部分,

Object [] anArray = new Object[20];

定义的数组能够具有对象(在特定情况下它是20个对象),因此它允许在数组的每个位置保存任何对象,

anArray[0] = new Integer (37);

和Integer是Object的子类。因此它允许将Integer保留在数组

答案 1 :(得分:1)

Wrapper Classes用于将原始数据类型转换为对象,autoboxing意味着将原始数据类型隐式转换为等效的包装类对象,例如int将转换为Integer对象。

有关更多信息,请阅读以下文章:

Explain Wrapper Classes in Java

Java 5/J2SE 5.0 new features : Autoboxing

答案 2 :(得分:0)

Object是一个类,anArray被定义为一个包含20个对象的数组。这允许您在数组的每个索引中粘贴不同类型的东西,而不是强制每个索引都是完全相同的类型。在示例中,索引0设置为整数,但索引1可以设置为布尔值,例如。