Главная » Просмотр файлов » Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка

Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 91

Файл №1158633 Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка) 91 страницаДж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633) страница 912019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 91)

В отсутствие перечислений для группировки и совместного использования констант можно использовать интерфейсы (см. раздел 18.3А). Явные модификаторы риЫС, згайс и )(па) не 18.3. Реализация структуры 381 обязательны, потому что по умолчанию они действуют на все поля типа вп, определенные в интерфейсе. Обратите внимание, что интерфейс Епитеспгюп из библиотеки классов )ача уже отменен, как устаревший. Он предоставлял рудиментарные операции для итерирования и не имеет отношения к перечислимым типам. рчьыс слсесгасе сасб рчыгс ссасгс гглат спс сьзв = со рчысс зсассс сглаз гпс оглионо = 1; рчьгсс ссассс гглаг слс валат = вч рчьггс сасгс сглаг ссс зэков = з; 18.3.2. Классы Объектно-ориентированные языки программирования позволяют реализовывать объекты напрямую, непосредственно. Вы должны объявить все атрибуты и методы модели классов внутри соответствующих классов С++ или )ача.

Кроме того, вам придется добавить атрибуты и методы для реализации ассоциаций (см. раздел 18.8.8). Разумно переносить в программу названия из проектной модели. Вы можете рассматривать объекты как сушности, предоставляющие сервисы запрашиваюшим их клиентским объектам. Сервисы — это открытые методы класса. Методы описывают протокол запроса сервисов. Параметры методов — это информация, необходимая объекту для предоставления сервиса, а возвращаемое значение — ответ объекта на клиентский запрос.

Начинайте с обшедоступного интерфейса класса, а потом добавляйте внутренние методы и атрибуты, обеспечивающие поддержку открытых методов. Поскольку открытые методы документируют поведение класса, они обычно приводятся в начале объявления этого класса. Впрочем, это не обязательное условие. И в С++, и в )ача разрешение символов осуществляется только после полного считывания определения класса, поэтому методы могут ссылаться друг на друга в любом порядке. 18.3.3.

Управление доступом Для сервисов, которые могут запрашиваться или вызываться клиентами, в классе должны быть определены соответствующие открытые методы. Не подлежащие изменениям данные тоже можно объявить как открытые. Все остальные члены класса (атрибуты и методы, служашие для внутренней реализации внешней функциональности) должны быть сделаны невидимыми и недоступными для других объектов и функций. Для управления доступом клиентов к методам и данным в С++ и в ~ача используются слецификаторы доступа (ассезз зрес16егз или ассезз шод1йегз). Основные спецификаторы, применимые к атрибутам и методам, одинаковы в обоих языках. Только методы самого класса могут обрашаться к атрибутам и методам, имеющим спецификатор рнъаге (закрытый).

Любой клиент может работать с членами класса, имеющими спецификатор рибйс (открытый). 382 Глава 18 ° Объектно-ориентированные языки Управление доступом в Зача Жесткая инкапсуляция в ) ача требует внимательного отношения к пакетам и к спецификаторам доступа. Пакеты )ача ограничивают область привилегированного доступа.

Название пакета объявляется в самом начале файла исходного кода; таким образом, к одному пакету может быть отнесено несколько файлов. Если метод или атрибут не имеет явного спецификатора рнпаге, другие методы и классы, определенные в том же пакете, могут свободно обрашаться к нему. Если название пакета не указано, класс считается принадлежащим глобальному пакету, и все его члены, за исключением закрытых, доступны всем остальным классам, не принадлежащим каким-либо пакетам.

Мы рекомендуем не помещать классы в глобальный пакет. Более того, все атрибуты и методы, не являющиеся открытыми, следует делать закрытыми, то есть объявлять их как риэате, потому что пакетная область видимости не обеспечивает жесткой инкапсуляции. Доступ к атрибутам следует контролировать при помоши методов-оберток. В языке )ача имеется возможность управления доступом не только к членам классов, но и к самим классам. Класс должен быть объявлен как рибас, чтобы его открытые методы были доступны клиентам, находящимся вне его пакета.

