2015-04-03 2 views
3

Java documentation говорит, что идентификатор «Имя элемента в программе, написанной на языке программирования Java (TM)», но это не указывает, считается ли что-то из формы myList[0] как имя для первого элемента myList , Итак, делает myList[0] как идентификатор?Являются ли идентификаторы элементов массива в java?

ответ

6

myList[0] не является идентификатором. Это array access expression. Идентификатор в этом случае равен myList.

+1

Примечание: хотя это не идентификатор, 'arr [i]' по-прежнему является «переменной» для JLS: «Эта * результирующая переменная *, которая является компонентом массива ..», что, возможно, может привести к к неправильной терминологии, если предполагается, что «переменная» подразумевает идентификатор. – user2864740

+0

@ user2864740 Вы уверены, что 'arr [i]' является переменной? В [java glossary of terms] (http://docs.oracle.com/javase/tutorial/information/glossary.html) говорится, что переменная представляет собой «элемент данных, названный идентификатором» и «arr [i] 'не кажется названным идентификатором. Я попытался найти определение в Спецификации языка Java, но не смог найти, если. – Kelmikra

+2

@ Kyth'Py1k [Здесь] (http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12) - это определение переменной в JLS. – manouti

1

Нет, myList является идентификатором массива, myList [0] относится к элементу внутри индекса 0 этого массива, который ссылается на тип значения.

1

Конечным местом для проверки этих определений является JLS (Java Language Specification), а не учебник, который, естественно, менее формален.

Согласно указанной спецификации идентификатор не содержит скобки. Поэтому myList[0] не является идентификатором.

Смежные вопросы