Почему в Java нет блочных деклараций переменных?

Следующий метод не работает, потому что внутренний блок объявляет переменную с тем же именем, что и во внешнем блоке. Очевидно, что переменные принадлежат методу или классу, в котором они объявлены, а не блоку, в котором они объявлены, поэтому я могуt написать небольшой небольшой временный блок для отладки, который на мгновение отбрасывает переменную во внешней области видимости в тень:

void methodName() {
  int i = 7;
  for (int j = 0; j < 10; j++) {
    int i = j * 2;
  }
}

Почти каждый блокобластный язык I 'Мы когда-либо использовали это, в том числе тривиальные маленькие языки, для которых я писал интерпретаторы и компиляторы в школе. Perl может сделать это, как и Scheme, и даже C. Даже PL / SQL поддерживает это!

Какие'Является ли обоснование этого дизайнерского решения для Java?

Редактировать: как кто-то указал, Java имеет блок-область видимости. Какие'имя для концепции яя спрашиваю о? Хотел бы я вспомнить больше из этих уроков языкового дизайна. :)

Ответы на вопрос(6)

Ваш ответ на вопрос