Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке Delphi_2.doc
Скачиваний:
31
Добавлен:
28.03.2015
Размер:
494.59 Кб
Скачать

3. Объектно-ориентированное программирование (ООП) 3

3.1. Краеугольные камни ООП 3

3.1.1. Что такое объект? 3

3.1.2. Концептуальный пример объекта 3

3.1.3. Природа объекта 3

3.1.4. Понятие класса объектов 4

3.1.5. Три кита ООП 4

3.1.6. Объекты и компоненты 5

3.2. Классы 5

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

3.2.2. Классы в программных модулях 7

3.3. Объекты 7

3.4. Методы 9

3.4.1. Понятие метода 9

3.4.2. Конструкторы и деструкторы 9

3.5. Свойства 11

3.5.1. Понятие свойства 11

3.5.2. Методы получения и установки значений свойств 12

3.5.3. Свойства-массивы 13

3.5.4. Свойство-массив как основное свойство объекта 14

3.5.5. Методы, обслуживающие несколько свойств 14

3.6. Наследование 15

3.6.1. Понятие наследования 15

3.6.2. Прародитель всех классов 16

3.6.3. Перекрытие атрибутов в наследниках 17

3.6.4. Совместимость объектов различных классов 18

3.6.5. Контроль и преобразование типов 19

3.7. Статические методы 19

3.7.1. Понятие статического метода 19

3.8. Виртуальные методы 20

3.8.1. Понятие виртуального метода 20

3.8.2. Механизм вызова виртуальных методов 20

3.8.3. Абстрактные виртуальные методы 21

3.8.4. Динамические методы 21

3.8.5. Методы обработки сообщений 22

3.9. Указатели на методы объектов 22

23

3.12. Метаклассы 24

3.12.1. Ссылки на классы 24

3.12.2. Методы классов 25

3.12.3. Виртуальные конструкторы 26

3.13. Классы общего назначения 26

3.13.1. Классы для представления списка строк 26

Свойства: 28

Методы: 28

События: 28

3.13.2. Классы для представления потока данных 28

Общие свойства: 29

Общие методы: 29

3.14. Итоги 30

4. Исключительные ситуации и надежное программирование 31

4.1. Ошибки и исключительные ситуации 31

4.2. Классы исключительных ситуаций 31

4.3. Обработка исключительных ситуаций 33

4.3.1. Создание исключительной ситуации 33

4.3.2. Распознавание класса исключительной ситуации 35

4.3.3. Пример обработки исключительной ситуации 35

4.3.4. Возобновление исключительной ситуации 36

4.3.5. Доступ к объекту, описывающему исключительную ситуацию 36

4.4. Защита выделенных ресурсов от пропадания 37

4.4.1. Утечка ресурсов и защита от нее 37

4.5. Итоги 38

3. Объектно-ориентированное программирование (ооп)

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

3.1. Краеугольные камни ооп

3.1.1. Что такое объект?

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

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

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

3.1.2. Концептуальный пример объекта

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

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

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

Объект = Данные + Операции

На основании этой формулы была разработана методология объектно-ориентированного программирования (ООП).