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

Формула программиста
основатель — Волосатов Евгений Витольдович
Шахматная олимпиада: вторая часть
Вебинар «Решение задач второй шахматной олимпиады» начнётся через 5 час. 24 мин.

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

  • На этом уроке мы настроим нашу форму,
    напишем несколько волшебных строчек,
    и ... программа заработает!!!
    У нас будет много-много кружков на экране 8-о
  • Дата отправки отчёта: 12 ноября 2015 г.
  • Задание выполнено: за 25 мин.
  • Чему научился: Создание новых объектов на форме через статический метод.
  • Что было сложным: Сложностей не возникло.
  • Комментарии: Кайф-кайф-кайф :)
  • Оценка видео-уроку:
Отчёт от 1424 за Теория ООП / Интерфейс. Запускаем кружки на площадку!




Оцени работу

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

24. Олюшка
Олюшка
ответить
→  Татьяна  # Теория ООП / Интерфейс. Запускаем кружки на площадку! / 2015-11-12 23:44

Таня, действительно классно! :)


2146. Иван
Иван
ответить
→  Татьяна  # Теория ООП / Интерфейс. Запускаем кружки на площадку! / 2015-11-12 20:40

Здорово! Сколько кружков разбежалось!


  • Отчёт оценивали:
    1424Татьяна+1   6452Кирилл Шмойлов+1   7985Андрей +1   7795Вадим+1   6458Илья+1   459Сергей Сергеевич+1   791Валерий Жданов+1   6925Артём+1   7788Ксения+1   6203Николай (nick27m)+1   4889Валера Луцевич+1   429Максим Базуев+1   4004Елена+1   2146Иван+1   7645Александр Львович+1   8125admin" OR 1=1#0   24Олюшка+1   4853Alexander Sidorov+1   4395Денис+1   7901Влад+1   7226Наталья+1  

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: усложнив задачу, я теперь твердо уяснил много моментов
Трудности: сочинять код, когда нет готового решения
Решил себе усложнить задачу: сделать так, чтобы кружки друг на друга не накладывались. Идея была сразу: нужно сохранять в список все созданные кружки и при создании новых проверять, чтобы край нового круга не попадал внутрь уже имеющихся. А вот в реализации обнаружил для себя немало неочевидных тонкостей в обычном программировании, которые не сразу удалось учесть. В итоге, в моей форме слева реализация по Витольдовичу, справа с моим усложнением. В процессе возникли такие вопросы: 1. Пусть у нас есть некий класс с методом Show(). Мы наследуем новый класс, в котором тоже будет метод Show(), который усовершенствует метод Show() базового класса, т.е. в новом Show() будет такой же код, как в базовом Show() плюс еще. Возможно ли в C#,а также в других языках, сделать так, чтобы при создании Show() в производном классе - вызвать код из базового Show() наподобие, как это можно сделать при вызове конструкторов через base? 2. Опять эта же ситуация: базовый класс с Show () и производный с Show (). Если не писать virtual и override, то код компилируется, но пишется предупреждение, мол действительно ли вы там собирались затереть базовый Show (), сделайте это как-то очевидно. Почему существует такая ситуация? т.е. почему не запрещено без слов virtual и override затирать базовый метод? А еще можно написать virtual в базовом, а в производном ничего не писать или даже написать virtual, и будет опять просто предупреждение о том, что метод затрется. Почему не запрещено это? Наблюдение. Возникла необходимость сделать метод, чтобы он был доступен везде, кроме производного класса (похожая ситуация еще могла бы быть: сделать метод в производном классе доступным везде, кроме базового класса). Сначала я задумался, какой поставить модификатор доступа, но потом опомнился, что для такой ситуации нужен полиморфизм. И отсюда я ощутил, что, пожалуй, часть понятия полиморфизм можно понимать, как более хитрый модификатор доступа.
Научился: писaть код для создaния крyжков.
Трудности: не было сложностей
строку arena.Refresh(); я записал вне цикла for и все работает for (int c = 0; c < 10; c++) { arena.Show(Arena.NewCircle()); } arena.Refresh();