Объектно-ориентированные языки
В основе лежит концепция, в которой переменные, процедуры и функции объединяются в классы, реализуемые в исходном коде в виде множества независимых объектов, каждый из которых ведет себя подобно отдельному компьютеру; их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Именно объекты являются главными элементами программ при использовании данного подхода. Фактически объектно-ориентированное программирование можно рассматривать как модульное программирование, когда вместо механического объединения процедур и функций акцент делается на их связанное взаимодействие в рамках единого проекта. Объекты заключают в себе полное определение своих характеристик; никакие определения методов и свойств не могут располагаться вне объекта. Это делает возможным свободное копирование и внедрение одного объекта в другие.
Основными понятиями языков объектно-ориентированного программирования являются объект, класс и метод.
• Объект – это структура данных, содержащая поля данных (подобно записи) различных типов и заголовки методов. Понятие объекта реализовано как совокупность свойств (структур данных, характерных для него), методов их обработки (подпрограмм изменения их свойств) и событий, на которые данный объект может реагировать, и которые приводят, как правило, к изменению свойств объекта.
• Класс – это шаблон, на основе которого может быть создан конкретный программный объект. Он описывает свойства и методы, определяющие поведение объектов этого класса. Каждый конкретный объект, имеющий структуру данного класса, называется экземпляром этого класса.
• Метод – это процедура или функция, объявленная внутри объявления элемента типа «объект».
Фундаментальными принципами ООП (объектно-ориентированного программирования) являются инкапсуляция, наследование и полиморфизм.
• Инкапсуляция – это объединение данных и свойственных им процедур обработки в одном объекте.
• Наследование предусматривает создание новых классов на базе существующих и позволяет классу-«потомку» иметь (наследовать) все свойства класса-«родителя».
• Полиморфизм означает, что порожденные объекты обладают информацией о том, какие методы они должны использовать в зависимости от того, в каком месте цепочки они находятся.
Подобный подход более естественен, чем методологии, ориентированные на обработку (процесс), из-за возможности использовать в процессе программирования разнообразные виды абстракции типов данных, что позволяет сконцентрироваться на проекте системы, не беспокоясь о деталях используемых в ней информационных объектов.
Основные шаги разработки программы, предусмотренные данной методологией:
• определение проблемы;
• развитие неформальной стратегии, представляющей общую последовательность шагов и удовлетворяющей требованиям к будущей программе;
• формализация стратегии;
• идентификация объектов и их атрибутов;
• идентификация операций;
• установка интерфейсов;
• реализация операций.
Первый объектно-ориентированный язык программирования Simula 67 был разработан в 1967 г. в Норвегии. Основные представители в наше время:
C++
Разработан датским программистом, работающим в США, Бьярном Страуструпом в 1983 г. на основе классического языка C, появившегося одиннадцатью годами ранее. Широко используется во многих областях, обеспечивая хорошее сочетание функциональности и простоты использования.
Visual Basic
Разработанный в 1991 г. объектно-ориентированный вариант одного из наиболее простых языков программирования.
Delphi
Разработанный в 1995 г. компанией Borland объектно-ориентированный вариант языка программирования Pascal.
Java
Разработан корпорацией Sun в 1995 г. Потомок C++; основным его преимуществом считается платформо-независимость, т.е. приложения, написанные на Java, могут выполняться на любых компьютерах, независимо от их типа и установленной ОС. Java стал стандартным языком программирования Internet, - именно на нем пишутся маленькие программные дополнения к Web-приложениям – апплеты.
C#
Разработан в 2000 г., является удачным сочетанием C++ и Java, ориентирован на разработку Web-приложений.
В отношении объектно-ориентированного программирования уместно говорить не просто о языках или даже системах программирования, а об интегрированных средах разработки или системах визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. ОС Ms Windows за многие годы установила стандарт графической оболочки GUI – Graphic User Interface, обеспечивающей среду для пользователя и программиста. Все программирование в Windows базируется на использовании набора функций интерфейса прикладного программирования Win32 API, специально сконструированного для работы с различными языками программирования. Программирование на Win32 API поддерживается любой существующей средой разработки ПО.
При помощи визуальных языков программирования механизмы Drag and Drop («перенеси и брось») упрощают создание интерфейсов приложений. Такие системы имеют название RAD (Rapid Application Development – быстрая среда разработки приложений). Такой подход в программировании позволяет уделить больше времени на разработку логики программы, а не на создание интерфейса будущего приложения. Каждая среда разработки имеет огромный набор встроенных объектов, называемых элементами управления или примитивами.
К наиболее известным инструментам визуального программирования относятся среды Delphi и C++ Builder компании Borland (в прошлом Inprise) и продукты семейства Visual Studio компании Microsoft. Первая версия Visual Studio вышла в свет в 1997 г., а версия Visual Studio 6.0 включает в себя Visual Basic (VB), Visual C++, Visual FoxPro, Visual InterDev, Visual J++, Visual SourseSafe и библиотеку MSDN. Microsoft разработала свою компонентную модель MFC (Microsoft Foundation Class Library – библиотека основных классов от Microsoft), являющуюся прямым конкурентом модели VCL (Visual Component Library – библиотека визуальных компонент), используемой в Delphi и C++ Builder. Библиотека VCL имеет богатый выбор функционала, а библиотека MFC отличается производительностью и быстродействием. В настоящее время Visual Studio расценивается как полнофункциональный набор продуктов для проектирования в среде Windows, который может с успехом применяться для разработки как традиционных клиентских приложений, так и приложений для Internet.
В конце 2001 г. Microsoft анонсировал новую платформу для разработки ПО - .NET, ориентированную на Web-разработки. Для этой платформы была дополнительно создана новая спецификация языка программирования C#, которому свойственны модное течение, хорошие возможности и многофункциональность.