МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Бурятский государственный университет
имени Доржи Банзарова
Б. В. Хабитуев, Д. Ф. Дерюгин, Г. И. Занданова
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ JAVA
Рекомендовано УМС БГУ
в качестве практикума для обучающихся
по направлению подготовки 02.03.03 Математическое
обеспечение и администрирование информационных систем
Улан-Удэ
Издательство Бурятского госуниверситета
2020
Стр.1
УДК 004.43 (075.8)
ББК 32.976я
Х-122
Утверждено к печати
редакционно-издательским советом
Бурятского госуниверситета
Рецензенты
Л. Х. Ангархаева,
кандидат физико-математических наук, ведущий научный
сотрудник Института физического материаловедения СО РАН
Т. Г. Дармаев,
кандидат физико-математических наук, доцент, заведующий
лабораторией вычислительных и геоинформационных технологий
НОИЦ СИА ИМИ
Текст издается в авторской редакции
Х-122
Хабитуев Б. В.
Программирование на языке Java: практикум / Б. В. Хабитуев,
Д. Ф. Дерюгин, Г. И. Занданова. Улан-Удэ: Издательство
Бурятского госуниверситета, 2020. 94 с.
ISBN 978-5-9793-1548-5
В пособии рассматриваются основы программирования на языке Java, а также
практики объектно-ориентированного программирования. По каждой теме
приводятся примеры задач и разборы. Предлагаются задачи для самостоятельного
решения.
Предлагаемое учебно-методическое пособие предназначено для изучения
курса «Объектно-ориентированное программирование» по направлениям
подготовки бакалавров 02.03.03 Математическое обеспечение и
администрирование информационных систем, 01.03.02 Прикладная математика и
информатика, 02.03.01 Математика и компьютерные науки, 09.03.02
Информационные системы и технологии, 09.03.03 Прикладная информатика.
УДК 004.43 (075.8)
ББК 32.976я
© Хабитуев Б. В., Дерюгин Д. Ф.,
Занданова Г. И., 2020
ISBN 978-5-9793-1548-5
© Бурятский госуниверситет
им. Д. Банзарова, 2020
Стр.2
Оглавление
Предисловие ...................................................................................... 5
Раздел 1. Основы языка Java ........................................................... 8
1.1 Среда разработки, установка и настройка ............................ 8
1.2 Компиляция кода и выполнение программы из командной
строки ............................................................................................ 9
1.3 Первая программа на языке Java ........................................... 9
1.4 Правила оформления программного кода .......................... 11
1.5 Типы данных ......................................................................... 11
1.6 Использование массива параметров функции main .......... 12
1.7 Управляющие конструкции в языке Java ........................... 14
1.8 Преобразование типов данных ............................................ 15
1.9 Лабораторная работа №1 ..................................................... 16
1.10 Проблемы при компиляции кода и среды разработки .... 17
Раздел 2. Классы в языке Java ....................................................... 22
2.1 Класс как тип данных Java ................................................... 22
2.2 Добавление класса в проект. Тестируем класс Cat............ 23
2.3 Объекты, ссылки, классы ..................................................... 25
2.4 Передача объекта по ссылке. Куча ..................................... 26
2.5 Конструкторы ....................................................................... 29
2.6 Перегрузка методов и конструкторы .................................. 30
2.7 Сеттеры и геттеры ................................................................ 32
2.8 Лабораторная работа №2 ..................................................... 33
2.8 Статические методы и атрибуты класса ............................. 35
Раздел 3. Наследование .................................................................. 38
3.1 Повторное использование кода ........................................... 38
3.2 Синтаксис наследования ...................................................... 38
3.3 Наследование и конструкторы ............................................ 41
3.4 Лабораторная работа №3. Наследование ........................... 43
Стр.3
3.5 Спецификаторы доступа ...................................................... 44
3.5 Композиция ........................................................................... 44
3.6 Лабораторная работа №4. Композиция .............................. 45
3.7 Типизация .............................................................................. 45
3.8 Восходящее преобразование. Полиморфизм ..................... 46
3.9 Лабораторная работа №5. Полиморфизм ........................... 49
Раздел 4. Интерфейсы и абстрактные классы .............................. 52
4.1 Абстрактные классы ............................................................. 52
4.2 Интерфейсы ........................................................................... 55
4.3 Разница между абстрактными классами и интерфейсами 58
4.3 Лабораторная работа № 6. Интерфейсы ............................. 59
4.4 Множественное наследование............................................. 60
Раздел 5. Коллекции ....................................................................... 62
5.1 ArrayList................................................................................. 62
5.2 Лабораторная работа №7. Коллекции и абстрактные
классы .......................................................................................... 63
Заключение...................................................................................... 66
Библиографический список ........................................................... 67
Задания для лабораторных работ .................................................. 68
Варианты для лабораторных работ ........................................... 68
Лабораторная работа №1 ........................................................... 68
Лабораторная работа №2 ........................................................... 72
Лабораторная работа №3 ........................................................... 75
Лабораторная работа №4 ........................................................... 79
Лабораторная работа №5 ........................................................... 81
Лабораторная работа №6 ........................................................... 88
Лабораторная работа №7 ........................................................... 89
4
Стр.4
Предисловие
Настоящее учебное издание представляет собой учебнометодическое
пособие для дисциплины «Объектноориентированное
программирование» в рамках реализации
образовательной программы высшего образования по
направлениям подготовки бакалавров 02.03.03 Математическое
обеспечение и администрирование информационных систем,
01.03.02 Прикладная математика и информатика, 09.03.02
Информационные системы и технологии, 09.03.03 Прикладная
информатика и подготовлено в соответствии с требованиями
Федерального государственного образовательного стандарта
высшего образования.
Дисциплина
«Объектно-ориентированное
программирование» относится к:
- вариативной части Блока Б1.В.03.03 ФГОС ВО по
направлению подготовки Математическое обеспечение и
администрирование информационных систем;
- Блоку 1 Б1.О.04.03 ФГОС ВО по направлению подготовки
Прикладная математика и информатика;
- вариативной части Блока Б1.В.02.06 ФГОС ВО по
направлению подготовки Информационные системы и
технологии;
- Блоку 1 Б1.О.04.03 ФГОС ВО по направлению подготовки
Прикладная информатика;
- вариативной части Блока Б1.В.03.03 ФГОС ВО по
направлению подготовки Математика и компьютерные науки.
Изучение дисциплины направлено на формирование
общекультурных/ общепрофессиональных/ профессиональных
компетенций:
- по направлению подготовки Математическое обеспечение и
администрирование информационных систем:
ОПК-3:
способность применять
современные
информационные технологии, в том числе отечественные, при
создании программных продуктов и программных комплексов
различного назначения;
5
Стр.5
ПК-3: способность применять современные технологии
проектирования программного обеспечения;
- по направлению подготовки Прикладная математика и
информатика:
ОПК-2: Способность использовать и адаптировать
существующие математические методы и системы
программирования для разработки и реализации алгоритмов
решения прикладных задач;
ОПК-3: Способность применять и модифицировать
математические модели для решения задач в области
профессиональной деятельности;
- по направлению подготовки Информационные системы и
технологии:
ОПК-6: способность разрабатывать алгоритмы и программы,
пригодные для практического применения в области
информационных систем и технологий;
ПК-11: способность проводить анализ требований к
программному обеспечению, выполнять работы по
проектированию программного обеспечения;
- по направлению подготовки Прикладная информатика:
ОПК-2: способность использовать современные
информационные технологии и программные средства, в том
числе отечественного производства, при решении задач
профессиональной деятельности;
ОПК-3: способность решать стандартные задачи
профессиональной деятельности на основе информационной и
библиографической культуры с применением информационнокоммуникационных
технологий и с учетом основных
требований информационной безопасности.
В результате освоения дисциплины обучающийся должен:
Знать:
- синтаксис языка Java;
-
основные механизмы реализации объектноориентированного
подхода в языке Java;
Уметь:
- применять полученные знания на практике;
6
Стр.6
- использовать средства вычислительной техники.
Владеть:
- методологией и навыками решения практических задач;
- навыками использования технических и программных
средств реализации информационных процессов;
- методологией и основными приемами объектноориентированного
программирования для решения задач с
использованием языка Java.
Основной задачей настоящего учебно-методического
пособия систематизация знаний в рамках дисциплины
«Объектно-ориентированное программирование».
Пособие состоит из 5 разделов:
Первый раздел посвящен основам языка Java, его
управляющим конструкциям и типам данных.
Второй раздел посвящен классам в языке Java,
рассматриваются вопросы перегрузки операторов, передачи
объектов по ссылке, статические атрибуты и методы.
Третий раздел содержит основные практики использования
механизма наследования в Java.
Четвертый раздел посвящен интерфейсам и абстрактным
классам и методам, приводится их сравнение.
Пятый раздел содержит основные практики при работе с
коллекциями в языке Java.
7
Стр.7