|
|
|
Абстракцией
называется моделирование объектов в программе. Другими словами, речь идет об
имитации реально существующих объектов, отражающей особенности их взаимодействия
в окружающем мире. Так, первый объектно-ориентированный язык Simula (http://java.sun.com/people/jag/SimulaHistory.html)
разрабатывался специально для задач имитации и моделирования. Впрочем, модные
концепции виртуальной реальности выводят принцип абстракции на совершенно новый
уровень, не связанный с физическими объектами. Абстракция необходима, потому
что успешное использование ООП возможно лишь в том случае, если вы сможете выделить
содержательные аспекты своей проблемы.
Приступая
к построению объектной модели, всегда задавайте себе вопрос: какие свойства
и методы должны входить в объект, чтобы он адекватно моделировал ситуацию для
решения поставленной задачи?
В ООП термин
«инкапсуляция» означает то, что мы обычно называем маскировкой данных.
Скрывая данные, вы определяете свойства и методы для работы с ними. Вспомните,
что говорилось выше, — успешное применение ООП возможно лишь в том случае, если
все операции с внутренними данными объекта осуществляются посредством обмена
сообщениями. Данные объекта хранятся в полях экземпляра; также часто встречается
термин «переменные экземпляра». В сущности, это одно и то же, и
выбор зависит в основном от того, к какому термину вы привыкли; в этой книге
обычно используется термин «поля экземпляра». Текущее состояние
объекта определяется текущими значениями полей экземпляра. Не забывайте главное
правило: никогда не предоставляйте прямой доступ извне к полям экземпляра (внутренним
данным объекта).
Вернемся к
примеру с объектно-ориентированной программой для отдела кадров, в которой мы
определили класс Employee. В переменных класса Еmplоуее могут храниться следующие
сведения:
Чтобы изменить
значения полей экземпляра, пользователи не обращаются к ним напрямую, а изменяют
свойства и вызывают методы типа Rai seSalаrу. Разумеется, метод RaiseSalary
будет изменять поле с текущей зарплатой, но в нетривиальном классе Employee
он может работать с несколькими полями. Например, легко представить себе метод
Rai seSalагу, который принимает решение о повышении зарплаты с учетом ее текущего
уровня, рабочего стажа и личных достижений работника. Подведем итог. Инкапсуляция
определяет функциональность объекта с точки зрения пользователя. Ее непосредственными
проявлениями в VB .NETвыступают члены класса (методы, события и свойства).
Рискуя надоесть частыми повторениями, мы все же еще раз подчеркнем: успешное
применение инкапсуляции возможно, если другие части вашей программы никогда
не получают прямого доступа к полям экземпляра (переменным) ваших классов. Программа
должна взаимодействовать с ними только через вспомогательные члены класса. Только
при наличии закрытых данных, недоступных извне, объект превращается в «черный
ящик» с четкими правилами поведения и неизвестным внутренним устройством.
Ограничение доступа к данным имеет определяющее значение как для повторного
использования, так и для надежности объекта при долгосрочном использовании.
| ; |
| Атомные станции с реакторами РБМК 1000 Преобразование
энергии на АЭС
Конструкция реактора РБМК-1000
Турбина реакторной установки
Сепаратор-пароперегреватель Насосы
атомной станции с реактором РБМК
Система радиационного контроля
Атомные станции с реакторами ВВЭР
Система управления и контроля Атомные
станции с реакторами БН-600
Высшая Математика Курс лекций -
1 семестр Интегралы - второй семестр
примеры решения задач Конспекты - третий семестр Производная
- 4 семестр ТФКП теория функции Дифференциалы
задачи Mathematica учебник Ядерное
разоружение Ядерные испытания
Ядерная физика MATLAB электронный
учебник Maple 7 математический анализ
Первообразная
курсовые задания Типовой по Кузнецову Смоленская
АЭС Чернобыльская катастрофа
|