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

Автор работы: Пользователь скрыл имя, 03 Февраля 2013 в 16:55, контрольная работа

Краткое описание

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

Содержание

Введение
4
1. Основные понятия объектно-ориентированного программирования
6
1.1. Основные принципы ООП
6
2. Объект – как базовое понятие в объектно-ориентированном программировании
7
2.1. Инкапсуляция
9
2.2. Наследование как важнейшее свойство объекта
9
2.3. Экземпляры объектных типов
10
2.4. Поля объектов
11
2.5. Методы
11
2.6. Полиморфизм
13
3. Понятие класса
13
4. Процесс объектно-ориентированного проектирования
16
5. Объектно-ориентированные языки
17
6. Простая объектная модель и ссылочно-объектная модель
20
Заключение
21
Список литературы
22

Вложенные файлы: 1 файл

Тема_27.doc

— 101.00 Кб (Скачать файл)

Содержание

 

Введение

4

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

6

1.1. Основные принципы  ООП

6

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

7

2.1. Инкапсуляция

9

2.2. Наследование как важнейшее свойство объекта

9

2.3. Экземпляры объектных типов

10

2.4. Поля объектов

11

2.5. Методы

11

2.6. Полиморфизм

13

3. Понятие класса

13

4. Процесс объектно-ориентированного проектирования

16

5. Объектно-ориентированные языки

17

6. Простая объектная модель и ссылочно-объектная модель

20

Заключение

21

Список литературы

22


 

 

 

 

 

 

Введение

 

 

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

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

 

 В качестве примера  объектно-ориентированного языка  в дальнейшем будем рассматривать  Borland Pascal. Языковые расширения Borland Pascal предоставляют все средства объектно-ориентированного  программирования: большую структурированность  и модульность, большую абстрактность и встроенную непосредственно в язык возможность повторного использования. Все эти характеристики соответствуют коду, который является более структурированным, более гибким и более легким для обслуживания.

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

 

 

 

1. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

 

 

1.1. Основные  принципы ООП

 

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

1. Инкапсуляция - это объединение  в единое целое данных и  алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта (свойствами), а алгоритмы - объектными методами или просто методами.

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

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

2. Наследование - есть  свойство объектов порождать  своих потомков. Объект-потомок автоматически  наследует от родителя все  поля и методы, может дополнять  объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.

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

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

 

 

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

 

 Понятию “объект”  сопоставляют ряд дополняющих  друг друга определений. Ниже приведены некоторые из них.

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

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

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

 Можно выделить  пять типов операций:

- конструктор, создание  и инициализация объекта;

- деструктор, разрушающий  объект;

- модификатор, изменяющий  состояние объекта;

- селектор для доступа  к переменным объекта без их  изменения;

- итератор для доступа  к содержанию объекта по частям  в определенной последовательности.

 Известна и другая  классификация методов объекта,  когда выделяют функции управления, реализации, доступа и вспомогательные  функции.

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

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

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

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

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

 Отношение включения  имеет место, когда составной  объект содержит другие объекты.

 

 

2.1 Инкапсуляция

 

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

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

 

 

2.2 Наследование  как важнейшее свойство объекта

 

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

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

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

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

 Как показали данные  определения, объекты тесно связаны с записями. Новое зарезервированное слово object является наиболее очевидным различием, но как мы увидим позднее, имеется большое число других различий, некоторые из которых довольно тонкие.

 

 

2.3 Экземпляры  объектных типов

 

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

 

 

 

2.4 Поля объектов

 

 Мы можем обратиться  к полю объекта в точности так же, как к полю обычной записи, либо с помощью оператора with, либо путем уточнения имени с помощью точки.

 

 

2.5 Методы

 

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

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

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

Информация о работе Принципы объектно-ориентированного программирования