Главная » Просмотр файлов » Основы программирования

Основы программирования (947332), страница 51

Файл №947332 Основы программирования (Иванова Г.С. Основы программирования) 51 страницаОсновы программирования (947332) страница 512013-09-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

9.1. Диаграмма объектов предметной областиТаким образом, при выполнении объектной декомпозиции определяют иописывают множество объектов предметной области и множество сообще­ний, которое формирует и получает каждый объект.Задание для самопроверкиВыполнить объектную декомпозицию предметной области задания 2 кпараграфу 8.4.9.2. Классы и объекты-переменныеВ программе для представления объектов предметной области использу­ют переменные специальных типов - классов.Класс - это структурный тип данных, который включает описание полейданных, а также процедур и функций, работающих с этими полями данных.Применительно к классам такие процедуры и функции получили названиеметодов,Поля, описанные в классе, используют для хранения составляющих со­стояния или атрибутов объекта.

Например, если объект Функция долженхранить номер функции, то реализующий его класс должен содержать соот­ветствующее поле.305Часть 2. Объектно-ориентированное программированиеИмя объектаИмя классаИмя объектаСостояниеПоляЗначенияПоведениеМетодыМетодыОбъектпредметной областиКлассОбъектпеременнаяРис. 9.2. Соответствие объектов предметной области, классам иобъектам-переменнымКаждый метод определяет реакцию на некоторое внешнее или внутрен­нее сообщение. Например, объект Меню операций должен реагировать насообщение Активизировать. Получив это сообщение, объект должен вывес­ти меню операций и организовать работу с этим меню, т.е.

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

9.2 показанасвязь объектов предметной области, классов и объектов-переменных.Согласно общим правилам языка программирования объект-переменнаядолжен быть:• создан - для него должна быть выделена память;• инициализирован - полям объекта должны быть присвоены значения;• уничтоэ1с.ен - память, выделенная под объект, должна быть освобож­дена.В зависимости от способа выделения памяти под объект-переменнуюразличают статические объекты, память под которые выделяется при ком­пиляции программы, и динамические, выделение памяти под которые произ­водится в процессе выполнения программы.9.3.

Методы построения классовОдним из наиболее значимых достоинств ООП является то, что боль­шинство классов для реализации объектов не приходится разрабатывать «снуля». Обычно классы строят на базе уже существующих, используя меха­низмы, реализующие определенное отношение существующего и строящегоклассов между собой: наследование, композицию, агрегацию и полиморфноенаследование.Наследованием или обобщением называют отношение между классами,при котором один класс строится на базе второго посредством добавления3069. Основные теоретические подоэ/сенияполей и определения новых методов. При этом исходный класс, на базе кото­рого выполняется построение, называют родительским, или базовым, илисупертипом, а строящийся класс - потомком, или производным классом, илиподтипом.При наследовании поля и методы родительского класса повторно не оп­ределяют, специальный механизм наследования позволяет использовать этикомпоненты класса, особо этого не оговаривая.Примечание.

В Borland Pascal реализовано только простое наследование, при которомкласс может иметь всего одного родителя. В теории программирования определено такжемножественное наследование, предполагающее наличие у класса двух и более родителей. Та­кой вариант наследования реализован, например, в C++.Наследование свойств в иерархии существенно упрощает работу про­граммиста. В настоящее время созданы библиотеки наиболее часто встреча­ющихся классов, которые можно использовать вновь и вновь, строя на их ос­нове классы для решения различных задач.Отношения между различными классами проекта принято иллюстриро­вать диаграммой отношений классов, или просто диаграммой классов. Еслина диаграмме классов показано только отношение наследования, то такуюдиаграмму называют иерархией классов. На диаграмме классов наследова­ние изображают линией с треугольной незакрашенной стрелкой на конц^, на­правленном к классу-родителю (рис.

9.3, а, б). При необходимости допуска­ется произвольное расположение классов родителей и потомков (рис. 9.3, в).Кроме отношения между классами на диаграмме классов целесообразноуказывать поля и методы каждого или только строящегося класса, так как этопозволяет уточнить структуру разрабатываемых классов. Примеры диаграммклассов с уточняющим описанием приведены в главах 10-12.Композицией называют такое отношение между классами, когда один яв­ляется неотъемлемой частью второго.

