- •Предисловие
- •1 Введение в методологию объектно-ориентированного программирования
- •1.1 Сложность программного обеспечения
- •1.2 Объектная декомпозиция
- •1.3 Класс и объект
- •1.4 Типы отношений между классами и объектами
- •1.5 Принципы ООП
- •2 Основы языка Java
- •2.1 История создания Java
- •2.2 Технологии Java
- •2.3 Версии Java
- •2.4 Платформа Java
- •2.5 Разработка программ на языке Java
- •3 Синтаксис и структура языка Java
- •3.1 Комментарии
- •3.2 Аннотации
- •3.3 Имена
- •3.4 Переменные
- •3.5 Литерал
- •3.6 Константы
- •3.7 Примитивные типы
- •3.8 Преобразование типов в Java
- •3.9 Операторы
- •3.10 Управляющие конструкции
- •3.11 Нормальное и прерванное выполнение операторов
- •3.12 Условный оператор
- •3.13 Операторы цикла
- •3.14 Оператор switch
- •4 Основы объектно-ориентированного программирования
- •4.1 Класс и его структура
- •4.2 Конструкторы
- •4.3 Наследование
- •4.4 Геттеры и сеттеры
- •4.5 Перегрузка методов
- •4.6 Ключевые слова this и super
- •4.7 Переопределение методов
- •4.8 Вложенные и внутренние классы
- •4.9 Абстрактные классы
- •4.10 Интерфейсы
- •4.11 Коллекции
- •4.12 Потоки
- •5 Обработка исключений
- •5.1 Иерархия классов исключений
- •5.2 Обработка исключений
- •5.3 Системные исключения
- •5.4 Непроверяемые исключения
- •5.5 Проверяемые исключения java.lang
- •5.6 Собственные исключения
- •Заключение
- •Литература
- •Глоссарий
1
Министерство науки и высшего образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
ФАКУЛЬТЕТ ДИСТАНЦИОННОГО ОБУЧЕНИЯ (ФДО)
Ю. В. Морозова
ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ АНАЛИЗ И ПРОГРАММИРОВАНИЕ
Учебное пособие
Томск
2018
2
УДК 004.42.045(075.8) ББК 32.973.2-018я73
М 801
Рецензенты:
В. В. Герасименко, канд. техн. наук, заместитель начальника отдела информационных технологий ООО «КДВ Групп»;
П. В. Сенченко, канд. техн. наук, доцент кафедры автоматизации обработки информации Томского государственного университета систем управления и радиоэлектроники
Морозова Ю. В.
М 801 Объектно-ориентированный анализ и программирование : учеб-
ное пособие / Ю. В. Морозова. – Томск : Эль Контент, 2018. – 140 с.
ISBN 978-5-4332-0269-6
В пособии изложены основы объектно-ориентированного программирования (ООП). Подробно рассмотрены базовые принципы ООП: полиморфизм, наследование, инкапсуляция и абстракция. Даны основы языка Java.
Для студентов направлений «Программная инженерия» и «Бизнесинформатика», а также всех, кто начинает изучать основы объектноориентированного программирования на языке Java.
ISBN 978-5-4332-0269-6 |
© Морозова Ю. В., 2018 |
|
© Оформление. |
|
ООО «Эль Контент», 2018 |
3
Оглавление
Предисловие..................................................................................................... |
5 |
|
1 Введение в методологию объектно-ориентированного |
|
|
программирования...................................................................................... |
7 |
|
1.1 |
Сложность программного обеспечения................................................. |
7 |
1.2 |
Объектная декомпозиция...................................................................... |
10 |
1.3 |
Класс и объект........................................................................................ |
11 |
1.4 |
Типы отношений между классами и объектами................................. |
13 |
1.5 |
Принципы ООП...................................................................................... |
16 |
2 Основы языка Java .................................................................................... |
22 |
|
2.1 |
История создания Java........................................................................... |
23 |
2.2 |
Технологии Java ..................................................................................... |
25 |
2.3 |
Версии Java ............................................................................................. |
25 |
2.4 |
Платформа Java...................................................................................... |
29 |
2.5 |
Разработка программ на языке Java ..................................................... |
31 |
3 Синтаксис и структура языка Java ........................................................ |
36 |
|
3.1 |
Комментарии.......................................................................................... |
41 |
3.2 |
Аннотации............................................................................................... |
42 |
3.3 |
Имена....................................................................................................... |
43 |
3.4 |
Переменные............................................................................................ |
44 |
3.5 |
Литерал.................................................................................................... |
45 |
3.6 |
Константы............................................................................................... |
46 |
3.7 |
Примитивные типы................................................................................ |
46 |
3.8 |
Преобразование типов в Java................................................................ |
48 |
3.9 |
Операторы............................................................................................... |
50 |
3.10 Управляющие конструкции................................................................ |
56 |
|
3.11 Нормальное и прерванное выполнение операторов......................... |
58 |
|
3.12 Условный оператор.............................................................................. |
59 |
|
3.13 Операторы цикла.................................................................................. |
61 |
|
3.14 Оператор switch................................................................................ |
63 |
|
4 Основы объектно-ориентированного программирования................ |
65 |
|
4.1 |
Класс и его структура............................................................................ |
65 |
4.2 |
Конструкторы......................................................................................... |
70 |
4.3 |
Наследование.......................................................................................... |
73 |
4.4 |
Геттеры и сеттеры.................................................................................. |
73 |
4.5 |
Перегрузка методов............................................................................... |
74 |
|
4 |
|
4.6 |
Ключевые слова this и super........................................................... |
75 |
4.7 |
Переопределение методов..................................................................... |
77 |
4.8 |
Вложенные и внутренние классы......................................................... |
79 |
4.9 |
Абстрактные классы.............................................................................. |
84 |
4.10 Интерфейсы.......................................................................................... |
87 |
|
4.11 Коллекции............................................................................................. |
90 |
|
4.12 Потоки................................................................................................. |
100 |
|
5 Обработка исключений........................................................................... |
116 |
|
5.1 |
Иерархия классов исключений........................................................... |
117 |
5.2 |
Обработка исключений ....................................................................... |
119 |
5.3 |
Системные исключения....................................................................... |
129 |
5.4 |
Непроверяемые исключения............................................................... |
129 |
5.5 |
Проверяемые исключения java.lang............................................ |
131 |
5.6 |
Собственные исключения................................................................... |
131 |
Заключение................................................................................................... |
134 |
|
Литература.................................................................................................... |
135 |
|
Глоссарий...................................................................................................... |
136 |
5
Предисловие
Данное учебное пособие призвано раскрыть основные понятия объектноориентированного программирования (ООП). Оно будет полезно начинающим программистам и тем, кто хочет самостоятельно научиться программировать и освоить язык программирования Java.
В пособии рассмотрены основы языка программирования Java. Изучение начинается с азов объектно-ориентированного программирования и синтаксиса описания классов на языке Java. Подробно изложена лексика языка, рассмотрены элементы программного кода, их назначение и особенности применения. Отдельная глава посвящена обработке исключительных ситуаций. Значительное внимание уделено фундаментальному механизму наследования типов с учетом особенностей Java.
Почему объектно-ориентированный подход к программированию стал приоритетным при разработке большинства программных проектов? ООП предлагает новый мощный способ решения проблемы сложности программ. Вместо того чтобы рассматривать программу как набор последовательно выполняемых инструкций, в ООП программа представляется в виде совокупности объектов, обладающих сходными свойствами и набором действий, которые можно с ними производить. Возможно, изложенные тезисы будут казаться вам непонятными, пока вы не изучите соответствующий раздел программирования более подробно. Но со временем вы не раз сможете убедиться в том, что применение объектно-ориентированного подхода делает программы понятнее, надежнее и проще в использовании.
Язык Java представляет собой новейшую разработку в области объектноориентированных языков.
Соглашения, принятые в учебном пособии
Для улучшения восприятия материала в данном учебном пособии используются пиктограммы и специальное выделение важной информации.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Эта пиктограмма означает определение или новое понятие.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
6
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Эта пиктограмма означает «Внимание!». Здесь выделена важ-
ная информация, требующая акцента на ней. Автор может поделиться с читателем опытом, чтобы помочь избежать некоторых ошибок.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Эта пиктограмма означает цитату.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В блоке «На заметку» автор может указать дополнительные
сведения или другой взгляд на изучаемый предмет, чтобы помочь читателю лучше понять основные идеи.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Эта пиктограмма означает совет. В данном блоке указаны более простые или иные способы выполнения определенной задачи. Совет может касаться практического применения только что изученного или содержать указания на то, как немного повысить эффективность и значительно упростить выполнение некоторых задач.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · |
Пример · · · · · · · · · · · · · · · · · · · · · · · · · · |
Эта пиктограмма означает пример. В данном блоке автор может привести практический пример для пояснения и разбора основных моментов, отраженных в теоретическом материале.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · Выводы · · · · · · · · · · · · · · · · · · · · · · · · · ·
Эта пиктограмма означает выводы. Здесь автор подводит итоги, обобщает изложенный материал или проводит анализ.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Контрольные вопросы по главе
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·