2014-01-31 3 views
0

В сети вопрос о том, являются ли массивы объектами или переменными, противоречивы. Являются ли массивы объектами или переменными?Массивы: объекты или переменные

Blue Pelican Java book утверждает, что они являются переменными, но они должны быть созданы, поэтому я не уверен.

+1

Что вы имеете в виду * «объекты или переменные» *? Знаете, они не совсем взаимоисключающие? – ADTC

+0

Я думаю, что это интересный вопрос, и я мог бы спросить, когда я впервые изучал объектно-ориентированное программирование много лет назад. Прочитайте ответы, они все в порядке, но освещают вопрос по-разному. – GSP

+0

Можете ли вы привести конкретную часть книги, в которой говорится, что массивы являются переменными? Массивы - это еще один добрый объект, а ссылки на них хранятся в переменных, как ссылки на любой другой объект. –

ответ

2

Я думаю JavaDocs ясно, что в одном предложении

Массив представляет собой объект-контейнер, который содержит определенное количество значений одного типа

1

Во-первых, экземпляр массива является полноправным объектом в Java.

Во-вторых, массив может быть типом переменной (но не переменной). В этом случае, когда переменная создается, она укажет на экземпляр массива (который является объектом).

1

Я думаю, что массивы - это объекты.

0

Простыми словами, переменная - это то, как вы объявляете объект и получаете к нему доступ. Таким образом, они не являются двумя взаимоисключающими вещами.

Массив - это объект, и вы можете использовать переменную для доступа к ней. В то время как массив является объектом, он может содержать значения примитивных типов (пример int[]) или может содержать объекты типа класса (пример String[])

int[] arr1 = new int[2]; 
System.out.println(arr1[0]); //output: 0 

Это создаст объект массива, который может содержать два значения примитивный тип int. Доступ к объекту массива можно получить с помощью переменной arr1. Поскольку массив содержит примитивы, они будут инициализированы значением по умолчанию 0 (или false для boolean).

String[] arr2 = new String[2]; 
System.out.println(arr2[0]); //output: null 

Это создаст объект массив, который содержит два объекта класса типа String. Объект массива можно получить с помощью переменной arr2. Поскольку массив хранит объекты, изначально он будет содержать null, что означает отсутствие объекта.

More about arrays from The Java Tutorials

0

Попробуйте этот код, чтобы проверить, является ли массив объект или нет.

String[] str=new String[] {"A","B","X"}; 
if (str instanceof Object){ 
    System.out.println("Yes!"); 
}else{ 
    System.out.println("No!"); 
} 
+0

Вы понимаете, что это будет скомпилировано, только если вы используете ссылку на объект перед 'instanceof'? Другими словами, он всегда будет печатать 'Yes!' (Ну, если str не является «null»). – Piovezan

+0

«Да!». Это означает, что массивы - это объекты. –

+0

Я точно знаю, что это будет работать для всего остального, кроме ссылки «null» (для примитивных типов она даже не будет компилироваться). – Piovezan

1

, когда вы спрашиваете: «Являются ли массивы объектами или переменными?» Я думаю, вы имеете в виду «Are arrays objects», или примитивных типов данных? »

Массивы являются объектами и относятся к коллекции примитивных типов данных или других объектов.

Массивы могут хранить два типа данных:

  • набор примитивных типов данных
  • Коллекция объектов
Смежные вопросы