Дебаг, дебаг, и еще раз дебаг

  • 8
  • Недоступна
Снова и снова мы ищем чужие ошибки и исправляем их... Такова наша программистская доля. Наша программа снова выводит что-то не то: закралась ошибка (всего одна!). Найти и обезвредить! Для этого воспользуйтесь дебаггером IntelliJ IDEA.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (71)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Николай19 уровень
5 февраля, 09:04
Шикарная задача на понимание применимости модификаторов
Павел Гордиевич20 уровень, Минск
5 февраля, 08:05
Очень хорошая статья для понимания переопределения методов http://pr0java.blogspot.com/2015/07/blog-post_6.html
S3R3N1TY22 уровень, Санкт-Петербург
21 января, 20:23
Интересная задача, решил сам через дебагер, когда увидел что во время работы конструктора класса A вызывается intialize класса B. Не читайте требования к задаче, уже после увидел что там есть ответ !
Yaroslav Tolstik18 уровень, Минск
1 февраля, 18:19
ты сам нормально так подсказал))))
Anton Lukyanov23 уровень, Гомель
3 ноября 2018, 20:19
и почему в лекциях не было пояснений подобных ошибок? прошелся дебагером, понял что вызывается метод дочернего класса, а не тот, что задумывался, но совершенно не понял как исправить это, а все потому, что нигде не было информации про особую связь private методов и переопределенных методов с расширенным модификатором доступа. Если я не прав, и где-то в лекциях это объясняли, то плиз дайте ссылку
Игорь16 уровень
3 февраля, 19:15
Я тоже сразу не понял. Потом перечитал лекцию про модификаторы доступа, которая была на этом уровне https://javarush.ru/quests/lectures/questcore.level05.lecture01 Там оказывается для модификатора private четко указано "Это самая высокая степень закрытости – только свой класс. Такие методы не наследуются и не переопределяются. Доступ к ним из класса-наследника также невозможен." Например, если указать private для initialize() в классе A, а потом попытаться написать @Override перед методом initialize() в классе B, то мы увидим, что компилятор выдает ошибку. То есть система не видит, чтобы у класса A был аналогичный метод и без @Override выполняется не переопределение, а создание нового метода.
Anton20 уровень, Москва
3 октября 2018, 17:56
В замечательном объяснении Антона Никольского (ниже) кроется второй вариант решения задачи (хоть и более кривой, чем замена модификатора доступа): увидев после пробежки дебагером что вызывается метод класса B - я просто расставил статики, а в конструкторе класса А инициировал явный вызов метода initialize именно класа А (А.initialize()). Вывод на экран получился 6 и 9, но валидатор вряд ли принял бы, ибо не соответствовало требованиям). Как и писали ниже - хорошо сначала попытаться решить, потом прочитать требования, а потом уже скормить валидатору... Интересные решения могут открыться=)
Alexey19 уровень, Москва
30 сентября 2018, 20:48
А почему в task1524 перед вызовом конструктора Solution инициализируются не статические переменные name, i , а здесь сразу идёт вызов конструктора?
IceBerg25 уровень, Днепр
24 декабря 2018, 13:06
Разве? До вызова конструктора они равны "0" и "null"
Alexander Sedov30 уровень, Москва
7 августа 2018, 11:42
чтобы понять, переименуйте все переменные, чтобы не было каши шифт+ф6
Василий -23 уровень, Москва
24 июня 2018, 09:40
Больше бы таких задач
Ilya17 уровень, Москва
21 апреля 2018, 13:42
Побольше бы таких задач.
Ilgar16 уровень
18 мая 2018, 01:14
ya reshil zadachu lutshe chem 22 % , chestno sam ne ponyal nichego.
Александр16 уровень, Казань
3 января, 15:32
это уже классика)
Dinar19 уровень, Уфа
3 апреля 2018, 06:07
Почему любая задача компилируется в среднем по 30 секунд? В примерах на ютуб два числа выводятся мгновенно.
Boris19 уровень
23 августа 2018, 17:40
всё зависит от того какой у вас процесор , сколько ГБ RAM и если у вас жёсткий диск SSD, по этому на макинтош разрабы любят програмировать там ССД что увеличивает работу компа в разы!
Gatis17 уровень
13 декабря 2018, 00:26
A cto tebe nepozvolaet na Windows PC postavitj SSD ?
Sergo17 уровень, Санкт-Петербург
24 января, 18:38
Совесть