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

Формула программиста
основатель — Волосатов Евгений Витольдович

Теория ООП / Фигуральный базовый класс

  • Очень хочется все элементы снеговика поместить в один массив.
    Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков...
    Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив!
    После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом.
    А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
  • Дата отправки отчёта: 24 апреля 2015 г.
  • Задание выполнено: за 30 мин.
  • Чему научился: узнала что можно в массив загонять разные объекты и упростить вывод рисования с помощью цикла
  • Что было сложным: ответить на вопрос, так пока не ответила, жду следующего урока, пояснений как сделать функцию рисования(((
  • Комментарии: все больше и больше нравится, очень жду пояснений и интересно как же мы все так просто и легко усовершенствуем и облегчаем код))))
  • Оценка видео-уроку:
Отчёт от 24 за Теория ООП / Фигуральный базовый класс




Оцени работу

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

19022. Олег Чудновский
Олег Чудновский
ответить
→  Олюшка  # Теория ООП / Фигуральный базовый класс / 2018-08-04 14:14

Привет Олюшка, молодец, что не смотря на трудности в обучении идешь дальше.
Я тоже с нетерпением хочу посмотреть, как это нужно сделать.
Как вариант, нарисовал массив фигур Снеговика следующим образом:
private void Draw(Shape shape)
        {
            if (shape.GetType() == typeof(Circle))
            {
                Draw((Circle)shape);
            }
            else if (shape.GetType() == typeof(ColorCircle))
            {
                Draw((ColorCircle)shape);
            }
            else if (shape.GetType() == typeof(Line))
            {
                Draw((Line)shape);
            }
            else if (shape.GetType() == typeof(ColorLine))
            {
                Draw((ColorLine)shape);
            }
            else if (shape.GetType() == typeof(Box))
            {
                Draw((Box)shape);
            }
            else if (shape.GetType() == typeof(ColorBox))
            {
                Draw((ColorBox)shape);
            }
        }

Те берем объект из массива, определяем к какому типу он пренадлежит, приводим объект к типу которому он пренадлежит, и вызываем метод для полученного типа
Удачи в обучении !!!!



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




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

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

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

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


Научился:  Создaвать пycтой базовый класc Shape ; преобразовать фигуры классов Line, Circle, Box c унаследовaнием от клacса Shape; помeщать вcе части снегoвика в oдин мaссив. Сокpaтить фyнкцию Draw() для рисования снeговикoв. На 5 вопрос - ответить затрудняюсь, хотя что то вроде в голове крутится, а как выразить не знаю.
Трудности: Пока всё понятно.
Всё замечательно.


Научился: На этом уроке я научился создавать массив и помещать в него все части рисунка. Это оказалось очень удобным.
Трудности: Ответить на вопрос к уроку ...
Ответа на вопрос к уроку нет - не могу сообразить как реализовать функцию. Пробовал по-разному, но не выходит. Спасибо за урок!