Автор работы: Пользователь скрыл имя, 19 Сентября 2013 в 18:56, контрольная работа
Основные понятия объектно-ориентированного программирования (ООП). Элементы ООП. Инкапсуляция, наследование, полиморфизм. Визуальное программирование: среда систем, элементы систем (форма, панель свойств, панель инструментов). Компоненты программ. Свойства, события, методы.
КОНТРОЛЬНЫЕ ВОПРОСЫ
9 ВАРИАНТ
9. Основные понятия объектно-
Объе́ктно-ориенти́рованное,
или объектное, программирование
(ООП) — парадигма программирования,
в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипирован
Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик.
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом.
Новый класс — потомком, наследником или производным классом.
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Класс. Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом.
Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка.
Инкапсуляция — механизм языка программирования,
который ограничивает доступ к составляющим объект компонента
Насле́дование — механизм объектно-
Типы наследования.
Класс, от которого произошло наследование,
называется базовым или родител
В некоторых языках используются абстрактные классы. Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного. Например, абстрактным классом может быть базовый класс «сотрудник вуза», от которого наследуются классы «аспирант», «профессор» и т. д. Так как производные классы имеют общие поля и функции (например, поле «год рождения»), то эти члены класса могут быть описаны в базовом классе. В программе создаются объекты на основе классов «аспирант», «профессор», но нет смысла создавать объект на основе класса «сотрудник вуза».
Множественное наследование — потенциальный источник ошибок, которые могут возникнуть из-за наличия одинаковых имен методов в предках. В языках, которые позиционируются как наследники C++ (Java, C# и др.), от множественного наследования было решено отказаться в пользу интерфейсов. Практически всегда можно обойтись без использования данного механизма. Однако, если такая необходимость все-таки возникла, то, для разрешения конфликтов использования наследованных методов с одинаковыми именами, возможно, например, применить операцию расширения видимости — «::» — для вызова конкретного метода конкретного родителя.
Полиморфи́зм (от греч. πολὺ- — много, и μορφή — форма) в языках программирования — возможность объектов с одинаковой спецификацией иметь различную реализацию.
Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования.
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Полиморфизм — один из четырёх
важнейших механизмов объектно-
Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:
Формы полиморфизма.
В одном случае конкретный смысл фрагмента зависит от того, в каком окружении код был построен. Это т.н. статический полиморфизм. Перегрузка функций, шаблоны в Си++ реализуют именно статический полиморфизм. Если в коде шаблонного класса вызвана, например, std::sort, то реальный смысл вызова зависит от того, для каких именно типовых параметров будет развернут данный шаблон - вызовется одна из std::sort<T>.
В другом случае конкретный смысл фрагмента определяется только на этапе исполнения и зависит от того, как именно и где именно был построен данный объект. Это обычный, динамический полиморфизм, реализуется через виртуальные методы.
Этот полиморфизм называют чистым полиморфизмом. Применяя такую форму полиморфизма, родственные объекты можно использовать обобщенно. С помощью замещения и полиморфизма включения можно написать один метод для работы со всеми типами объектов TPerson. Используя полиморфизм включения и замещения можно работать с любым объектом, который проходит тест «is-A». Полиморфизм включения упрощает работу по добавлению к программе новых подтипов, так как не нужно добавлять конкретный метод для каждого нового типа, можно использовать уже существующий, только изменив в нем поведение системы. С помощью полиморфизма можно повторно использовать базовый класс; использовать любого потомка или методы, которые использует базовый класс.
Используя Параметрический полиморфизм
можно создавать универсальные
базовые типы. В случае параметрического
полиморфизма, функция реализуется
для всех типов одинаково и
таким образом функция
Параметрические методы
Если полиморфизм включения
влияет на наше восприятие объекта, то
параметрический полиморфизм
Параметрические типы
Вместо того, чтобы писать класс для каждого конкретного типа следует создать типы, которые будут реализованы во время выполнения программы то есть мы создаем параметрический тип.
Абстрактные методы часто относятся к отложенным методам. Класс, в котором определен этот метод может вызвать метод и полиморфизм обеспечивает вызов подходящей версии отложенного метода в дочерних классах. Специальный полиморфизм допускает специальную реализацию для данных каждого типа.
Это частный случай полиморфизма.
С помощью перегрузки одно и то
же имя может обозначать различные
методы, причем методы могут различаться
количеством и типом
Визуальное программирование.
Визуальное программирование выполняется
в так называемой интегрированной
рабочей среде (Integrated Development Enviro
- создание интерфейсапользователя в виде формы, на кото- рой размещают («рисуют») элементы управления приложением, например, текстовые поля и кнопки управления;
- определение свойствдля формы и элементов управления, чтобы задать, например, надписи, цвет и размер;
- запись соответствующего программного кода(текста программы) в ответ на события, чтобы оживить приложение (чтобы оно работало).
Интегрированная среда разработки для Windows (IDE for Windows) обычно состоит из следующих частей:
- заголовок— верхняя строка, содержащая также три кнопки Windows: свертывания, развертывания и закрытия окна;
- строка меню — позволяет управлять приложением;
- панель инструментов(кнопок) - для ускорения выпол- нения многих обычных действий, часто служащая альтернативой команд меню;
- рабочая область -- область окна, в которой создаются и обрабатываются все объекты приложения, она практически занимает все окно;
- контекстное меню — содержит команды для часто выполняемых действий.
Контекстное окно открывается после нажатия на правую кнопку мыши, когда ее указатель находится на объекте, с которым в данный момент происходит работа. Список доступных команд контекстного меню зависит от того, на какой области среды разработки был выполнен щелчок.
В зависимости от инструментальной среды разработки приложения добавляются другие части. Например:
- строка статуса и подсказок — нижняя строка. В ней выво-дятся сообщения о работе системы;
- панель элементов управления (Toolbox), которая содержит набор инструментов, необходимых во время разработки приложения для размещения элементов управления на форме;
- окно свойств (Properties), в котором устанавливаются свойства для выбранной формы или элемента управления;
- окно редактора кода, в котором редактируется программный код;
- дизайнер форм — окно, в котором разрабатывается форма;
- другие окна.
Отметим, что все окна представляют
собой обычные окна Windows, получающие по умолчанию все стандартные
характеристики окна текущей версии Windows.
В частности, они наследуют такие элементы,
как границы с изменением размера, оконное
меню управления (в левом верхнем углу),
а также кнопки Maximize, Minimize и Ex
На экране одновременно могут находиться несколько окон, представляющих разные приложения или объекты. Каждый объект имеет полный доступ к буферу обмена (clipboard) и к информации большинства приложений Windows, работающих в одно и то же время. Но только с одним окном может работать пользователь в данный момент времени. Это окно будет иметь «Активный заголовок окна» (active title bar), выделенный повышенной яркостью. Про него говорят, что он имеет фокус.
Современные инструментальные средства разработки приложений для пользователя предлагают разработчику набор мастеров, которые помогут ему в короткий срок спроектировать нужное программное обеспечение.
Мастер разработки автоматизирует процесс создания проекта или его части. Разработчику проекта остается только отвечать на вопросы, задаваемые мастером в ходе его создания. В процессе разработки приложения можно в любое время вернуться назад или остановить (закончить) работу мастера. В итоге будет автоматически сгенерировано большое количество полезного кода.
Конечно, все требования пользователя мастер выполнить не в состоянии. Поэтому, чтобы полностью и окончательно «оживить» все автоматически созданные мастером возможности, проектировщику приложения потребуется добавить некоторое количество дополнительного кода.
Информация о работе Основные понятия объектно-ориентированного программирования