Спецификаторы доступа.

Спецификаторы доступа.

Для реализации инкапсуляции имеются следующие спецификаторы (директивы), управляющие видимостью (доступностью) членов класса:

 private (частный, говорят еще приватный) – поля и методы класса недоступны из других модулей. Это позволяет полностью скрыть всю «кухню» реализации класса. Однако они доступны в пределах того модуля, где описан данный класс. Более того, если в одном модуле определены несколько классов, то они «видят» приватные разделы друг друга. Это сделано для удобства разработчика данного класса (классов) в этом модуле. Согласитесь, глупо ограничивать в доступе к «внутренностям» телевизора самого изготовителя.

 protected (защищенный) – поля и методы класса имеют ограниченную видимость. Они видны в самом классе, во всех классах наследниках этого класса (том числе и в других модулях) и в программном коде, расположенном в том же модуле, что и данный класс.

 public (публичный) – свободно доступны из любого места программы, в

том числе и из других модулей.

Как правило, поля класса объявляются как private, а методы –public.

Хотя те методы, которые нужны только для внутреннего использования, вполне можно поместить в раздел private илиprotected.

Имя класса в определении пишется для того, чтобы компилятор однозначно определил, к какому классу принадлежит данная функция, так как функции – члены различных классов могут иметь одинаковые имена.

При определении классов не происходит реального выделения памяти под объекты этого класса, а создаются лишь новые производные типы данных, для которых будут использоваться функции – члены класса.

Для того чтобы начать работу с реальными объектами какого-либо класса, эти объекты необходимо сначала определить. При этом в программе необходимо указать имя класса, объект которого должен быть создан, а также имя самого объекта. У каждого из классов может быть произвольное число объектов.

Добавить комментарий