2

看了一下,我似乎找不到与此相同的问题。我的问题是关于int[]Java 的。

创建 时int[],使用以下语法:

int[] x = new int[5];

作为其中一部分的方法int[]也让我认为它是一个Object,但它不遵循类的 Java 命名约定,这让我感到困惑。它也是一个原始类型的数组,可以像原始类型一样使用。

(或我猜的int[]任何原始数组)是对象还是原始数组?

4

4 回答 4

8

Java 中的数组是 的子类Object,因此它是对象类型——即使它包含原始类型。你可以检查这个:

int[] x = new int[5];
if (x instanceof Object)
    System.out.println("It's an Object!");
于 2013-05-13T17:33:55.630 回答
3

Java 中的所有数组都被视为对象。您可以在 Java 语言规范 Ch. 中看到这一点。10:

在 Java 编程语言中,数组是对象(第 4.3.1 节),是动态创建的,并且可以分配给 Object 类型的变量(第 4.3.2 节)。Object 类的所有方法都可以在数组上调用。

该类型int[]Object具有所有方法的子类 from Object。尽管在语法上它看起来与其他对象类型不同(例如,名称中列出了一个原始类型并且没有类定义),但 Java 语言确实将它们视为对象。

希望这可以帮助!

于 2013-05-13T17:35:50.083 回答
0

“数组是一个容器对象,它包含固定数量的单一类型值。”这就是在oracle教程中定义数组的方式。因此,不仅原始数组而且对象数组都是对象本身。

于 2013-05-13T17:43:51.417 回答
-1
int[] x = new int[5];

Object a=(Object)x;

int[] y= (int[])a;
于 2013-05-13T17:36:46.220 回答