5.3 Инкапсуляция
____________________________________________________________________
SetData с помощью которого введенные данные заносятся в нужные поля класса. Признаком окончания ввода служит строка '***'. Получив такую строку с клавиатуры, функция GetName "сигнализирует" вызывающей программе о том, что ввод окончен. При этом новый объект, естественно, создаваться не бу-
дет. Переменная kolperson это счетчик, которая отслеживает количество ре-
ально созданных объектов.
5.3. Инкапсуляция
Выше мы отмечали, что под инкапсуляцией понимается объединение дан-
ных и логики их обработки в одно целое – объект. Помимо этого, инкапсуляция подразумевает сокрытие внутренней структуры и ограничение доступа. Связь с
"внешним миром" осуществляется через так называемый интерфейс класса, т.е.
набором правил, регламентирующих доступ к членам класса. В известном смысле с классом можно ассоциировать некий "черный ящик". Нам известно что он ("черный ящик") может делать. Управлять им мы можем только через его интерфейс. А вот как он это делает нам неизвестно.
Точно так же, нам важно знать что делает и умеет делать класс. А как он это делает нас, вообще говоря, не должно занимать. Этим должен заниматься программист – разработчик класса. Также для нас важно, как этим классом пользоваться (какой у этого класса интерфейс), т.е. какие у этого класса имеют-
ся доступные свойства и методы.
Возьмем, для примера, телевизор. Что происходит у него внутри, когда мы его включаем известно "одному аллаху", но нам это и не нужно знать. Возмож-
но, кому-то интересно как устроен телевизор, но для большинства людей важно то, что у телевизора имеются соответствующие кнопки или пульт с кнопками
(интерфейс) с помощью которых мы можем смотреть футбол или хоккей (ну,
или кому что нравится смотреть).