Сокрытие свойств
Возникает вопрос, почему свойства объявлены с описателем Private, а не Public Заметьте, таким же образом мы описывали свойства и в классе "Личность". Такова общепринятая практика объектно-ориентированного программирования. Если бы свойства имели атрибут Public, - были бы открытыми, тогда при работе с объектом, можно было бы иметь к ним прямой доступ, как при чтении, так и записи. Но такая свобода, как правило, недопустима. Вот возможные стратегии при работе со свойствами:
- Чтение, запись (Read - Write).
- Чтение, запись при первом обращении (Read, Write-once).
- Только чтение (Read-only).
- Только запись (Write-only).
- Ни чтение, ни запись (Not Read -Not Write), - свойство закрыто.
Открытость свойств не позволяет реализовать только первую из стратегий. В нашем примере с классом Rational открытость свойств недопустима, поскольку числитель и знаменатель преобразуются скрытым от внешнего пользователя способом, позволяющим всегда задавать единственного представителя рационального числа.
При задании свойств делайте их закрытыми.
Для доступа к закрытым свойствам и реализации перечисленных выше стратегий работы с ними предложены специальные методы - свойства Property Let, Set и Get, примеры их мы видели в классе "Личность", а подробный разговор еще предстоит.