Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

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

Реализация программного обеспечения связана с использованием одного из языков программирования. Наиболее удобными для реализации программных систем, разработанных в рамках объектно-ориентированного подхода, являются объектно-ориентированные языки программирования, хотя возможна реализация и на обычных (не объектно-ориентированных) языках (например, на языке C и на языке Fortran).

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

Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ.

Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и др.

Наиболее распространенным объектно-ориентированным языком программирования безусловно является C++. Разработка новых объектно-ориентированных языков программирования продолжается. С 1995 года широко распространен новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet.

Основными понятиями объектно-ориентированного программирования (ООП) являются объект и класс. Понятие «объект» может быть определено следующим образом.

Объект - это нечто, обладающее состоянием, поведением и идентичностью.

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

Идентичность - это такое свойство объекта, которое отличает его от всех других объектов.

Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств.

Поведение - это то, как объект действует и реагирует; поведение выражается в терминах изменения состояния объекта и передачи сообщений. Структура и поведение схожих объектов определяет для них общий класс. Например класс графических интерфейсных элементов - кнопок, переключателей, окон ввода данных, и т.п. Другой пример - если бы мы занялись моделированием экосистемы, то могли бы выделить классы растений, насекомых, рыб, млекопитающих и т.д. Может быть дано следующее определение понятия «класс». Класс - это некое множество объектов, имеющих общую структуру и общее поведение.

Термины «экземпляр класса» и «объект» взаимозаменяемы. Классы вступают между собой в некоторое отношение, называемое иерархией наследования. Наследование - это такое отношение между классами, когда один класс повторяет структуру и поведение другого класса (одиночное наследование) или других классов (множественное наследование).

Для примера рассмотрим программу моделирующую работу цеха. На верхнем уровне иерархии наследования могут быть выделены такие классы, как работник, станок, помещение. Различные категории работников в свою очередь образуют классы, которые наследуют структуру и поведение класса работник (например все работники должны приходить на работу в одно время), но и добавляют что-то свое (выполняют разные категории работ). То же самое относится к станкам и помещениям - станки разного типа и помещения разного назначения.

Предлагается следующее определение термина «объектно-ориентированное программирование»:

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

В данном определении можно выделить три части:

1) ООП использует в качестве базовых элементов объекты, а не алгоритмы,

2) каждый объект является экземпляром какого-либо определенного класса

3) классы организованы иерархически.

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

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

Язык программирования является объектно-ориентированным тогда и только тогда, когда выполняются следующие условия:

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

- объекты относятся к соответствующим типам (классам);

- типы (классы) могут наследовать атрибуты супертипов (суперклассов).

Согласно этому определению такие языки как С++ и Object Pascal являются объектно-ориентированными.

Дальнейшее изложение ООП ведется на примере языка Object Pascal, реализованном в Borland Delphi. В некоторых случаях для сравнения рассматривается реализация объектно-ориентированного подхода в языке С++.

Ключевые программные приемы, применяемые в системах управления. Выбрасывание исключений и их обработка, вложенные исключения, Создание пользовательского класса исключений. Макросы отладки. Основные классы MFC. CObject, коллекции, CString, CWnd, механизм «документ - отображение».

<== предыдущая лекция | следующая лекция ==>
Объектно-ориентированная разработка программ | Программное обеспечение ядра системы управления
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 1695; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.