Математика | ||||
Объектно-ориентированное программирование-Дж. Кьоу 2005. — 238 с.: ил. | ||||
Объектно-ориентированное программирование-Дж. Кьоу 2005. — 238 с.: ил.
— СПб.: Питер, Дж. Кьоу, М. Джеанини Объектно-ориентированное программирование. Учебный курс. 2005. — 238 с.: ил. ISBN 5-469-00462-7 Написанная простым и понятным языком, эта книга поможет вам сделать первые шаги в объектно-ориентированном программировании. Изложение строится на коротких примерах, помогающих читателю освоить основные концепции ООП. В книге рассказывается об основных возможностях объектов, их применении в моделировании и разработке программного обеспечения. Она поможет читателю быстро войти в мир объектно-ориентированного программирования и стать настоящим мастером. Издание предназначено для всех, кто интересуется программированием. Содержание Посвящение ....................................................... 12 Введение......................................................... 13 Об авторах --.................................................... 14 От издательства.................................................. 14 ГЛАВА 1. Как мы видим мир..........................................15 Вещи, из которых сделаны вещи......................................15 Абстрактные объекты и экземпляры................................16 Почему объекты?.................................................17 Наследование..............................................,......18 Зачем использовать наследование.................................19 Объекты в деловом мире............................................20 Объекты реального мира и объектно-ориентированное программирование .....22 Контрольные вопросы ,............................................23 ГЛАВА 2. Что такое класс..................\.......--...............24 Объект объектов............'......................,...............24 Класс __......................................................25 Определение класса............................................25 Атрибуты.....................................................26 Методы ......................................................28 Объединение класса и программы....................................31 Объявление экземпляра класса.......................................32 Инициализация переменных экземпляра............................33 Доступ к переменным экземпляра..................................34 Присваивание значения переменным экземпляра из вашей программы ..... 34 Вызов методов ...................................................35 Передача параметров .....................................,.....36 Использование возвращаемого значения............................36 Контрольные вопросы --.........................................37 ГЛАВА3. Инкапсуляция............................................... 38, Части программы объединяются......................................38 Что такое инкапсуляция............................................40 Зачем использовать инкапсуляцию....................................40 Защита с использованием спецификаторов доступа.......................40 Спецификатор доступа public................................,-.... 41 Спецификатор доступа private.................................... 42 'Спецификатор доступа protected ... -...............................43 Инкапсуляция в действии на C++ .....................................44 Внутри функции-члена Write() ............................v........45 Внутри функции-члена DispLay()...................................45 Внутри функции main()..........................................,». 46 Спецификатор доступа protected в действии.........................47 Инкапсуляция в действии на 3ava................................--.50 Спецификатор доступа protected в действии ---.—.................51 Контрольные вопросы...................................k......... 53 ГЛАВА 4. Методы и полиморфизм...................................... 54 Методы.........................................................54 Полиморфизм.................................................55 Перегрузка методов ............................................58 Полиморфизм в C++............................................59 Интерфейсы ...............................,.................--62 Проектирование интерфейсов....................................62 Связывание......................................................63 Полиморфизм времени выполнения...................................63 Полиморфизм времени выполнения в действии.......................64 Контрольные вопросы............................................. 67 ГЛАВА 5. Наследование....................................--......68 Наследование: единственный способ программировать.................... 68 Иерархия классов................................................. 69 Типы наследования.............................................70 Выбор подходящего типа наследования...........'.................. 73 Простое наследование в C++--.....................................75 Простое наследование в Java............................--........ 79 Многоуровневое наследование в C++..................................81 Многоуровневое наследование в Java.................................84 Множественное наследование в C++...................................86 Множественное наследование в Java.................................. 89 Контрольные вопросы.............................................89 ГЛАВА б. Абстракция................................................90 Абстракция: сила закона............................................90 Функция и функциональность.....................................91 Сила абстракции...............................................92 Абстрактный метод.............................................93 Абстракция в действии.............................................93 Ошибки в изобилии............................................. 96 Каркасы приложений, библиотеки и абстракция..........................99 Контрольные вопросы --.........................................99 ГЛАВА 7. Идентификация и описание объектов ......................... 101 Объект........................................................ 101 Идентификация атрибутов...................................... 102 Описание атрибутов ........................................... 103 Декомпозиция атрибутов в данные................................ 103 Идентификация вариантов поведения .............................104 Описание вариантов поведения.................................. 105 Описание класса и диаграмма классов ................................108 Отношения между объектами ....................................... 110 Отношение «один-к-одному»....................................110 Отношение «один-ко-многим» ................................... 110 Отношение «многие-к-одноюу»................................... 111 Отношение «многие-ко-многим»..................................111 Диаграмма отношений сущностей.................................111 v Диаграмма уровней............................................112 Контрольные вопросы............................................ 113 ГЛАВА 8. Моделирование реального мира.............................. 114 Теория и реальный мир............................................ 114 Начнем с простейшего.......................................... 115 Объектно-ориентированные и процедурные языки.................... 115 Проблемы поведения.......................................... 115 Моделирование может и не являться целью......................... 116 Внутренняя и внешняя модель................................... 117 Проблемы иерархии........................................... 117 Ориентирование на задачи...................................... 118 Независимые данные и обширные источники данных.................. 119 Мир по частям................................................ 120 Мыслим ли мы объектами? ...................................... 120 ООП и данные ................................................ 120 Иерархия реального мира.......................................... 121 Трансформация иерархии....................................... 122 Проблемы отношения «is а»..................................... 122 Проблемы объектно-ориентированного программирования из реального мира .. 123 Хранение данных............................................. 123 Обычные процедуры ...............,..............--......... 124 Определение объектов ......................................... 125 Иерархия................................................... 125 Компьютерный мир и реальный мир.................................. 126 Контрольные вопросы ............................................ 128 ГЛАВА 9. Взаимодействие........................................... 129 Что такое взаимодействие......................................... 129 Внутри процессов............................................. 130 Взаимодействие в ООП............................................ 130 UML-диаграммы последовательности действий....................... 136 Является ли mainQ классом?.................................... 137 Регистрация студента.......................................... 137 UML-диаграммы взаимодействия................................. 138 Взаимодействие и наследование ................................. 140 Ассоциация.................................................. 140 Самовзаимодействие........................................... 141 Класс-ответственность-взаимодействие............................ 142 Контрольные вопросы............................................ 142 ГЛАВА 10. Моделирование вариантов использования..................... 144 О моделировании вариантов использования ........................... 144 О нет, только не конечные пользователи!.............................. 145 Сбор требований................................................. 146 Интервью ................................................... 146 Существенные варианты использования............................... 147 Системные варианты использования................................. 149 Бизнес-правила...............-................................. 150 Диаграммы пользовательского интерфейса ...........•................. 151 Диаграммы потоков пользовательского интерфейса................... 152 Прототипирование пользовательского интерфейса ................... 153 Определение классов по нашим проектам.............................. 154 Определение технических требований................................ 155 Варианты изменений............................................. 156 Управление проектами............................................ 157 Клиенты.................................................... 157 Проекты.........................,.......................... 158 Запросы на выполнение работ................................... 158 i Задачи...................................................... 159 Оценка ..,,,----...........................................160 Контрольные вопросы ............................................ 161 ГЛАВАИ.Интерфейсы............................................. 162 Внутри интерфейсов.......--................................... 162 Интерфейсы — это не классы ..«.................................. 163 Диаграммы интерфейсов.......................................... 164 Покажите.мне HTML.............................................. 164 . Краткое введение в HTML...................................../. 165 Интерфейс HTMLSource............................................ 165 Классы до реализации интерфейсов.................................. 166 Реализация интерфейсов в Java и С# ................................. 170 Соберем все вместе .......• • • •.........................• •........ 171 А что же C++?................................................... 172 Компоненты.................................................... 173 Стандартные интерфейсы.......................................... 174 Стандартные интерфейсы Java................................... 174 Стандартные интерфейсы С#..................................... 175 Элементарные базовые классы...................................... 176 Контрольные вопросы . .л......................................... 178 ГЛАВА 12. Объектно-ориентированные языки программирования........... 179 История компьютеров и программирования............................ 179 Три современных лидирующих объектно-ориентированных языка программирования.......................................... 181 \ C++........................................................182 Java........................................................187 С#......................................................... 192 Контрольные вопросы ............................................ 196 ПРИЛОЖЕНИЕ А. Заключительный экзамен............................. 197 ПРИЛОЖЕНИЕ Б. Ответы на контрольные вопросы и вопросы заключительного экзамена...................201 Глава 1........................................................ 201 Глава 2........................................................ 203 Глава 3 ........................................................ 204 Глава 4 --..;................................................. 204 Глава 5........................................................ 205 Глава б........................................................ 206 Глава 7........................................................ 206 Глава 8........................................................ 207 Глава 9 __,.................................................. 208 Глава 10 __......................................;............ 208 Глава 11....................................................... 209 Глава 12..............................,........................ 210 Ответы на вопросы заключительного экзамена.......--...............210 ПРИЛОЖЕНИЕ В. Классы в Java....................................... 218 Создание классов .........;...................................;.. 218 Ключевое слово extends........................................ 218 Ключевое слово implements..................................... 219 Поля и функции-члены......................................... 219 Методы ..................................,..................220 Конструкторы..............................................,. 220 Финализаторы................................................ 221 Статические и нестатические инициализаторы.......................221 Интерфейсы.................................................... 222 Пакеты........................................................223 • ПРИЛОЖЕНИЕ Г. Классы в C++ .......................................225 Конструкторы и деструкторы....................................... 226 , Функции-члены............................................... 226 Встроенные функции..........................,............... 226 Объединения, структуры и классы.................................... 227 Объекты, функции и копирующие конструкторы........................, 227 Перечисления в классах........................................... 228 Статические члены............................................... 228 ПРИЛОЖЕНИЕ Д. Определение классов в СИ ............................ 230 Деструкторы и сбор мусора......................................... 231 Сборки........................................................ 232 Алфавитный указатель ............................................. 234 Цена: 150руб. |
||||