Физически композиция реализуется'КлассродительКлассродительtГКласспотомокпотом ок 1^ПКласспотомок—{>КлассродительПОТ()мок2Рис. 9.3. Примеры иерархий классов:flf - с одним потомком; б-с двумя потомками; в - с нестандартным расположением классов307Часть 2. Объектно-ориентированное программирование2..41Класс-часть1ОсновнойклассОсновнойкласс21Класс IКласс 2Класс 3Рис. 9.4. Примеры диаграмм классов, изображающих композицию:а — с одним объектным полем; б— с несколькими объектными полями различных типоввключением в класс фиксированного количества полей, являющихся объек­тами другого класса. Такие поля обычно называют объектными.На диаграмме классов композицию изображают линией с закрашеннымромбом, указывающим на класс большей сложности, в который происходитвключение объектных полей (рис. 9.4, а).

Для большей информативностиимеет смысл указывать над стрелкой количество объектов включаемого клас­са в каждый объект включающего класса. При этом допускается указыватьточное значение или диапазон (рис. 9.4, б).Наполнением или агрегаг^ией называют такое отношение между класса­ми, при котором точное количество объектов одного класса, включаемых вдругой класс, не ограничено и может меняться от О до достаточно большихзначений. Физически наполнение реализуется с использованием указателейна объекты. В отличие от объектного поля, которое включает в класс точноуказанное количество объектов (1 или более - при использовании массиваобъектов или нескольких объектных полей) конкретного класса, использова­ние указателей позволяет включить О или более объектов, если они собраныв массив или списковую (линейную или нелинейную) структуру.На диаграмме классов наполнение изображают аналогично композиции,но ромб не закрашивают (рис.

9.5), обозначая таким образом менее жесткуюсвязь между объектами соответствующих классов. Количество объектов ука­зывают в виде диапазона, например, «0..*» или «1 ..*», или просто «*», что оз­начает неопределенное множество объек­тов.0..*КлассПолиморфным наследованием назы­Класс-часть-<он агрегатвают наследование, при котором осуще­ствляют переопределение методов классаРис.

9.5. Пример диаграммыродителя потомком. Метод потомка вклассов, изображающейэтом случае имеет то же имя, что и методагрегацию или наполнениеродителя, но выполняет другие действия.3089. Основные теоретические положенияПереопределение методов - частный случай реализации полиморфизмав программировании.Примечание. Термин «полиморфизм» в соответствии со своим изначальным смыслом(«многообразие») в программировании используют для обозначения возможности изменениякода программы в соответствии со значением некоторых параметров. Такая возможность су­ществует не только в ООП.Различают:• чистый полиморфизм ~ возможность различной интерпретации кода функции в зави­симости от типа аргументов; используется в языках высокого уровня абстракции, например, вязыке LISP или SMALLTALK;• перегрузку {полиморфные имена) функций - возможность определения несколькихфункций с одним именем - одно и то же имя функции может многократно использоваться вразных местах программы; выбор нужной функции может определяться типами аргументов,областью видимости (внутри модуля, файла, класса и т.д.); если выбор определяется типом ар­гументов, то перефузка называется параметрической', например, язык С-и- позволяет разра­ботчику выполнять параметрическую перегрузку функций вне классов, а в Borland Pascal воз­можно определение функций с одинаковыми именами в различных модулях или в модуле иосновной программе;• переопределение методов - в ООП возможность различных определений методов вклассе-потомке и классе-родителе; конкретный метод определяется классом объекта, для ко­торого он вызывается;• обобщенные функции, или шаблоны - возможность описания параметризованныхклассов и шаблонов функций (реализована в C++), параметрами таких описаний являются ти­пы аргументов методов или функций.При переопределении методов различают простой и сложный полимор­физм.Простой полиморфизм используют, если при вызове переопределенно­го метода тип объекта, для которого вызывается этот метод, точно известен,а, следовательно, и точно известно, какой метод должен быть подключен: ме­тод родителя или метод потомка.

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

Тип файла
PDF-файл
Размер
13,06 Mb
Тип материала
Учебное заведение
Неизвестно

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

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