2013-05-13 3 views
1

Если бы посмотрел, и я не могу найти вопрос, который будет таким же, как этот. Мой вопрос о int[] в Java.Is int [] объект?

При создании int[], можно использовать следующий синтаксис:

int[] x = new int[5]; 

методов, которые являются частью int[] также заставляют меня думать, что это Object, но не следовать именования Java для классов, что меня пугает. Это также массив примитивного типа, который можно использовать как примитив.

Является ли int[] (или любой примитивный массив, я думаю) объектом или примитивом?

+9

http://stackoverflow.com/questions/8781022/is-an-array-an-object-in-java –

+0

Ну, это так. Быстро закрывается! – christopher

+1

'System.out.println (x instanceof Object);' дает 'true' =) –

ответ

7

Массив в Java является подклассом Object, поэтому это тип объекта, даже если он содержит примитивные типы. Вы можете это проверить:

int[] x = new int[5]; 
if (x instanceof Object) 
    System.out.println("It's an Object!"); 
3

Все массивы в Java считаются объектами. Вы можете увидеть это in the Java Language Specification, Ch. 10:

В языке программирования Java, массивы являются объектами (§4.3.1), динамически создаваемые и могут быть отнесены к переменным типа Object (§4.3.2). Все методы класса Object могут быть вызваны в массиве.

Тип int[] является подклассом Object, который имеет все метод от Object. Хотя синтаксически он отличается от других типов объектов (например, имя имеет примитивный тип, указанный в нем, и нет определения класса), язык Java рассматривает их как объекты.

Надеюсь, это поможет!

-1
int[] x = new int[5]; 

Object a=(Object)x; 

int[] y= (int[])a; 
+2

Это не полезно и только указывает, что спрашивал пользователь. Это не отвечает на их вопрос. –

0

«Массив представляет собой объект-контейнер, который содержит определенное количество значений одного типа.». Это, как массив определен в oracle tutorials .so не только примитивный массив, но и объект массива является сам объект ,