См. раздел «Видимость и доступ к классамю Управление доступом в С++ Спецификаторы доступа С++ действуют на целые секции объявления класса. Все члены класса считаются закрытыми, пока компилятор не встретит явный спецификатор доступа. Спецификаторы могут присутствовать в любом месте объявления класса, и их действие распространяется до следующего спецификатора. Все атрибуты и методы, не относящиеся к интерфейсу класса, опять-таки, следует сделать закрытыми.

Ослаблять ограничения доступа нужно только при наличии достаточно веских оснований. Управление доступом в структурах С++ осуществляется по тем же принципам, но с важным отличием: все члены структуры по умолчанию считаются открытыми (см. раздел 18.3.1). Язык С++ позволяет открывать выборочный доступ к закрытым членам класса при помоши объявления ~пепИ. Класс может предоставить доступ к функции, методу или классу, но при этом он открывает доступ ко всем своим закрытым членам.

Поэтому объявление дружественности следует использовать с осторожностью. Видимость и доступ к классам Класс должен быть виден своим потенциальным клиентам, иначе они не смогут распознать его тип и не получат доступа к его открытым членам. В С++ и )ага минимальным компилируемым блоком является файл. Классы в одном файле видны друг другу, но на практике рекомендуется не помещать в один файл более одного класса (возможно, со вспомогательными классами).

Классы из внешних модулей необходимо явным образом сделать видимыми компилируемому классу. В)ача видимость и доступ определяются структурой пакетов. Классы, находяшиеся в разных файлах одного пакета, считаются видимыми друг другу. Пакеты 18.3. Реализация структуры 383 связаны со структурой файловой системы на диске: все файлы пакета должны находиться в каталоге, имя которого совпадает с именем этого пакета.

В процессе компиляции и выполнения программы ) ача использует переменную окружения С1АВВРАТН, задающую отправную точку для поиска пакетов внутри файловой системы. Пакет может содержать множество классов, но в каждом файле исходного кода )ача может быть только один класс с видимостью риЬ)(с, и имя этого класса должно совпадать с именем файла. Внешние по отношению к пакету классы могут использовать только открытые методы открытых классов. Чтобы открытый класс был виден классу из другого пакета, нужно использовать директиву импортирования: (тров( расйайелате.с!азтпате или (тров( расйабелате.". Система осуществляет поиск необходимых классов все по тому же маршруту СЕАБэРАТН. Пример с банкоматом.

Каждый класс находится в отдельном файле. Например, файл ВапИ)апа будет содержать следующие строки: расваяе Ьапьгпсо рпЬ11с с1авв Вась ( . . . ) Файл Сивготет)апа будет содержать текст: расвазе Ьапв1псо рпЬ11с с1авв Совоопес ( . . . ) Файлы Вал Цала, Симотел(ига и другие классы пакета ЬалЬТп(о должны находиться на диске в папке ЬапЬ(л(о. Чтобы классы ВапЬ и Сивготегбыли доступны классу А ТМзеЫоп, который не входит в пакет ЬалЫп~о, в файл этого класса необходимо включить строки: 1еросп Ьапв1пто.

рсщ1с с1авв ативеввьоп ( Директива (л)рогг делает видимыми и доступными открытые методы открытых классов пакета Ьаля!и!о. Строгих правил именования пакетов нет, но это не значит, что вам следует использовать глобальный пакет. Не используя классы, вы теряете управление видимостью и доступом.

Закрытые атрибуты все равно остаются закрытыми, однако методы, предназначенные для доступа к этим атрибутам, становятся фактически открытыми, а кроме того, открывается доступ к вспомогательным классам, предназначенным для ограниченного использования. С++ не накладывает ограничения на размещение файлов исходного кода или скомпилированных модулей. Программы С++ делятся на заголовочные файлы, в которых содержатся объявления (в том числе и классов), и файлы реализации, в которых содержится код всех методов, за исключением наиболее простых (которые можно реализовать прямо внутри объявления класса).

Для введения символов из одного файла в другой используется директива №(лс(и(!е <!))епал(е> (в случае, если файл находится в папке, предназначенной для хранения таких файлов) или №тс(и((е '!()еиате" (в кавычках указывается полное имя файла). Эта директива ставится в самом начале файла исходного кода. Фактически, эта директива осуществляет подстановку символов из соответствующего заголовочного файла в компилируемый файл исходного кода.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее