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

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта | Обход блокировки
Игровой комплекс Сокобан - Введи код скидки

Теория ООП / Рисователь снеговиков

  • На этом уроке мы реализуем метод Draw (Shape shape) через серию условных операторов.
    А также создадим функцию для рисования целевого спрайта (снеговика) - Draw (Shape [] shapes).
    Результат работы программы не изменяется, а вот содержимое кода всё более и более облагораживается.
  • Дата отправки отчёта: 2 октября 2015 г.
  • Задание выполнено: за 1 час. 00 мин.
  • Чему научился: Углубил знания о наследовании.
  • Что было сложным: ВСЁ!!! Всё было сложным! Понять как всё это работает!!!
  • Комментарии: Это кошмар какой-то! Я даже не знаю, как это назвать. Мы организовываем класс Shape от которого наследуем всё, при этом в классе ничего нет. То есть сёркл, лайн и бокс это фигуры, а шэйп - это как бы профигура (по аналогии с прокариотами), никакая фигура. И затем мы делаем массив никаких фигур! snowman1 = new Shape[7];
    Далее мы рисуем снеговика Draw(snowman1); С одной стороны всё хорошо, Рисуем (снеговик). все четко и понятно. НО с другой стороны мне надо держать в голове, что сноумэн1 это массив, и что будет вызвана функция
    Draw(Shape[] shapes) . Ага. А shapes[j] - это уже какой то элемент массива, и уже с ним будет вызвана другая функция, то есть строка Draw(shapes[j]); вызовет Draw(Shape shape). которая в свою очередь будет вызывать функции для рисования отдельных фигур.
    Я на это долго смотрел. Дооолго смотрел. ..... ..... ....  Нет, ну вот честно. Массив никаких фигур, а затем мы вызываем функцию, которая отрисовывает поэлементно, по дороге определяя тип... А-а-а-а....
    Ощущение, что в черепную коробку засунули гантелю, и она [коробка] стала очень тяжёлой...
  • Оценка видео-уроку:
Отчёт от 1901 за Теория ООП / Рисователь снеговиков




Оцени работу

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

24. Олюшка
Олюшка
ответить
→  Neverwinter 2  # Теория ООП / Рисователь снеговиков / 2015-10-02 13:28

Кирилл, все хорошо, главное не сильно напрягайся, у тебя все замечательно получилось, глубокое осознание придет с большим опытом, вот ты ходишь, ты же не задумываешься как ты передвигаешь ноги и какие мышцы у тебя задействованы и за что они отвечают, а это вообще очень сложный процесс, а ходишь и бегаешь ты на автомате и при этом еще думаешь о чем то и можешь при этого говорить по телефону и еще что-то делать... так и тут все также!
Знаю что все у тебя уже хорошо, а дальше еще лучше будет!!! Вперед! :)


6458. Илья
Илья
ответить
→  Neverwinter 2  # Теория ООП / Рисователь снеговиков / 2015-10-02 12:19

массив никаких фигур)) хаха


1232. Фомичева Наталья
Фомичева Наталья
ответить
→  Neverwinter 2  # Теория ООП / Рисователь снеговиков / 2015-10-02 10:41

Снеговиков не делала, мне пока уток хватает.
https://www.youtube.com/watch?v=qo7Hqwypwcc&list=PLtjuvkyFrt5Wjd-973N117XS7xuuoD6XM
Но стало интересно, что же вы там собираетесь реализовывать.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Neverwinter 2  # Теория ООП / Рисователь снеговиков / 2015-10-02 10:39

И вот теперь мы напрямую подошли к полиморфизму.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Neverwinter 2  # Теория ООП / Рисователь снеговиков / 2015-10-02 10:39

Да, Кирилл, всё верно ты понял, я очень рад!
Когда попрактикуешься - это будет на уровне интуиции,
казаться само-собой разумеющимся, мол, "а иначе никак". :)


2146. Иван
Иван
ответить
→  Neverwinter 2  # Теория ООП / Рисователь снеговиков / 2015-10-02 10:24

Здорово все расписали! И ведь это все работает!



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




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

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

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

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


Научился: Рeaлизовал фyнкцию Draw (Shape shape). Рeaлизовал фyнкцию Draw (Shape [] shapes). "Для чeго нужна переменная Shape.position" - жду ответа в следующем уроке.
+++


Научился: Отличный урок, так как в прошлом использовал свитч, то в этом лишь вынес форыч в отдельный метод, мини-рефакторинг. По поводу объекта Shape и поля position, хранить координаты относительно которых будут вычисляться координаты объектов, т.е. плюсоваться, аналогия sx/sy =)