Protected: доступ из методов производного класса

Лабораторная работа №6. Модификаторы доступа

До сих пор мы объявляли свойства и методы класса, не задумываясь особенно, должны ли они быть доступны в программе, или же используются только для внутренних целей. Модификатор public, знакомый нам по предыдущей главе, имеет как раз такой смысл. Однако в крупных программах, а также законченных библиотеках следует ограничивать доступ к свойствам и методам классов, разрешая только то, что действительно необходимо программе, и "скрывая" все остальное.

ЗАМЕЧАНИЕ

Чаще всего стараются не делать открытыми свойства класса. предоставляя доступ к ним только через специальные методы. Так можно. например, запретить в программе изменение того или иного свойства.

Модификаторы доступа

В РНР существуют три модификатора ограничения доступа: public, protected и private. Их можно указывать перед описанием метода или свойства класса.

Рubliс: открытый доступ

Члены класса, помеченные ключевым словом public ("публичный", "открытый"), доступны для использования извне класса (например, из вызывающей программы). Вот пример:

Private: доступ только из методов класса

С использованием ключевого слова private ("личный", "закрытый") вы можете сделать члены касса "невидимыми" из вызывающей программы, будто бы их и нет. В то же время, методы "своего" класса могут обращаться к ним без всякого ограничения. Пример:

Как видите, модификатор private включает максимально возможные ограничения на доступ к членам класса. Он разрабатывался специально для того, чтобы запретить прямое изменение свойств объекта, а также доступ к различным служебным методам.

Protected: доступ из методов производного класса

Модификатор protected ("защищенный") с точки зрения вызывающей программы выглядит точно так же, как и private: он запрещает доступ к членам объекта извне. Однако по сравнению с private он более "либерален", ибо позволяет обращаться к членам не только из "своих" методов, но также и из методов производных классов (если используется наследование). О наследовании мы подробно поговорим в следующей главе, а пока только скажем, что "защищенными" обычно делают лишь методы, но не свойства классов. Это позволяет создавать "полуслужебные" функции, которые, с одной стороны, выполняют низкоуровневые действия и не должны быть "видны" в основной программе, а с другой, могут использоваться в классах-потомках.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: