Читайте также:
|
|
Понятие 00П. Причины появления 00П.
00П — основная парадигма прог-ния, кот сохранится и в течение текущего десятилетия (Парадигмы в програмировании определяют как проводить вычисления, как работа, выполняемая компьютером должна быть структурирована и организована). 0на явл рез-том тридцатилетнего опыта и практики, кот берут начало в языке Simula 67 и продолжаются в языках SmallТа1k, С++, 0biect Раsсаl, Javа, С# и др. Тот, кто решает задачу в 00П, мыслит в терминах, присущих самой задаче, а не языку прог-ния. 00П явл третьим крупным этапом (после структурного и модульного прог-ния) в процесе развития технологии прог-ния. В рамках процедурно-ориентированого стиля прог-ния исп-ние структурного подхода не давало желаемого эфекта. По мере увеличения числа компонентов в создаваемых сисмах число ошибок, связаных с неправильным исп-нием процедур и некорректным учетом взаимосвязей между компонентами, стало расти нелинейно. Уменьшить число подобных ошибок и упростить их обнаружение могла позволить алгоритмическая декомпозиция, ориентированая на естественые эл-ты решаемой задачи. Такую декомпозицию задачи будем назть 00ным анализом предметной области. Для описания рез-тов 00ного анализа и последующего програмного синтеза необходимы адекватные языковые средства, построеные на определеных принципах. 0сновным понятием 00П явл объект.
Инкапсуляция св-в объекта
И (дословно «заключение в оболочку») - локализация в рамках объекта всех даных об объекте, кот характер-ют его внутренюю структуру и поведение с запрещением непосредственого доступа к тем даным, кот нецелесообразно (или даже опасно) предоставлять в распоряжение юзера. 0тношения частей к целому и к др частям более ясны, когда все связано вместе. Это качество назется инкапсуляцией. Связывая код и описания даных вместе, объект помогает упорядочить их. Если требуется получение значения одного из атрибутов объекта, то вызывается метод, принадлежащий этому объекту, кот возвращает значение нужного атрибута. Если такой метод представлен в описании объектного типа. Чтобы задать значение атрибута, вызывается метод, кот присваивает этому атрибуту новое значение. В С++ атрибуты объекта назются эл-тами даных или полями, а операции - компонентными функциями, или методами. Компонентная функция, не вырабатывающая другого рез-та, кроме изменения состояния объекта, иногда назется процедурой. Разные 00ные языки прог-ния решают проблему инкапсуляции по-разному. В С++, Java и С# каждый компонент объекта (поле или метод) может помечаться одним из спецификаторов доступа private, protected или public. Компонент, помеченый как private (скрытый), может использоваться только в телах методов даного класса, компонент, помеченый как protected (защищеный), может еще использоваться в наследниках даного класса (т.е. в телах их методов), а компонент, помеченый как public (открытый) – в любом месте проги. Такое гибкое разграничение доступа к компонентам объекта позволяет избежать нежелательных искажений св-в объекта и допустить эфективный доступ к ним, когда это необходимо (прямой доступ к эл-ту даных объекта обычно более эфективен, чем доступ к нему посредством метода).
Дата добавления: 2015-01-29; просмотров: 27 | Поможем написать вашу работу | Нарушение авторских прав |