3.2 Обзор объектно-ориентированного подхода
Есть несколько понятий в объектно-ориентированной технологии. Эти понятия имеют взаимно однозначное соответствие между способом, с помощью которого мы хотим описать проблему и реализацией. Рассмотрим вкратце основные понятия объектно-ориентированной технологии.
Объект представляет объект в реальном мире. Объект - это просто факт, который имеет смысл в специфическом приложении.
Объект - понятие или вещь с определенными границами, которая является уместной в данной проблеме, с которой мы имеем дело. Объекты реализуют две цели:
1. Они помогают понимать окружающий мир.
2. Они обеспечивают практическую реализацию для создаваемого нами приложения.
Чтобы увидеть, какие элементы окружающей среды или вещи могут быть объектами в объектно-ориентированных программах, можно рассмотреть некоторые типичные примеры, указанные ниже
Физические объекты
Транспортные средства в контролирующем трафик приложении
Электрические компоненты в проблеме проектирования интегральных микросхем
Страны в модели погоды в мире
Элементы компьютерной операционной системы
Окна
Меню
Объекты графики
Мышь и клавиатура
Коллекции данных
Опись машинных частей
Файл персонала
Таблица заметок, касающихся экспертизы
Определяемые пользователем типы данных
Время
Углы
Комплексные числа
Объекты с подобными свойствами и действиями должны группироваться в модуль, который может использоваться в программе. Подобные объекты с общими свойствами сгруппированы в класс. Каждый класс описывает набор индивидуальных объектов. Термин класс - сокращение "классы объектов". Класс людей, класс животных, класс процессов, класс многоугольников и класс объектов окна - это все примеры классов.
Класс - группировка объектов, которые имеют те же самые свойства, общее поведение и одинаковые отношения.
Класс определяет характеристики объектов. Однако значения могут быть назначены только после того, как объект будет создан. Только в этом случае появляется фактический образец объекта.
Объект - представление реальной сущности жизни. Это коллекция свойств и поведения. В природе объект является концептуальным или физическим. Например, студент, служащий, является концептуальным объектом, в то время как транспортное средство, плод, является физическим объектом. Все эти объекты имеют некоторые свойства и собственные поведения.
Каждый объект, говорят, является
образцом его класса. Характеристики объекта представлены в классе как переменные и назваются
свойствами или
атрибутами класса. Действия, которые требуются от объекта, должны быть с точки зрения программы представлены в соответствующем классе. Все объекты в классе исполняют некоторые общие действия или операции. Каждое действие, требуемое использования данного объекта, становится функцией в классе, или по-другому называется также
методом.
Абстракция Данных - процесс исследования всей доступной информации об объекте, нужный для идентификации информации, которая является необходимой для данного приложения. Абстракция данных используется для идентификации свойств и методов каждого объекта, необходимого для написания приложения.
Группируя атрибуты и методы в классы, мы фактически выполняем задачу абстракции данных. Общие определения сохраняются в класс один раз и несколько раз в образец класса. Методы могут быть однажды написаны в классе, так, чтобы все объекты в классе извлекают выгоду из многократного использования кода.
Идея относительно классов ведет к идее наследования. Ежедневно в нашей жизни, мы используем понятие классов, разделяемых на подклассы.
Принцип в таком делении - в том, что каждый подкласс совместно использует общие свойства с классом, из которого он получен. Кроме того, подкласс может иметь свои собственные специфические характеристики.
Новый класс
наследовал поведение класса родителя. Таким образом, вышестоящий класс в иерархии наследования называют
родительским классом, или
суперклассом, нового класса.
Вся связь с объектом осуществляется через
сообщения. Объект, которому посылают сообщение, называют получателем сообщения. Сообщения определяют
интерфейс объекта. Всё, что объект может делать, представлено его интерфейсом сообщения. Обеспечение доступа к объекту осуществляется только через его сообщения. Здесь сохранение подробностей часто называют
сокрытием информации.
Преимущество формирования пакета состоит в том, что класс может иметь много свойств и методов, но только некоторые из них могут быть доступны пользователю. Наряду с абстракцией и формированием пакета данных и операций существует аспект возможности многократного использования.
Объектно-ориентированный подход позволяет:
Разделять информацию в пределах приложения
Осуществлять многократное использование дизайна и кода в будущих проектах
Все объектно-ориентированные языки разбивают программу на части, многократно используемые и расширяемые. Программы представляют собой объекты многократного использования. Эти объекты могут группироваться различными способами, формируя новые программы. Программисты могут использовать существующий класс и включать к нему дополнительные возможности, не изменяя при этом первоначальный класс. Давая программистам очень надёжный способ многократного использования кода, намного проще писать новые программы, транслируя существующие части.
Наследование также предполагает многократное использование. Когда мы пишем новую программу, мы не должны начинать с нуля. Мы можем просто многократно использовать существующий диапазон классов, которые имеют методы, нужные нам для написания новой программы.
Объектно-ориентированные языки пытаются делать существующий код легко поддающимся изменению, фактически не изменяя его. Это уникальное и очень мощное понятие, потому что реальная задача постоянно требует изменений. Этого можно достичь используя
наследование и
полиморфизм.
Полиморфизм означает, что одни и те же функции могут вести себя по-разному в различных классах. Существующие объекты те же самые, и любые сделанные изменения -только добавления к ним. Использование этого подхода позволяет программисту поддерживать и пересматривать код с меньшим количеством ошибок начиная с первоначального объекта.