Инкапсуляция или скрытие данных
Понятие инкапсуляция означает, что функции элементы и структуры
данных, определяющие некоторые свойства данного класса, рассматриваются в качестве единого целого. Это подразумевает "защиту" данных в
пределах класса таким образом, что только элементы класса получают к
ним доступ. То есть, для того чтобы получить значение одного из элементов данных класса, нужно вызвать функцию элемент этого класса, ко-
торый возвращает необходимое значение. Для присвоения элементу значения, вызывается соответствующая функция элемент данного класса. Вообще, в объектном программировании считается хорошим тоном закрывать
все данные и функции элементы описываемого класса для доступа "извне".
Borland C++ предоставляет программистам три уровня доступа к
элементам объектов:
- public (общий),
- private (приватный),
- protected (защищенный).
Элементы, объявленные общими, будут доступны любому внешнему
элементу класса, любой функции элементу или выражению в программе,
когда объект является видимым.
Приватные элементы доступны только другим элементам своего же
класса. Они не доступны извне, за исключением специальных функций,
называемых "дружественными".
К защищенным элементам имеют доступ лишь некоторые из объектов.
Они доступны только элементам своего класса и любым его потомкам. Поэтому защищенные элементы занимают промежуточное положение между общими и приватными.
Примечание: приватные элементы недоступны потомкам своего класса. Поэтому и понадобились защищенные элементы.
Уровень доступности к элементам класса проиллюстрирован ниже:
Общие элементы
(public)
Защищенные
элементы (protect)
Приватные
элементы
(private)
Умелое использование уровней доступа повышает надежность программ и их способность к изменениям, ослабляя взаимозависимость между
объектами. Правильно описанными функциями элементами типа public можно изменять приватные элементы, не затрагивая программный код других
объектов. В реальной жизни мы подобным образом взаимодействуем с различными предметами: телевизором, будильником, радиоприемником, автомобилем - знание внутреннего устройства которых нам не обязательно.
Однако, нам важны внешние кнопки и ручки управления.