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

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

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

  • Очень хочется все элементы снеговика поместить в один массив.
    Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков...
    Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив!
    После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом.
    А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
  • Дата отправки отчёта: 18 октября 2015 г.
  • Задание выполнено: за 40 мин.
  • Чему научился: Постигаю дальше ООП на практике
  • Что было сложным: Сложностей не возникло
  • Комментарии: Я реализовал вот так (и даже работает!):
            private void Draw(Shape shape)
            {
                if (shape.ToString() == "Geometry1.Circle")
                    Draw((Circle)shape);
                if (shape.ToString() == "Geometry1.Line")
                    Draw((Line)shape);
                if (shape.ToString() == "Geometry1.Box")
                    Draw((Box)shape);

                if (shape.ToString() == "Geometry1.ColorCircle")
                    Draw((ColorCircle)shape);
                if (shape.ToString() == "Geometry1.ColorLine")
                    Draw((ColorLine)shape);
                if (shape.ToString() == "Geometry1.ColorBox")
                    Draw((ColorBox)shape);
            }
  • Оценка видео-уроку:
Отчёт от 5419 за Теория ООП / Фигуральный базовый класс




Оцени работу

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

24. Оля
Оля
ответить
→  Роман  # Теория ООП / Фигуральный базовый класс / 2015-10-18 18:53

Роман, очень хорошо что постигаешь еще больше и глубже и реализуешь уже свое! Молодец! :)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Роман  # Теория ООП / Фигуральный базовый класс / 2015-10-18 13:40

Прикольный способ.


  • Отчёт оценивали:
    4004Елена+1   6919Anton Sozykin+1   Посетитель+1   Посетитель+1   2146Иван+1   459Сергей Сергеевич+1   6391Владимир+1   3747Сергей+1   5193Сергей+1   6203Николай (nick27m)+1   2773Никита+1   76307+1   76329+1   1Евгений Волосатов+1   76263+1   76285+1   763412+1   763714+1   764116+1   764618+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Создавать массив, члены которого являются фигуры, производные от пустого базового класса Shape и производные от предудущих производных классов
Трудности: разобраться и создать функцию timer1_Tick в которой рисуются фигура. Получилось для простой фигуры, но не получилось для снеговика.
No Comments
Научился: Создавать базовый класс фигур
Трудности: Перегрузка метода Draw(Shape shape). Я не знаю как это реализовать. Подозреваю, что из этого метода нужно вызвать draw, передав ему конкретный тип (Line, ColorBox etc), но как это сделать не понимаю. Не понимаю как из shape получить реальный тип объекта.
Красивая идея использовать общий класс shape для всех фигур. Но реализовать ее я пока не в состоянии