Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 117

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 117 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 1172019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

поллежаший упорялочению, операция сортировки определяется в абстрактном -ипе данных лля массива. Процесс сортировки активизируется путем вызова этой опера.пш для конкретного объекта. представляющего собой массив, Парадигма информацнон-.э-ориентированного программирования была популярной в 1980-х годах и хорошо об:.-.уживалась средствами абстракции данных в языках Мос(ц!а-2, Аоа и некоторыми созэеменными языками. Языки, подлерживаюшие информационно-ориентированное -рограммирование, часто называются объектными (оЬ)ес(-Ьазеб) языками.

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

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

Вторая проблема. связанная с программированием, ориентированным на данные, за.дючается в том, что все определенна абстрактных типов данных являются независимын и находятся на одном н том же уровне иерархии. Это часто не позволяет так структу-., ровать программу, чтобы она соответствовала своей проблемной области. Во многих . )чаях исходная задача содержит категории связанных между собой объектов, являюлхся как наследниками одних и тех же прелков (т.е. находящихся на одном и том же "овне иерархии), так и предками и наследниками (т.е.

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

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

Поскольку структура массива скрыта в абстрактном типе данных, без наследования этот тип должен быть модифицирован путем добавления новой операции в эту структуру. При наличии наследования нет необходимости в модификации существующего типа; можно описать подкласс существующего типа, поддерживающий не только операцию сортировки, но и операцию для вычисления среднего арифметического. Абстрактные типы данных в объектно-ориентированных языках по примеру языка Б)М()(.А 67 обычно называются нлассамн (с1аэзез). Как и экземпляры абстрактных типов данных, экземпляры классов называются объектамц (оЬ)есгэ).

Класс, который определяется через наследование от другого класса, называется производным классом (дег1тед с!шз), нли подклассом (зцЬс!азз). Класс, от которого производится новый класс, называется родительским классом (рагепг с!аш), нли суперклассом (шрегс!аш).

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

Это наследование можно усложнить, введя управление доступом к сущностям родительского класса. Например, в определениях абстрактных типов данных (в главе 10) некоторые сущности классифицируются как открытые, а другие — как закрытые. Это управление доступом позволяет программисту скрыть части абстрактного типа данных от клиентов. Такое управление доступом обычно есть в классах объектноориентированных языков.' Производные классы представляют собой другой вид клиентов, которым доступ может быть либо предоставлен, либо запрещен.

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

Этот корневой класс ГгепсЛ бохзс имеет метод для рисования фасада обобщенного французского готического собора. Предположим, что у класса Ггепсл 0осЛзс есть три производных класса — йезжэ, )цязеп и СЛагтгеэ, каждый из которых имеет метод для рисования конкретного фасада. Эти версии метода с)гаи должны замешать метод бган из родительского класса. 434 Глава ! 1.

Поддержка объектно-ориентированного программирования Классы могут иметь два вида методов и два вида переменных. Наиболее широко используемые методы и переменные называются методами и переменными экземпляра ~из!апов те!бог!з апг! таг!аЫез). Каждый объект класса имеет свой собственный набор переменных объекта, описываюших его состояние. Единственное различие между двумя объектами одного и того же класса заключается в состоянии их переменных объекта. Х!етоды объекта оперируют только объектами данного класса. Переменные класса с!аьз таг!ат)ез) принадлежаТ классу, а не объекту, так что они имеют только по одной копии в классе. Методы класса (с)аи шегйобз) могут выполнять операции нал классом л.

возможно, над объектами класса. В этой главе мы будем, в основном, игнорировать методы и переменные класса. Если класс, созданный путем наследования, имеет один родительский класс, то этот -роцесс называется одиночным наследованием (з!пя)е!преп!алое). Если класс имеет .-.есколько родительских классов, то такой процесс называется множественным наслезованием (пш16р!е !ппег!галсе). Если несколько классов связаны между собой одиноч-ыч наследованием, то их взаимоотношения можно изобразить с помощью дерева наследовании (Йеота6оп ггее). Взаимоотношения классов при множественном наследова-ли можно изобразить с помошью графа наследования (бег!табоп ягарЦ. Разработка программы для объектно-ориентированной системы начинается с опреде-гния иерархии классов, описывающей отношения между объектами, которые войдут в -"ограмму, решающую поставленную задачу.

Чем лучше эта иерархия классов соответ.-в) ет проблемной части, тем более естественным будет полное решение. Недостаток наследования как средства, облегчаюшего повторное использование кола, : зьлючается в том, что оно создает зависимость между классами в иерархии наследования. .-о чаляет одно из преимушеств абстрактных типов данных, заключающееся в их взаим-;. независимости, Конечно, не все абстрактные типы данных должны быть полностью неззисимыми, но в обшем случае независимость абстрактных типов данных является олним . их самых сильных положительных свойств. Однако увеличение возможности повторно- использования абстрактных типов данных без создания зависимостей между некоторыиз них может оказаться трудной задачей, если не совсем безнадежной.

11.2.3. Полиморфизм и диисзмическов связмваиив Третьим свойством объектно-ориентированных языков программирования является :- = полиморфизма, обеспечиваемый динамическим связыванием сообщений с определе- зчи методов. Это свойство поддерживается путем разрешения определения полигфных переменных типа родительского класса, которые также могут ссылаться на ьгкты любых подклассов данного класса. Родительский класс может определять ме..:. замешаемый в его подклассах.

Операции, определяемые этими методами, похожи, -: =олжны уточняться для каждого класса в иерархии. Когда такой метод вызывается =ггз полиморфную переменную, этот вызов динамически связывается с метолом в со-згтствуюшем классе. Одна из целей динамического связывания — обеспечить более .=-кое расширение программных систем при их разработке и поддержке. Такие про—.зччы можно писать для операций над объектами настраиваемых классов.

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

Тип файла
DJVU-файл
Размер
9,5 Mb
Тип материала
Высшее учебное заведение

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

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