Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Теория ООП / Интерфейс. Запускаем кружки на площадку!

  • На этом уроке мы настроим нашу форму,
    напишем несколько волшебных строчек,
    и ... программа заработает!!!
    У нас будет много-много кружков на экране 8-о
  • Дата отправки отчёта: 2 ноября 2015 г.
  • Задание выполнено: за 5 час. 00 мин.
  • Чему научился: усложнив задачу, я теперь твердо уяснил много моментов
  • Что было сложным: сочинять код, когда нет готового решения
  • Комментарии: Решил себе усложнить задачу:
    сделать так, чтобы кружки друг на друга не накладывались.
    Идея была сразу: нужно сохранять в список все созданные кружки и при создании новых проверять, чтобы край нового круга не попадал внутрь уже имеющихся. А вот в реализации обнаружил для себя немало неочевидных тонкостей в обычном программировании, которые не сразу удалось учесть.
    В итоге, в моей форме слева реализация по Витольдовичу, справа с моим усложнением.

    В процессе возникли такие вопросы:
    1. Пусть у нас есть некий класс с методом Show(). Мы наследуем новый класс, в котором тоже будет метод Show(), который усовершенствует метод Show() базового класса, т.е. в новом Show() будет такой же код, как в базовом Show() плюс еще. Возможно ли в C#,а также в других языках, сделать так, чтобы  при создании Show() в производном классе - вызвать код из базового Show()  наподобие, как это можно сделать при вызове конструкторов через base?

    2. Опять эта же ситуация: базовый класс с Show () и производный с Show (). Если не писать virtual и override, то код компилируется, но пишется предупреждение, мол действительно ли вы там собирались затереть базовый Show (), сделайте это как-то очевидно. Почему существует такая ситуация? т.е. почему не запрещено без слов virtual и override затирать базовый метод?
    А еще можно написать virtual в базовом, а в производном ничего не писать или даже написать virtual, и будет опять просто предупреждение о том, что метод затрется. Почему не запрещено это?

    Наблюдение.
    Возникла необходимость сделать метод, чтобы он был доступен везде, кроме производного класса (похожая ситуация еще могла бы быть: сделать метод в производном классе доступным везде, кроме базового класса). Сначала я задумался, какой поставить модификатор доступа, но потом опомнился, что для такой ситуации нужен полиморфизм. И отсюда я ощутил, что, пожалуй, часть понятия полиморфизм можно понимать, как более хитрый модификатор доступа.
  • Оценка видео-уроку:
Отчёт от 4889 за Теория ООП / Интерфейс. Запускаем кружки на площадку!




Оцени работу

 
Сохранить страницу:

24. --
Олюшка
Олюшка
ответить
→  Валера Луцевич  # Теория ООП / Интерфейс. Запускаем кружки на площадку! / 2015-11-02 21:15

Валера, круто, мне нравится что ты сделал свое - с права!!! И меня на идеи натолкнул, хотя она у меня уже до этого появилась, тоже попробую все же реализовать! :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Валера Луцевич  # Теория ООП / Интерфейс. Запускаем кружки на площадку! / 2015-11-02 21:46

Валера, ты молодец, ты философ.
1. Конечно, можно вызывать базовый метод: base.Show ().
2. Это вопрос скорее к архитекторам си шарпа.


2146. --
Иван
Иван
ответить
→  Валера Луцевич  # Теория ООП / Интерфейс. Запускаем кружки на площадку! / 2015-11-02 22:29

Здорово! И ведь получилось! Очень классно!



Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Отображать кружки на экране.
Интересный рандом... некоторые зоны по несколько кружков друг в друге, а некоторые (в центре парочка) совсем пустые...


Научился: Повторил рисование, нарисовал кружки и инициализировал поле для игры.Пока дело до интерфейса не дошло, но чувствую скоро , скоро)
Трудности: Обидно за то,что был близок к результату, когда делал сам(Но зато теперь буду точно знать как это делается, и что нужно было через кнопку это реализовывать, а я пытался рисовать сразу после инициализации формы.