Объективно ориентированная технология программирования

1Технология объектно-ориентированного программирования. Объекты и их свойства.

Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты.

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

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

В основе объектно-ориентированного подхода лежат три понятия:

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

Инкапсуляция. В объектно-ориентированном программировании объект представляет собой запись, которая служит “оболочкой” для соединения связанных между собой данных и процедур. Другими словами, объект обладает определенными свойствами и поведением. Рассмотрим в качестве примера кнопку — типичный объект, присутствующий в интерфейсе большого количества программ. Кнопка обладает определенным поведением: она может быть нажата, после нажатия на кнопку будут происходить определенные события и т. д. Соединение таких свойств и поведения в одном объекте и называется инкапсуляцией.

Наследование. Объекты могут наследовать свойства и поведение от других объектов, которые называются “родительскими объектами”. Это понятие можно хорошо проиллюстрировать опять на примере интерфейсной кнопки. Возьмем в качестве “родительского объекта” самую простую квадратную кнопку серого цвета с надписью “Кнопка”, при нажатий на которую запускается определенная процедура. На основе этой кнопки можно создать множество кнопок, обладающих различными размерами, цветами и надписями. Нажатие на каждую такую кнопку будет вызывать свою особенную процедуру. Таким образом, все это множество кнопок унаследует свои свойства и поведение от “родительского объекта”, простой кнопки.

Читайте также:  Среда программирования контроллеров beckhoff

Полиморфизм — это слово из греческого языка, означающее “много форм”. Перечень интерфейсных кнопок различных типов (простая кнопка, радиокнопка, кнопка-переключатель и т. д.) представляет собой хороший пример полиморфизма. Каждый тип объекта в этом перечне представляет собой различный тип интерфейсной кнопки. Можно описать метод для каждой кнопки, который изобразит этот объект на экране. В терминах объектно-ориентированного программирования можно сказать, что все эти типы кнопок имеют способность изображения самих себя на экране.

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

Таким образом, существует единственное для всего перечня интерфейсных кнопок действие (вывод изображения кнопки на экран), которое реализуется специфическим для каждой кнопки способом. Это и является проявлением полиморфизма.

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

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

Наиболее распространенными системами объектно-ориентированного визуального программирования являются Microsoft Visual Basic и Borland Delphi. Катализатором широкого распространения объектно-ориентированного программирования стала технология World Wide Web. Практически все новейшие разработки для этой системы выполняются с помощью объектно-ориентированных языков (например, языка Java).

Объект — элементарная единица в объектно-ориентированном программировании, заключающая в себе как описывающие объект данные, так и средства обработки этих данных.

Класс — обобщенное описание набора объектов, обладающих некоторыми одинаковыми методами и структурами данных.

Подкласс — более подробное описание, относящееся к какому-либо специализированному подмножеству набора объектов, описанного классом. Иногда подклассы называют также производными или дочерними классами.

Наследование — механизм автоматического включения в состав различных классов, подклассов и объектов одних и тех же методов и структур данных.

Источник

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

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

Говоря об объектно-ориентированной разработке, я имею в виду:

  • объектно-ориентированные методологии (технологии) разработки программных систем;
  • инструментальные средства, поддерживающие эти технологии.
  • SA/SD (Structured Analysis/Structured Design);
  • JSD (Jackson Structured Development);
  • OSA (Object-Oriented System Analysis).

1.2. Объектно-ориентированные языки программирования

Вопросы реализации программного обеспечения, разработка которого велась с применением одной из объектно-ориентированных методологий, рассматриваются в разделе 5. Реализация программного обеспечения связана с использованием одного из языков программирования. Показано, что наиболее удобными для реализации программных систем, разработанных в рамках объектно-ориентированного подхода, являются объектно-ориентированные языки программирования, хотя возможна реализация и на обычных (не объектно-ориентированных) языках (например, на языке C и на языке Fortran). Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения. Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х гг. в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил своё время. Однако современники (программисты 60-х гг.) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е гг., так как интерпретация связана со снижением эффективности (скорости выполнения) программ. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е гг. было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и др. Наиболее распространённым объектно-ориентированным языком программирования, безусловно, является C++. Свободно распространяемые коммерческие системы программирования C++ существуют практически на любой платформе. Широко известна свободно распространяемая система программирования G++, которая даёт возможность всем желающим разобрать достаточно хорошо и подробно прокомментированный исходный текст одного из образцовых компиляторов языка C++. Завершается работа по стандартизации языка C++: последний Draft стандарта C++ выпущен в июне 1995 г. (он доступен по Internet). Разработка новых объектно-ориентированных языков программирования продолжается. С 1995 г. стал широко распространяться новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Синтаксис этого языка напоминает синтаксис языка C++, однако эти языки имеют мало общего. Java – интерпретируемый язык: для него определены внутреннее представление (bytecode) и интерпретатор этого представления, которые уже сейчас реализованы на большинстве платформ. Интерпретатор упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Он позволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность при выполнении этих программ. Эти свойства языка Java позволяют использовать его как основной язык программирования для программ, распространяемых по сетям (в частности, по сети Internet).

Источник

Оцените статью