Обучение C#

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

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

Теория ООП - Вступление

Здравствуйте, дорогие друзья!
С вами Волосатов Евгений Витольдович.
Мы приступаем к изучению теории объектно-ориентированного программирования.
Здесь Вы можете ознакомиться со вступительным видео к этому курсу:


Как мы будем работать?
Сначала мы будем создавать программу, которая просто работает, а потом будем её модернизировать, преобразовывая к объектно-ориентированной модели. Каждый шаг будет подробно объяснен, почему и для чего это делается. И на примере этих преобразований будут проиллюстрированы различные модели объектно-ориентированного проектирования, шаблоны. А также инкапсуляция, полиморфизм, наследование и всё, что с этим связано. Это всё будут не абстрактные примеры. Мы рассмотрим все эти понятия на конкретном программном приложении, которое сначала будет работать с фигурами, а потом эти фигуры будут объединяться в рисунки. Потом из этих рисунков будут созданы различные игровые объекты, которые будут в конечном итоге как-то взаимодействовать друг с другом. И всё это будет на основе созданной объектно-ориентированной модели. И будет всё в должном уровне абстракции.

Как это нужно делать?
Конечно, всё можно будет сделать тем или иным образом. У любой задачи есть несколько способов решения. И чтобы выяснить, какое из них лучше, необходимо попробовать все.

Особенность этого курса в том, что каждый урок будет продолжительностью всего 10 минут. Этого времени достаточно для того, чтобы рассмотреть одну маленькую деталь, модель, объяснить и показать ее работу. При этом мы с Вами будем на одной волне, наши программы в любой момент времени будут очень похожи. Несмотря на то, что каждый урок длится всего лишь 10 минут, необходимо будет отправлять отчет после выполнения каждого урока. У каждого урока есть самостоятельное задание, которое необходимо выполнить.

На первом уроке мы напишем в Google-запрос "инкапсуляция" и посмотрим, какие есть красивые картинки в результатах поиска.

Что такое инкапсуляция? Это от слова капсула: всё, что собрано в какой-то один объект, и с этим можно работать. Мне очень понравилась вот эта картинка из книги Гради Гуч "Объектно-ориентированный анализ и проектирование с примерами приложений", которая очень наглядно демонстрирует что же такое инкапсуляция.

Для одного человека доступен интерфейс: что можно делать, как можно с этим работать? А для другого - всё, что там внутри собрано.
Достаточно наглядно понятие "инкапсуляция" можно продемонстрировать различными картинками, но я хочу показать ее на примере моей любимой игры StarCraft.
 
Игра очень интересная, очень разнообразная. Играть мы сейчас не будем. Я хочу просто продемонстрировать, как здесь всё реализовано. Человечки, которые бегают - это рабочие, их зовут КСМ - космическая строительная машина. У неё есть хит-пойнты, уровень атаки, броня, другие параметры. У нее есть названия, есть спрайты отображения. И каждый из этих рабочих - это конкретный экземпляр. Создаются они в основном здании. Нажали кнопку - процесс начался, и после того, как прогресс дойдет до конца, будет создан ещё один экземпляр, ещё одна космическая строительная машина, которая, в свою очередь, может перемещаться, строить и чинить здания и даже воевать.

Мы напрямую не можем повлиять, не можем поменять имя, не можем изменить здоровье и т. д. Но когда мы приказываем человечку что-то делать, двигаться, то он меняет свое отображение. И человечки могут друг с другом взаимодействовать. Например, один может атаковать своего собрата, и в результате у него уменьшается количество хит-пойнтов не напрямую, а через операцию нападения. И вот, пожалуйста... Убит, исчез, то есть объект закончил свое существование и пропал. Но есть у них и другие параметры. Например, можно человечка отправлять что-то делать, дать какое-то задание. Вот они ходят, собирают минералы для какой-то цели. Есть ещё какие-то операции. Опять же кроме того, как нападать, он может наоборот, чинить. То есть имеется набор действий, которые можно выполнять через элементы управления - кнопочки. Можно выполнять различные вещи, например, можно строить какие-то другие объекты. Вот он ходит, строит, то есть он выполняет ту задачу, которая ему поручена. Что здесь про инкапсуляцию? Всё, что мы можем делать из игры, - только пользоваться вот этим интерфейсом, который тут предусматривает какие-то стандартные операции. И всё. А у программистов, которые все это реализуют, имеется доступ ко всем внутренним свойствам.

Почему я показал игру StarCraft, ещё поделюсь. Во-первых, я очень люблю эту игру. Это моя слабость. И кроме того, она настолько наглядная. Тут столько разных объектов. Например, какие-нибудь человечки, которые стреляют. Это тоже объекты, которые что-то умеют делать, куда-то ходят и прочее. И тут я бы хотел (это моя мечта) написать что-то подобное игре StarCraft. Хотя, конечно, для этого слишком много времени нужно, чтобы что-то подобное написать, и мы будем создавать игрушки попроще.

Уже в первом уроке мы создадим новый проект в Visual Studio, в котором, правда, пока ничего не будет. Мы просто его подготовим для начала, чтобы у нас была реальная задача. И первым домашним заданием будет написать своими словами, что такое инкапсуляция и сделать заготовку для будущей программы, которая к концу курса превратится в полноценное приложение.



Автор: Волосатов Евгений Витольдович


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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

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