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

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

Теория ООП / Инкапсуляция мечты

  • Курс по теории Объектно-ориентированного программирования.
    С нуля создаётся проект по рисованию различных геометрических фигур,
    которые потом объединяются в спрайты, взаимодействуют друг с другом.

    Во время создания проекта постоянно применяется рефакторинг кода,
    при этом демонстрируются приёмы Объектно-ориентированного программирования.

    Во второй части курса мы проработаем понятие Интерфейса.

    Выдержка из отчёта Ларисы по завершению курса.
    1) Получила представление о методах ООП - инкапсуляции, полиморфизме и наследовании.
    Эти три "кита" позволяют изменять и усложнять программы, добавляя в них новые возможности;
    2) Научилась рисовать простые геометрические фигуры;
    3) Создавать базовые и производные классы;
    4) Создавать структуры и работать с пикселями;
    5) Создавать фигуры из массива простых фигур в том числе и в цвете;
    6) Передвигать простую фигуру;
    7) Создавать класс объектов Sprite, являющийся производным от базового абстрактого класса Shape,
    а в нем список List, который содержит произвольное число фигур и функцию, которая добавляет фигуру,
    а также метод Move, который двигает её;
    8) Освоила BreakPoint, который дает возможность проследить переходы в классе и связи между классами;
    9) Познакомилась с абстрактыми и виртуальными методами в абстрактном базовом классе и методами override в производных классах. Совокупность этмх методов позволяет передвигать сложные фигуры как целое.
  • Дата отправки отчёта: 27 сентября 2015 г.
  • Задание выполнено: за 35 мин.
  • Чему научился: Выражать свои мысли про интерфейс)
  • Что было сложным: Подобрать пример для описания различий между интерфейсом/реализацией.
  • Комментарии: Инкапсуляция - это разделение структуры некоторого процесса, явления на две части: интерфейс и реализацию.  Необходимость интерфейса обуславливается тем, что для пользователя не имеет значения то, как реализован некий процесс. Например, я как пользователь мобильного телефона не заинтересован в том, каким образом реализуется функция набора номера. Более того, в разных моделях эта функция реализована по разному. Мне эти детали не нужны. Мне нужно лишь знать общую последовательность действий, чтобы позвонить необходимому человеку. Т.е., я ожидаю получить удобный интерфейс, который позволит мне быстро и удобно набрать номер друга, а не изучать схемотехнику и замыкать нужные провода на схеме телефона. В итоге, интерфейс необходим для того, чтобы оградить пользователя от деталей реализации, от сложных процессов в начинке, от ошибочных действий с системой.
    Кроме того, интерфейс подбирается с учетом требований пользователя; возможно создание нескольких интерфейсов. Например, интерфейс для новичков, с ограниченными возможностями для управления процессом, где большинство параметров устанавливается по умолчанию. Интерфейс для опытных пользователей, для более тонкой "настройки под себя".

    Инкапсуляция в программировании выражается в правильной модульности исходного кода, разделении интерфейса и реализации. Например, в языке C++ для создания интерфейса используются заголовочные файлы, например MyLib.h, где пользователю доступны интерфейсы, а детали реализации расположены в файлах .cpp. На более низком структурном уровне инкапсуляция выражается в виде namespace, и далее в виде классов, где для разделения интерфейса и реализации используются секции кода public:, private:.

    На скриншоте показана кабина самолета Ил-96 (интерфейс) и общий вид самолета (его реализация)
  • Оценка видео-уроку:
Отчёт от 7276 за Теория ООП / Инкапсуляция мечты


Отчёт от 7276 за Теория ООП / Инкапсуляция мечты




Оцени работу

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

1. Евгений Витольдович
Евгений Витольдович
ответить
→  Ильшат  # Теория ООП / Инкапсуляция мечты / 2015-09-27 10:27

Ты точно сам это все написал, своими словами? Если так, то это очень круто.


  • Отчёт оценивали:
    7303Игорь+1   4995Иван+1   6613Egor+1   6458Илья+1   1101Аркадий+1   4889Валера Луцевич+1   5868Vera+1   1803Саша+1   6987MichGar+1   459Сергей Сергеевич+1   1232Фомичева Наталья+1   6391Владимир+1   6919Anton Sozykin+1   1901Neverwinter 2+1   5649Максим Лапшинов+1   1Евгений Витольдович+1   6298Anton+1   2721mikemet+1   5489Serg+1   6452Lik_Kirill+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Инкапсуляция - эдакий черный ящик, который скрывает от пользователя реализацию объекта и определяет особый доступ к данным этого объекта.
Трудности: Выбрать картинку с инкапсуляцией
Нет замечаний
Научился: Инкапсуляция для меня прежде всего это сформированный ip пакет - который начинает формироваться с верхнего уровня (приложений) модели OSI и заканчивает свое формирование на уровне канальном - на каждом этапе к начальному "пакету" добавляются заголовок и окончание, таким образом пакет нарастает и выплевывается в сеть. Еще проще - можно вспомнить матрешку (маленькая в большой и т.д.). На другом конце сети - пакет разбирается. Думаю, принцип инкапсуляции везде одинаков - вложение одного в другое. Как вложенный цикл - наверное..
Трудности: ничего
все хорошо