Является ли main действительным идентификатором Java? - PullRequest
0 голосов
/ 10 сентября 2018

Один из моих детей учится на Яве в старшей школе, и у него было одно из испытаний:

Что из перечисленного является допустимым идентификатором в Java?

а. 123java
б. main
с. java1234
д. {abce
е. )whoot

Он ответил b и ошибся.

Я посмотрел на вопрос и утверждал, что main является действительным идентификатором и что он должен был быть правильным.

Мы посмотрели на Java spec для идентификаторов, и это укрепило эту точку. Мы также написали пример программы, в которой была переменная с именем main, а также метод. Он создал письменное опровержение, включающее ссылку на документацию по Java, тестовую программу, и учитель проигнорировал ее и сказал, что ответ по-прежнему неверен.

Является ли main действительным идентификатором?

Ответы [ 12 ]

0 голосов
/ 10 сентября 2018

main совершенно допустимо, поскольку оно из документов :

  1. представляет собой «последовательность букв Java и цифр Java, первая из которых - буква Java"
  2. Не является ключевым словом
  3. Не является логическим литералом , то есть" true "или" false "
  4. Не является нулевой литерал
0 голосов
/ 10 сентября 2018

main является допустимым идентификатором Java, и учитель не прав.

Соответствующая документация находится в Спецификации языка Java, прямо здесь:

Глава 3. «Лексическая структура», раздел 3.8. "Идентификаторы":

https://docs.oracle.com/javase/specs/jls/se10/html/jls-3.html#jls-3.8

Там написано:

Идентификатор представляет собой последовательность букв Java и цифр Java неограниченной длины, первая из которых должна быть буквой Java ... Идентификатор не может иметь такое же написание (последовательность символов Unicode), что и ключевое слово (§3.9), логический литерал (§3.10.3), либо нулевой литерал (§3.10.7), либо возникает ошибка времени компиляции.

Это означает, что вы можете доказать, что это действительный идентификатор, используя его в качестве идентификатора и наблюдая, что при компиляции ошибки не происходит.

...