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