Глава 5 Основы объектно-ориентированного программирования
____________________________________________________________________
Person. Причем в SetData осуществляем контроль значения года рождения путем преобразования строки в число функцией val. Как вам уже известно, эта функция возвращает ненулевое значение в параметре code, если строка не мо-
жет быть преобразована в число.
Однако, в большинстве случаев, целесообразно вообще запретить доступ к некоторым членам класса извне. Для этого применяются спецификаторы дос-
тупа.
5.3.1 Спецификаторы доступа.
Для реализации инкапсуляции имеются следующие спецификаторы (ди-
рективы), управляющие видимостью (доступностью) членов класса:
private (частный, говорят еще приватный) – поля и методы класса недос-
тупны из других модулей. Это позволяет полностью скрыть всю "кухню" реа-
лизации класса. Однако они доступны в пределах того модуля, где описан дан-
ный класс. Более того, если в одном модуле определены несколько классов, то они "видят" приватные разделы друг друга. Это сделано для удобства разработ-
чика данного класса (классов) в этом модуле. Согласитесь, глупо ограничивать в доступе к "внутренностям" телевизора самого изготовителя.
protected (защищенный) – поля и методы класса имеют ограниченную видимость. Они видны в самом классе, во всех классах наследниках этого класса (том числе и в других модулях) и в программном коде, расположенном в том же модуле, что и данный класс.
public (публичный) – свободно доступны из любого места программы, в
том числе и из других модулей.
Как правило, поля класса объявляются как private, а методы – public.
Хотя те методы, которые нужны только для внутреннего использования, вполне можно поместить в раздел private или protected.