Сообщество Хекслета

Дмитрий Усков 04 июля 2015 →

А не забыли обработать ситуацию, когда на поле нет пустых ячеек, но и победителя нет?

Базыль Яськевіч 04 июля 2015 →

Оказывается, вложенные классы существуют только на уровне исходного кода. Виртуальная машина Java ничего не знает о вложенных классах. Она работает с обычными внешними классами. Для взаимодействия объектов вложенных классов компилятор вставляет в них специальные закрытые поля. Поэтому в локальных классах можно использовать только константы объемлющего метода, т. е. переменные, помеченные словом final . Виртуальная машина просто не догадается передавать изменяющиеся значения переменных в локальный класс. Таким образом не имеет смысла помечать вложенные классы private , все равно они выходят на самый внешний уровень.

Базыль Яськевіч 04 июля 2015 →

Чем отличаются вложенный (Nested) класс от других классов? Ответ "Его тело вложено в тело другого класса" нельзя рассматривать как отличительную особенность Nested класса от других, т.к. (по информации уважаемого товарища Ковалевского) существуют не-Nested классы, вложенные в тело другого класса.

Базыль Яськевіч 04 июля 2015 →

В какой части листинга кода тора рекомендует располагать вложенные классы?

Базыль Яськевіч 04 июля 2015 →

И ещё момент: в практике из-за огромного числа итераций в классе Main после нажатия на кнопку "Проверить" браузер Firefox не выдерживает и выбрасывает ошибку выполнения сценария.

Базыль Яськевіч 04 июля 2015 →

В практическом задании я попытался написать конструктор моего класса ArrayList, имплементирующего интерфейс IList. В конструкторе я хотел создать массив дефолтного размера и проинициализировать внутренние поля (размер хранилища и индекс последнего элемента).

public void ArrayList () {
  this.arrayStorage = new Object[DEFAULT_CAPACITY];
  this.capacity = DEFAULT_CAPACITY;
  this.lastIndex = -1;
}

Всё скомпилилось, но при выполнении конструктор полностью проигнорировался, хотя методы, которые я заимплементил, исправно вызывались. Я попробовал написать перед конструктором глупую строчку "@Override", что выдало ошибку при компиляции.

Вопрос: что нужно сделать, чтобы заставить вызываться конструктор класса ArrayList?

Андрей Абрамовских 04 июля 2015 →

Прекрасный рассказ! Реально захотелось сильнее изучать этот язык программирования! Продолжу и в будущем обязательно "ПОЖЕРТВУЮ" на развитие курса!

Игорь Пятигорец 04 июля 2015 →

Второй метод из практики, выводит только первый токен. Подскажите, как исправить? Спасибо.

    StringTokenizer st = new StringTokenizer(s);
    while (st.hasMoreTokens()) {
        StringBuilder sb = new StringBuilder().append(st.nextToken()).reverse();
        s = sb.toString();
        return s;
    }
    return String.valueOf(st);

}

Базыль Яськевіч 03 июля 2015 →

Класс должен быть абстрактным, если:
Содержит абстрактный метод
Хотя бы один метод не содержит тела

Поясните, пожалуйста, чем вариант ответа "Хотя бы один метод не содержит тела" отличается от "Лишь описывает сигнатуры методов"?! И почему если метод не содержит тела, то это обязательно должен быть абстрактный класс, а не интерфейс?

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →