Бертран Мейер - Основы объектно-ориентированного программирования

Тут можно читать онлайн Бертран Мейер - Основы объектно-ориентированного программирования - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая околокомпьтерная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Бертран Мейер - Основы объектно-ориентированного программирования краткое содержание

Основы объектно-ориентированного программирования - описание и краткое содержание, автор Бертран Мейер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

В книге Бертрана Мейера рассматриваются основы объектно-ориентированного программирования. Изложение начинается с рассмотрения критериев качества программных систем и обоснования того, как объектная технология разработки может обеспечить требуемое качество. Основные понятия объектной технологии и соответствующая нотация появляются как результат тщательного анализа и обсуждений. Подробно рассматривается понятие класса - центральное понятие объектной технологии. Рассматривается абстрактный тип данных, лежащий в основе класса, совмещение классом роли типа данных и модуля и другие аспекты построения класса. Столь же подробно рассматриваются объекты и проблемы управления памятью. Большая часть книги уделена отношениям между классами – наследованию, универсализации и их роли в построении программных систем. Важную часть книги составляет введение понятия контракта, описание технологии проектирования по контракту, как механизма, обеспечивающего корректность создаваемых программ. Не обойдены вниманием и другие важные темы объектного программирования – скрытие информации, статическая типизация, динамическое связывание и обработка исключений. Глубина охвата рассматриваемых тем делает книгу Бертрана Мейера незаменимой для понимания основ объектного программирования.

Основы объектно-ориентированного программирования - читать онлайн бесплатно полную версию (весь текст целиком)

Основы объектно-ориентированного программирования - читать книгу онлайн бесплатно, автор Бертран Мейер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Класс POINT

Ниже приведена версия исходного текста класса POINT . Фрагменты, начинающиеся с двух тире "--", представляют собой комментарии, продолжающиеся до конца строки. Комментарии содержат пояснения, облегчающие понимание текста, и не влияют на семантику класса.

indexing

description: "Точка на плоскости"

class POINT feature

x, y: REAL

-- Абсцисса и ордината

rho: REAL is

-- Расстояние до начала координат (0, 0)

do

Result := sqrt (x^2 + y^2)

end

theta: REAL is

-- Полярный угол

do

-- Предлагается реализовать в качестве упражнения (упр. У7.3)

end

distance (p: POINT): REAL is

-- Расстояние до точки p

do

Result := sqrt ((x - p.x)^2 + (y- p.y)^2)

end

translate (a, b: REAL) is

-- Перемещение на a по горизонтали, b по вертикали

do

x := x + a

y := y + b

end

scale (factor: REAL) is

-- Изменение расстояния до начала координат в factor раз

do

x := factor * x

y := factor * y

end

rotate (p: POINT; angle: REAL) is

-- Поворот вокруг p на угол angle

do

-- Предлагается реализовать в качестве упражнения (упр. У7.3)

end

end

Некоторые аспекты приведенного текста неочевидны и требуют дополнительных разъяснений.

Класс в основном состоит из предложения, перечисляющего различные компоненты, вводимого ключевым словом feature. Кроме того, присутствует предложение indexingдающее общее описание ( description ), полезное для понимания функциональности класса, но никак не влияющее на семантику исполнения. Позднее будут рассмотрены три дополнительных предложения: inherit- для наследования; creation- при необходимости использования специального конструктора; invariant- для объявления инвариантов класса. Будет рассмотрена также возможность включения в класс двух или более предложений feature.

Основные соглашения

Класс POINT демонстрирует ряд приемов, которые будут использованы в последующих примерах. Необходимо оговорить основные соглашения.

Распознавание вида компонент

Компоненты x и y объявлены как относящиеся к типу REAL без ассоциированного алгоритма, следовательно, они являются атрибутами. Все остальные компоненты содержат конструкции вида

is

do

... Инструкции ...

end

которые описывают алгоритм, что является признаком подпрограмм. Подпрограммы rho , theta и distance возвращают результат типа REAL во всех трех случаях, что отражено в объявлениях вида

rho: REAL is ...

Это определяет их как функции. Две другие подпрограммы, translate и scale , не возвращают результата (объявление не завершается конструкцией: T , где T некоторый тип) и, соответственно, являются процедурами.

Поскольку x и y являются атрибутами, а rho и theta функциями, данный конкретный класс использует для представления точки декартову систему координат.

Тело подпрограммы и комментарии к заголовку

Тело подпрограммы (предложение do) представляет собой последовательность инструкций. Можно разделять последовательные инструкции и объявления точкой с запятой в традициях Algol-Pascal, но это не обязательно. Далее с целью упрощения точка с запятой будет опускаться между элементами на отдельных строках, но всегда будет использоваться как разделитель нескольких инструкций или объявлений в одной строке. (См. "Война вокруг точек с запятой", лекция 8курса "Основы объектно-ориентированного проектирования")

В подпрограммах класса POINT все инструкции являются присваиваниями значений. В данной нотации для обозначения присваивания используется символ " := " также следуя соглашениям, принятым в Algol и Pascal. Этот символ нельзя перепутать с символом равенства " = ", применяемым, как и в математике, в операциях сравнения.

Другое соглашение о нотации касается использования комментария к заголовку подпрограммы. Уже отмечалось, что комментарии начинаются с двух последовательных тире " -- ". Они могут размещаться в любом месте, где, по мнению автора, дополнительные разъяснения могут принести пользу. Особую роль играет комментарий к заголовку (header comment). В соответствии с общим стилевым правилом он должен помещаться в начале каждой подпрограммы после ключевого слова isс отступом как в примере класса POINT . Комментарий к заголовку должен кратко отражать назначение подпрограммы.

Атрибуты также сопровождаются комментариями, следующими непосредственно за их объявлением и имеющими тот же отступ, что и комментарии к заголовку подпрограмм. Иллюстрацией могут служить объявления x и y .

Предложение indexing

В начале нашего класса помещено предложение, начинающееся с ключевого слова indexing. Оно содержит единственный пункт, помеченный как description . Предложение indexingне оказывает влияния на выполнение программ и служит для размещения информации, ассоциированной с классом. В общем случае оно содержит ноль или более пунктов вида

index_word: index_value, index_value, ...

где index_word - произвольный идентификатор (элемент индексирования), а каждое значение index_value - произвольный элемент языка (идентификатор, целое число, строка и т.д.) (См. "Заметки об indexing", лекция 4).

Это дает два преимущества:

[x].Читатели исходного текста получают сводку свойств класса без необходимости рассмотрения деталей.

[x].В средах разработки с поддержкой повторного использования кода соответствующие инструментальные средства (часто называемые браузерами, навигаторами кода, инспекторами кода и т.д.) могут использовать информацию из данного раздела, помогая потенциальным пользователям найти нужные им классы. Эти средства обычно позволяют вести поиск по заданному шаблону среди элементов индексирования и их значений index_value .(В лекции 18курса "Основы объектно-ориентированного проектирования" рассмотрен базовый механизм ОО-браузеров.)

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Бертран Мейер читать все книги автора по порядку

Бертран Мейер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Основы объектно-ориентированного программирования отзывы


Отзывы читателей о книге Основы объектно-ориентированного программирования, автор: Бертран Мейер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x