Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированный анализ и программирование..pdf
Скачиваний:
11
Добавлен:
05.02.2023
Размер:
2.3 Mб
Скачать

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

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Эта пиктограмма означает «Внимание!». Здесь выделена важ-

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

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Эта пиктограмма означает цитату.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

В блоке «На заметку» автор может указать дополнительные

сведения или другой взгляд на изучаемый предмет, чтобы помочь читателю лучше понять основные идеи.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Эта пиктограмма означает совет. В данном блоке указаны более простые или иные способы выполнения определенной задачи. Совет может касаться практического применения только что изученного или содержать указания на то, как немного повысить эффективность и значительно упростить выполнение некоторых задач.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · ·

Пример · · · · · · · · · · · · · · · · · · · · · · · · · ·

Эта пиктограмма означает пример. В данном блоке автор может привести практический пример для пояснения и разбора основных моментов, отраженных в теоретическом материале.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · · Выводы · · · · · · · · · · · · · · · · · · · · · · · · · ·

Эта пиктограмма означает выводы. Здесь автор подводит итоги, обобщает изложенный материал или проводит анализ.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Контрольные вопросы по главе

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·