Объектно-ориентированное программирование

Рассмотрим несколько понятий, которые раскрывают сущность объектно-ориентированного программирования.

Объект – это программное представление реальной или абстрактной сущности, которое используется для моделирования поведения физических или логических объектов реального мира. Объектами могут быть студент, преподаватель, шрифт текста или элемент управления TextBox. Например, элемент TextBox служит для отображения или редактирования текста в форме. Для его добавления в форму не нужно писать код, можно просто воспользоваться готовым объектом TextBox из панели элементов.

Класс. Каждый объект является представителем (экземпляром) некоторого класса однотипных объектов. Для всех своих объектов класс определяет:

  • • присущие объектам свойства (характеристики, атрибуты), например название, размер шрифта и др.;
  • методы взаимодействия объектов класса с внешней средой (в виде программных процедур). Поэтому объектам присуща функциональность и они могут откликаться на определенные ситуации.

Свойства объекта определяют его внешний вид и поведение, а методы объекта – те задачи, которые он может выполнить. По сути дела методы представляют собой сегмент программного кода, внедренный в объект. В объектно-ориентированном программировании классы используются в качестве шаблонов объектов. С их помощью можно создавать любое количество объектов одного класса. Таким образом, класс описывает семейство объектов, а каждый экземпляр класса является уникальным представителем этого семейства.

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

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

Полиморфизм – это способность объектов выбирать операцию (метод) на основе данных, принимаемых в сообщении. Каждый объект может реагировать по-своему на одно и то же сообщение. Например, команда Print будет по-разному воспринята черно-белым или цветным принтером. Здесь объект цветной принтер получен в результате переопределения и относится к классу-наследнику, за которым сохранился метод Print. Поэтому компилятор по типу класса-наследника распознает, какой конкретно метод надо использовать.

Объектно-ориентированное программирование основано на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса. Объект представляет собой элемент приложения. Программный код и данные структурируются так, чтобы имитировалось поведение фактически существующих объектов. Внутреннее содержимое объекта защищается от внешнего мира посредством инкапсуляции. Благодаря наследованию уже запрограммированные функциональные возможности можно использовать и для других объектов. Полиморфизм позволяет использовать различные объекты и по-разному реализуемые функции под одним именем. Появление возможности создания объектов в программах качественно повлияло на производительность труда программистов. Максимальный объем приложений, которые стали доступны для создания небольшой группой программистов, увеличился до миллионов строк кода. Метод обеспечивает высокую надежность программ и позволяет повторно использовать ранее созданные объекты в других задачах.

К настоящему времени разработано достаточно много объектно-ориентированных языков программирования. Вот далеко не полный список наиболее популярных: ActionScript, C++, С#, D, Delphi, Eiffel, F#, Io, Java, JavaScript, Object Pascal, Objective-C, Perl, Python, Ruby, Scala, Simula, Smalltalk, Vala, Visual Basic, Visual DataFlex.

Особенности технологии объектно-ориентированного проектирования. Объектно-ориентированный подход к созданию программных продуктов базируется:

  • • на выделении объектов в отдельные классы, что позволяет использовать для различных объектов выделенного класса один и тот же программный код;
  • • выявлении характерных свойств каждого объекта и определении методов его обработки;
  • • создании иерархии классов, наследовании свойств объектов и методов их обработки.

При разработке программ и программных продуктов:

  • • проводится объектно-ориентированный анализ, включающий в себя:
    • – выделение объектов и выявление их свойств,
    • – определение методов обработки. В зависимости от генерируемых событий формируется перечень операций, выполняемых над каждым объектом,
    • – образование классов путем выявления связей между объектами,
    • – определение требований к интерфейсу с объектами;
  • • выполняется объектно-ориентированное проектирование, включающее в себя четыре основных этапа:
  • – разработку диаграммы аппаратных средств системы обработки данных, показывающей процессоры, внешние устройства, вычислительные сети и их соединения,
  • – описание связей между классами и объектами, образующих структуру классов,
  • – описание взаимосвязей между объектами в виде диаграммы объектов,
  • – разработку внутренней структуры программного продукта.

Объектно-ориентированные технологии включают в себя специализированные языки программирования и инструментальные средства разработки пользовательского интерфейса. С помощью инструментальных средств создается программный продукт, который содержит объекты с их характерными свойствами. Работа с этим продуктом осуществляется с помощью экранной формы.

В настоящее время технологии объектного, событийного и структурного программирования объединены в RAD-си- стемах, которые содержат множество готовых классов, представленных в виде визуальных компонентов. Каждый компонент добавляется в программу одним щелчком мыши. Программисту надо только спроектировать внешний вид окон своего приложения и определить обработку основных событий, т.е. задать, какие операторы будут выполняться при нажатии на кнопки, при выборе пунктов меню или щелчках мышью. Весь вспомогательный исходный код среда сгенерирует сама, позволяя программисту полностью сосредоточить свое внимание только на реализации алгоритма.

 
< Пред   СОДЕРЖАНИЕ     След >