Объекты,
классы, методы при разработке в среде Scratch
Объектно-ориентированное
программирование – парадигма программирования, в которой основными являются
понятия объектов и классов.
«Объект
– структура данных, содержащая описание свойств внешнего объекта
программирования.
Метод
– функция, работающая с объектом.
Класс
– описание структуры объекта и методов работы с ним.»[1]
В
процедурных языках программирования, таких как Pascal, поведение
объекта определяется процедурами или подпрограммами, в ООП - поведение
содержится в методах.
Основными
принципами ООП являются:
1. инкапсуляция –
скрытие данных реализации, совмещение деталей кода;
2. наследование –
возможность описать новый класс на основании уже существующего, используя
свойства и методы родительского класса;
3. полиморфизм –
использование одного имени для задания общих для класса действий;
4. абстракция – выбор
наиболее значимых характеристик объекта, исключая из рассмотрения менее
значимые.
В курсе
внеурочной деятельности для 5-7 классов интересно изучать визуальную среду
программирования Scratch,
являющуюся объектно-ориентированной. Если для младшего возраста изучение
ограничивается понятиями «объект», «переменные», «условие» и «цикл», что в
полной мере не демонстрирует принципы ООП, то с учащимися среднего возраста
каждый принцип ООП возможно рассмотреть на примере.
Каждый персонаж, расположенный на сцене, в
5-6 классе создается как новый спрайт. Рассмотрим пример, когда все персонажи
являются клонами одного спрайта. Несмотря на то, что герои анимации или игр
внешне разные персонажи, отличающиеся по поведению и расположению на сцене, они
все являются экземплярами одного класса и наследуют от главного класса все
свойства и методы. Все они являются клонами или объектами-наследниками. Поэтому
нет необходимости в отдельных спрайтах, т.к. они выполняют одни действия и
пользуются одними ресурсами. Клонами управлять проще, не настраивается каждый
персонаж в отдельности. Главное, использовать переменные – идентификаторы,
иначе команды будут получать все клоны.
Для
демонстрации создадим проект, добавив только один спрайт из библиотеки. В
проекте создадим идентификатор iClone, отделяющий клонов от основного объекта и
My Name – индивидуальный
идентификатор внешнего вида для каждого клона (рис. 1), т.е. одного из трех костюмов.
Затем составим код (рис. 2), который выполняет каждый клон при своем появлении.
Клон наследует состояние данных объекта-родителя, переменная My Name передает
внешние различия, которые настраиваемы для каждого из них. (рис. 3) От этого
код становится компактнее. В данном примере рассмотрели применение принципа
наследование.
Инкапсуляция
– защита кода от тех, кто будет пользоваться конечным приложением. Помимо
защиты, инкапсуляция повышает гибкость кода и сокращает время работы над программой.
В Scratch для
инкапсулирования кода путем создания новых методов есть специальный блок
«Создать блок» во вкладке «Другие блоки» в редакторе. Задав имя, мы получим
шапку своего метода, к которому можно прикрепить любой код. Слева появляется
новый блок, который вызывает созданный метод в коде спрайта. Можно установить
собственные параметры для этого метода. Создавать свои блоки оправданно, когда
в коде есть повторы или большие фрагменты простых действий. Не забывайте давать
своим методам простые и понятные имена.
Создадим
свой метод «Исчезнуть», (рис. 4) придающий эффект исчезновения персонажа с
одновременным закручиванием его в спираль. Этот метод можно применить ко всем
спрайтам, в нашем случае персонажи являются клонами одного объекта.
Сравнивая
два скрипта одного и того же события с использованием методов и простым
повторением блоков, наглядно видно, что в первом случае достаточно одной
строки, а во втором - может содержать до 10. Чтобы внести изменения в
программу не нужно просматривать ее всю и искать каждый нужный блок, достаточно
переписать только несколько строчек метода. Юные разработчики часто
сталкиваются с необходимость переписывать большие части кода, иногда перестают
понимать, что делает тот или иной участок программы. Использование принципа
инкапсуляции позволяет решить эти проблемы.
Рассмотренные
примеры наглядно демонстрируют учащимся не просто принципы ООП, но и удобство
их применения, прививая культуру программирования, совершенствуя их мастерство.
Список
используемой литературы
1. Си/Си++. От
дилетанта до профессионала http://ermak.cs.nstu.ru/cprog/html/101.htm
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.