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

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

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

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

  • Очень хочется все элементы снеговика поместить в один массив.
    Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков...
    Решение гениальное - создаём базовый класс фигуры - 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#.

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


Научился: Повторил базовый класс.
почему в разных книгах базовый класс называют по разному? или супер класс или родительский класс


Научился: Создал класс Shape. Выполнил наследование классов Line, Circle и Box от Shape. Создал два массива c типом элементов Shape.