Автор: Пользователь скрыл имя, 25 Февраля 2011 в 11:30, курсовая работа
В настоящее время можно выделить несколько типов языков программирования. Одним из важнейших признаков их классификации является принадлежность их к одному из стилей, основными из которых являются следующие стили:
• процедурный,
• функциональный,
• логический,
• объектно-ориентированный.
I.ВВЕДЕНИЕ 3
II. ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ МЕТОДОЛОГИЯ ПРОГРАММИРОВАНИЯ 6
III. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ 12
SMALLTALK 12
C++ 14
COMMON LISP OBJECT SYSTEM (CLOS) 15
ADA 16
EIFFEL 17
JAVA 18
OBJECT PASCAL 18
СИСТЕМА ВИЗУАЛЬНОГО ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ DELPHI. 19
IV.ЗАКЛЮЧЕНИЕ 24
ЛИТЕРАТУРА И ССЫЛКИ 26
ПРИЛОЖЕНИЕ 27
Разумеется, система, реализующая такие принципы построения, предъявляет более жесткие, чем при структурном подходе, требования к производительности вычислительной системы.
После краткого
описания некоторых ключевых понятий
объектно-ориентированной
Абстрагирование.
Выделение таких существенных характеристик объектов, которые отличают его ото всех других объектов и которые четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа. Только существенное для данной задачи и ничего более. Минимальной единицей абстракции в ООМ является класс.
Ограничение доступа.
Процесс защиты отдельных элементов объекта, не затрагивающий существенных характеристик объекта, как целого.
Модульность.
Свойство системы, связанное с возможностью декомпозиции на ряд тесно связанных частей (модулей). Модульность опирается на дискретное программирование объектов, которые можно модернизировать или заменять, не воздействуя на другие объекты и систему в целом.
Существование иерархий.
Ранжирование,
упорядочивание по некоторым правилам
объектов системы.
Объектно-ориентированная методология (ООМ) состоит из следующих частей:
ООА - методология анализа сущностей реального мира на основе понятий класса и объекта, составляющих словарь предметной области, для понимания и объяснения того, как они (сущности) взаимодействуют между собой.
Модели OOA в дальнейшем
преобразуются в объектно-
Инкапсуляция.
Инкапсуляция является важнейшим свойством объектов, на котором строится объектно-ориентированное программирование. Инкапсуляция – это объединение в одном классе данных и действий над ними. При этом включенные в объект подпрограммы (методы) напрямую работают с данными этого объекта, обращаются к другим методам этого объекта или методам объектов-предков.
Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его «самодостаточным» для решения конкретной задачи. В результате класс всегда несет в себе некоторую функциональность. Например, класс TForm в Delphi содержит (инкапсулирует в себе) все необходимое для создания Windows-окна, класс TTimer обеспечивает работу таймера и т.д.
Единицей инкапсуляции в OOD является
объект.
Наследование позволяет создавать иерархию классов, начиная с некоторого первоначального базового класса (предка) и продолжая более сложными, включающими (наследующими) элементы предшествующих классов (потомков или производных классов).
Любой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя класса-родителя:
TChildClass = class(TParentClass) (язык Object Pascal)
Порожденный класс автоматически наследует
поля, методы и свойства своего родителя
и может дополнять их новыми. Таким образом,
принцип наследования обеспечивает поэтапное
создание сложных классов и разработку
собственных библиотек классов.
Класс, поведение которого наследуется,
называется суперклассом, а класс, который
наследует поведение, называется подклассом.
Принцип наследования приводит
к созданию постоянно
Полиморфизм – это свойство родственных классов решать схожие по смыслу проблемы разными способами. Для различных родственных классов можно задать единый образ действия (например, вывод на экран любой геометрической фигуры). Затем для каждого конкретного класса составляется своя подпрограмма, выполняющая это действие непосредственно для него (отображение точки отличается от отображения линии и т.д.), причем все эти подпрограммы должны иметь одно имя. Когда потребуется отобразить конкретную фигуру, будет выбрана из всего множества одноименных подпрограмм та, которая соответствует типу конкретного объекта. Если выводимый объект является точкой, то выбирается его подпрограмма, если линия – то ее.
Таким образом, полиморфизм
Созданный проект превращается в программный продукт в процессе объектно-ориентированного программирования - такой методологии программирования, которая основана на представлении программного продукта в виде совокупности объектов, каждый из которых является слепком (экземпляром) определенного класса, а классы образуют иерархию на принципах наследования. Таким образом, при объектно-ориентированном подходе исчезает понятие исполняемой программы. Решение поставленной задачи сводится к построению необходимых классов, и управлению создаваемыми ими объектами-экземплярами.
Фундаментальная концепция OOP состоит в том, что объекты и классы взаимодействуют друг с другом путем передачи сообщений. Для этого необходимо, чтобы объекты определялись вместе с сообщениями, на которые они реагируют, в отличие от процедурного стиля программирования, когда сначала определяются данные, которые затем передаются в процедуры (функции) как параметры. При этом средством программирования выступает один из объектно-ориентированных языков программирования.
Язык программирования называется объектно-ориентированным, если
Последний принцип
отличает чистые объектно-ориентированные
языки такие как Smalltalk, Actor, от гибридных языков
программирования, выросших из ранее существовавших
процедурных языков (Object Pascal, C++). Эти подходы
- как бы крайности в семействе объектно-ориентированных
языков. Ближе к середине лежит совершенно
новый, полностью построенный на принципах
объектно-ориентированной идеологии,
но все же нарушающий последний принцип,
язык Java.
Объектно-ориентированные
языки программирования пользуются
в последнее время большой
популярностью среди
Первый объектно-
Но достоинства
языка Simula 67 были замечены некоторыми
программистами, и в 70-е годы было
разработано большое число
Обзор некоторых
современных объектно-
Язык Smalltalk был
разработан командой Xerox Palo Alto Research Center
Learning Research Group как программная часть
Dynabook - фантастического проекта Алана
Кея. В основу были положены идеи Simula..
Smalltalk является одновременно и языком
программирования, и средой разработки
программ. Это чисто объектно-ориентированный
язык, в котором абсолютно все рассматривается
как объекты; даже целые числа - это классы.
Вслед за Simula, Smalltalk является важнейшим
объектно-ориентированным языком, поскольку
он не только оказал влияние на последующие
поколения языков программирования, но
и заложил основы современного графического
интерфейса пользователя, на которых непосредственно
базируются интерфейсы Macintosh, Windows и Motif.
Известны пять выпусков языка Smalltalk, обозначаемых по году их появления:
Smalltalk-72, -74. -76, -78,
-80. Реализации 1972 и 1974 годов заложили
основу языка, в частности
В основу языка
положены две простые идеи:
В табл.1 приведены
характеристики языка Smalltalk с точки зрения
семи основных элементов объектного подхода.
Абстракции | Переменные
экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Да Да |
Инкапсуляция | Переменных Методов |
Закрытые Открытые |
Модульность | Разновидности модулей | Нет |
Иерархии | Наследование Шаблоны Метаклассы |
Одиночное Нет Да |
Типизация | Сильная
типизация Полиморфизм |
Нет Да (одиночный) |
Параллельность | Многозадачность | Непрямая (посредством классов) |
Сохраняемость | Долгоживущие объекты | Нет |
Таблица 1. Smalltalk. [1]
Большим недостатком Smalltalk являются большие требования к памяти и низкая производительность полученных программ. Это связано с не очень удачной реализацией объектно-ориентированных особенностей.
Язык программирования C++ был разработан Бьерном Страуструпом, сотрудником AT&T Bell Laboratories. Непосредственным предшественником C++ является С with Classes, созданный тем же автором в 1980 году. Язык С with Classes, в свою очередь, был создан под сильным влиянием С и Simula. C++ - это в значительной степени надстройка над С. В определенном смысле можно назвать C++ улучшенным С, тем С, который обеспечивает контроль типов, перегрузку функций и ряд других удобств. Но главное в том, что C++ добавляет к С объектную ориентированность.
Известны несколько
версий C++. В версии 1.0 реализованы
основные механизмы объектно-
Информация о работе Объектно – ориентированные языки программирования