Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Недостающие ответы.docx
Скачиваний:
12
Добавлен:
19.03.2015
Размер:
199.18 Кб
Скачать

Bilet 33 vopros 2 2. Защищенные и открытые данные и методы.

Существует понятие «область видимости» чего-либо в программе (функции, переменной, свойств и методов класса). Область видимости определяет, можете-ли вы обратиться с этого места программы к какой-либо конструкции, или нет. Основное назначение этого понятия — предотвращение путаницы с переменными, минимизация ошибок путём предупреждения разработчика о возможных коллизиях и несуразицах заранее, экономия памяти с помощью автоматического освобождения места, которое занимали различные программные объекты, выпавшие из области видимости «навсегда» (например: локальные переменные внутри функций). Данные модификаторы призваны регулировать видимость свойств и методов внутри и снаружи класса и объектов класса.

Член класса может быть закрытым (private), защищенным (protected) или открытым (public).

Методы и свойства private (Частные)

Свойства и методы, объявленные с директивой private, доступны только внутри класса, в котором они определены. Это означает, что даже если новый класс будет производным от класса, в котором определены частные свойства и методы, они не будут доступны в производном классе.

Методы и свойства protected (Защищённые)

Когда свойство или метод объявляется с директивой protected, оно может быть доступно только внутри самого класса или внутри производных классов (классов, которые расширяют базовый класс, содержащий метод с директивой protected).

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

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

В классе члены по умолчанию являются закрытыми, а в структуре – открытыми.

Защищенные члены более подвержены злоупотреблениям, чем те, которые объявлены как private. Помещение значительной части данных в общий класс, доступный для всех производных классов, приводит к риску разрушения этих данных. Лучшим решением будет использовать поля данных как закрытые части базового класса. Защищенными следует делать методы базового класса, не доступные извне и доступные в производных классах.

Аналогично членам класса базовый класс может быть объявлен закрытым (private), защищенным (protected) и открытым (public).

bilet 35 vopros 2 2. Принципы создания компонент в визуальных средах разработки. (Я не уверен что это то что нужно, возможно нужно говорить о принципах типа создание компонента путём наследования свойств от стандартного, например создать какойнить NihuyaSebePizdatiyEdit улучшив простой TEdit)

• Компонент должен быть полным. Одиночный метод (или функция), реализующий некоторый алгоритм, еще не является компонентом. Настоящий компонент должен содержать многочисленные свойства и методы, облегчающие его применение в самых разных приложениях. Многократное использование кода только тогда принесет ожидаемый выигрыш времени, когда этот код можно легко встраивать в разные приложения.

• Компонент должен быть целенаправленным. Это означает, что компонент не должен предназначаться для достижения сразу множества целей. Он должен выполнять вполне конкретную задачу, но делать это максимально эффективно. Если вам нужно решение спектра задач, гораздо полезнее (и проще!) создать серию взаимосвязанных компонентов.

• Компонент должен делать нечто новое. Совершенно очевидное требование, которое, тем не менее, нередко игнорируется.