Программирование на языке Java. Введение в курс с примерами и практическими заданиями: учебник

Программирование на языке Java. Введение в курс с примерами и практическими заданиями

Автор

Пруцков Александр Викторович

Аннотация

Учебник включает разделы, посвященные основам объектно-ориентированного программирования, элементам языка Java, его стандартным классам и библиотекам. Разделы содержат более 50 примеров. Отдельная глава содержит 7 заданий, которые позволят закрепить учебный материал на практике.

В учебник вошли материалы лекционных и практических занятий дисциплин, связанных с изучением объектно-ориентированного программирования и языка Java и преподаваемых автором в высших учебных заведениях.

Предназначен для студентов технических направлений, в учебный план которых включены дисциплины «Объектно-ориентированное программирование», «Язык программирования Java», а также для всех желающих изучить язык программирования Java не только в теории, но и на практике.

Библиографическая ссылка

Пруцков А. В. Программирование на языке Java. Введение в курс с примерами и практическими заданиями: учебник. — М.: КУРС, 2018. — 208 с.

Скачать

Программы из примеров учебника

Вы можете открыть программы примеров в среде разработки Eclipse.

Оставить отзыв о книге

Оглавление

  1. Предисловие
  2. Основы языка программирования Java
    1. Классы как основа языка Java
      1. Классы и их назначение
      2. Структура класса
      3. Спецификаторы
      4. Объекты класса
      5. Пример классов, объектов и их использования
      6. Поля
      7. Конструкторы
      8. Методы
        1. Назначение методов
        2. Методы для получения и установки значений полей
        3. Метод main
      9. Ключевое слово this
      10. Класс Object
        1. Класс Object и его методы
        2. Методы equals и hashCode для сравнения объектов
    2. Пакеты
      1. Понятие и назначение пакета
      2. Короткие и полные имена. Область видимости
      3. Правила именования пакетов
      4. Директива import
    3. Структура программы на языке Java
  3. Элементы языка программирования Java
    1. Java Code Conventions
    2. Правила именования элементов программы на языке Java
    3. Комментарии в программе
    4. Типы переменных. Переменные и константы. Преобразования типов
      1. Базовые и ссылочные типы
      2. Базовые типы
      3. Объявление и инициализация переменных
      4. Объявление и инициализация констант
      5. Преобразования базовых типов
      6. Классы-оболочки базовых типов
      7. Константный тип
    5. Операции
      1. Операция присваивания
      2. Арифметические операции
      3. Инкремент и декремент
      4. Операции сравнения
      5. Логические операции
      6. Тернарная операция ?:
    6. Ввод и вывод данных на консоль
      1. Стандартные потоки ввода и вывода языка Java
      2. Вывод данных на консоль
      3. Ввод данных с консоли
    7. Строки
      1. Класс String
        1. Особенности строк класса String
        2. Инициализация строк
        3. Операции со строками
        4. Использование операций над строками
        5. Сравнение строк
        6. Метод toString
      2. Класс StringBuilder
        1. Назначение класса StringBuilder
        2. Методы класса StringBuilder
      3. Класс StringBuffer
      4. Форматированный вывод
        1. Использование форматированного вывода
        2. Строка формата
    8. Управляющие конструкции
      1. Операторы ветвления
        1. Условный оператор
        2. Оператор выбора
      2. Операторы цикла
        1. Циклы в языке Java
        2. Цикл с параметром
        3. Операторы цикла с предусловием и постусловием
      3. Программный блок
    9. Массивы
      1. Понятие массива
      2. Объявление массивов и инициализация их элементов
      3. Цикл перебора элементов
      4. Операции над массивами
        1. Операции и циклы
        2. Суммирование элементов массива
        3. Поиск минимального значения элементов массива
        4. Поиск максимального значения элементов массива
        5. Копирование значений элементов массива
      5. Класс Arrays
        1. Назначение класса Arrays
        2. Методы класса Arrays
        3. Сравнение объектов для сортировки и бинарного поиска. Интерфейсы Comparable и Comparator
        4. Применение методов класса Arrays
      6. Многомерные массивы
  4. Объектно-ориентированное программирование
    1. Основные принципы объектно-ориентированного программирования
      1. Принципы и их назначение
      2. Инкапсуляция
      3. Наследование
        1. Виды взаимосвязей классов
        2. Понятие наследования
        3. Ключевое слово super
        4. Пример наследования
      4. Полиморфизм
    2. Возвращаясь к классам
      1. Классы-данные и классы-утилиты
      2. Методы и конструкторы
        1. Параметры передаются в методы и конструкторы только по значению
        2. Методы и конструкторы с неизвестным количеством параметров
        3. Возвращаемые значения методов
    3. Абстрактные классы и методы
    4. Статические методы и поля
    5. Классы, методы и поля со спецификатором final
    6. Интерфейсы
      1. Назначение и общий вид интерфейсов
      2. Наследование, суперинтерфейсы и подинтерфейсы
      3. Интерфейсы-маркеры
    7. Пример проектирования иерархии классов и применения наследования, абстрактных классов, интерфейсов и рефакторинга
    8. Перечисления Enum
      1. Особенности перечислений Enum
      2. Перечисления как совокупность констант
      3. Перечисления как суперкласс для подклассов констант
      4. Методы перечислений Enum
  5. Стандартные классы и библиотеки
    1. Создание многоязычных интерфейсов пользователя
      1. Класс Locale
      2. Файлы ресурсов
      3. Класс ResourceBundle
      4. Пример использования классов Locale и ResourceBundle
    2. Исключения
      1. Зачем нужны исключения
      2. Конструкция try-catch-finally
      3. Оператор throw
      4. Директива throws
      5. Где обрабатывать исключения
    3. Работа с файлами
      1. Байтовые и символьные потоки
      2. Класс File
        1. Назначение класса File
        2. Конструкторы класса File
        3. Основные методы класса File
        4. Константное поле File.separator
      3. Байтовые потоки
        1. Родительские классы байтовых потоков
        2. Класс FileInputStream
        3. Класс FileOutputStream
        4. Обзор классов байтовых потоков
      4. Символьные потоки
        1. Родительские классы символьных потоков
        2. Класс FileReader
        3. Класс FileWriter
        4. Буферизированные символьные потоки
        5. Обзор классов символьных потоков
      5. Пример чтения данных из текстового файла
      6. Пример записи данных в бинарный файл
    4. Коллекции
      1. Коллекции в языке Java и их виды
      2. Параметризация
      3. Списки и интерфейс List
      4. Множества и интерфейс Set
      5. Итератор
      6. Карты отображений и интерфейс Map
      7. Класс Collections и его методы
      8. Преобразования массивов в коллекции и обратно
        1. Преобразования коллекций в массивы
        2. Преобразования массивов в коллекции
  6. Практические работы
    1. Практическая работа 1. Знакомство со средой разработки программ на языке Java
    2. Практическая работа 2. Строки
    3. Практическая работа 3. Одномерные массивы
    4. Практическая работа 4. Классы. Двумерные массивы
    5. Практическая работа 5. Иерархии классов
    6. Практическая работа 6. Потоки ввода и вывода. Исключения
    7. Практическая работа 7. Коллекции
    8. Приложение к практическим работам
      1. Памятка при выполнении практических работ
      2. Как включить пользовательскую библиотеку в проект
  7. Разработка программ в среде Eclipse
    1. Основные сведения о среде разработки Eclipse
    2. Начало работы в среде разработки Eclipse
      1. Порядок установки на компьютер
      2. Запуск
      3. Основное окно и его элементы
    3. Настройка среды разработки Eclipse
      1. Назначение настройки среды
      2. Установка символов табуляции в качестве отступов
      3. Установка JDK в качестве среды выполнения
      4. Подключение исходного кода стандартных классов
    4. Наиболее часто выполняемые действия в среде разработки Eclipse
      1. Создание проекта. Метод main
      2. Создание класса
      3. Форматирование кода
      4. Запуск проекта на выполнение
      5. Просмотр исходного кода стандартных классов Java Standard Edition
      6. Переименование элементов проекта
      7. Создание нового пакета. Назначение пакетов
      8. Перемещение класса из одного пакета в другой
      9. Экспорт проекта в архив zip
      10. Удаление проекта
      11. Импорт проекта из архива zip
  8. Примеры программ для проведения лекционных занятий
  9. Дополнительные материалы
  10. Библиографический список

Предисловие

Назначение учебника

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

Учебник включает лекционные материалы и задания практических работ курса, который автор преподавал студентам технических специальностей и направлений, связанных с программированием, в высших учебных заведениях: 09.03.04 – «Программная инженерия» и 09.05.01 – «Применение и эксплуатация автоматизированных систем специального назначения». Номера специальностей и направлений приводятся такими, какими они были на момент преподавания курса. За время преподавания автором были изданы учебные пособия и в соавторстве методические указания, материалы которых включены в этот учебник. Также в учебнике использовались материалы двухтомного учебника по информатике и программированию. Методика преподавания курса апробировалась на научно-методических конференциях.

Структура и содержание учебника

    Учебник состоит из четырех частей:
  1. теоретических и справочных материалов по основам языка Java с примерами;
  2. практических работ и заданий к ним;
  3. дополнительных материалов для преподавателей;
  4. библиографического списка, использованного при написании учебника.

Теоретические и справочные материалы учебника поделены на разделы. Каждый раздел неделим и посвящен одной теме. Такое деление объясняется желанием автора дать возможность читателям, еще не освоившим язык программирования Java, использовать учебное пособие в качестве справочного.

В главе «1. Основы языка программирования Java» излагаются основные понятия объектно-ориентированного программирования и языка Java: классы и объекты. Классы включают поля, конструкторы и методы. Метод main является точкой входа в программу. Все классы в языке Java являются прямыми или косвенными подклассами класса Object и наследуют его методы. Для структуризации программы используются пакеты, в которые помещаются классы с общей функциональностью или решающие одну или схожие задачи. Приведен пример использования классов и объектов. В этой и последующих главах для стандартных классов используются короткие имена, так как это не вызывает неоднозначности.

Глава «2. Элементы языка программирования Java» посвящена изложению базовых понятий языка Java, без которых невозможно начать писать программы на этом языке: базовые типы переменных, массивы, строки, управляющие конструкции и порядок ввода и вывода на консоль. Все типы в языке Java делятся на базовые и ссылочные. Базовые типы (целые, вещественные, символьный, логический) используются для определения полей классов. Ссылочные типы представлены в главе строками и массивами. Строки в языке Java – это объекты классов String, StringBuilder или StringBuffer. Массивы могут содержать элементы базовых и ссылочных типов. Операции сортировки, поиска, копирования, заполнения и сравнения собраны в классе-утилите Arrays. Язык Java имеет те же управляющие конструкции, как и большинство языков структурного программирования: ветвления и циклы.

В главе «3. Объектно-ориентированное программирование» продолжается и расширяется изложение базовых понятий объектно-ориентированного программирования, начатых в главе 1. Принципы этого типа программирования (инкапсуляция, наследование и полиморфизм) позволяют сократить дублирование строк программы и тем самым сделать программу легко расширяемой и изменяемой. Классам и их элементам можно придать различные свойства, сделав их абстрактными или статическими. Чтобы задать общее поведение классов, описывающих сущности из разных предметных областей, используются интерфейсы. Перечисления позволяют задать не только совокупность значений объекта, но и каждому значению задать свое собственное поведение. Глава завершается примером проектирования иерархии классов с использованием рассмотренных понятий.

В главе «4. Стандартные классы и библиотеки» представлены наиболее часто используемые стандартные классы и библиотеки языка Java. Язык Java предоставляет возможность разработки многоязычных интерфейсов программ. Чтение и запись в различные типы данных (файлы, массивы, строки) осуществляется единообразно с помощью потоков ввода и вывода данных. Ошибки при работе с потоками ввода или вывода, а также другие ошибки при выполнении программы обрабатываются с помощью исключений. Кроме массивов, для хранения и обработки данных используются коллекции.

Почти каждый раздел снабжен примерами, поясняющими описываемые понятия. Обозначение примера включает номер главы и через дефис порядковый номер примера в этой главе. Текст программ в примерах оформлен в соответствии с соглашениями Java Code Conventions [45].

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

Читателю (и студентам) предлагается закрепить теоретический материал на практике. Для этого в учебник включена глава «5. Практические работы». Практические работы охватывают все темы разделов учебника: строки и массивы; классы и их иерархии; потоки ввода и вывода; коллекции. Практические работы имеют различные варианты заданий, рассчитанные на одну студенческую группу (15-20 человек).

Существуют различные среды разработки программ на языке Java. Однако предполагается, что студенты будут использовать среду Eclipse. Освоить навыки работы в ней можно с помощью главы «6. Разработка программ в среде Eclipse».

На лекционных занятиях использовались специально подобранные примеры для пояснения понятий языка Java и объектно-ориентированного программирования. Примеры приведены в главе «7. Примеры программ для проведения лекционных занятий».

В главе «8. Дополнительные материалы» приводятся методические рекомендации по проведению лекционных и практических занятий на основе этого учебника.

Книги, учебные материалы и информационные ресурсы глобальной сети Интернет из библиографического списка использовались в качестве вспомогательных источников информации для написания теоретических разделов учебника и для разработки вариантов заданий к практическим работам. Библиографический список упорядочен в алфавитном порядке.

Принципы, на которых построен учебник

Перечислим основные принципы, которые положены в основу учебника.

1. Последовательность изложения.

Понятия объясняются на основе уже известных понятий. При написании разделов материал излагался максимально последовательно, без перескоков от одного понятия к другому. Однако в нескольких случаях приходилось упоминать о каком-то понятии, без которого невозможно последующее изложение, а затем раскрывать его более полно в следующих разделах. Этот недостаток присущ многим книгам, посвященным языку Java и другим объектно-ориентированным языкам программирования.

2. Минимум строк программ в примерах. Программы должны быть объемом не более одной страницы.

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

3. Минимум требуемого теоретического материала.

Теоретический материал включает необходимые сведения для выполнения практических работ.

Обозначения, используемые в учебнике

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

Сжатый шрифт без засечек

Листинг программ в примерах и теоретическом материале, заголовки методов в описании классов.

Моноширинный шрифт с засечками

Текст, выводимый программой на экран или консоль.

Символ □

Конец примера. Отделяет пример от последующего текста.

Об авторе

Александр Викторович Пруцков – доктор технических наук, профессор кафедры вычислительной и прикладной математики Рязанского государственного радиотехнического университета на протяжении более 10 лет читает курсы по программированию и информатике, активно сотрудничает с российскими и международными компаниями из отрасли информационных технологий.

Поддержка учебника

Автор готов ответить на вопросы и дать консультации преподавателям, желающим использовать материалы учебника для постановки новых или обновления существующих курсов. Связаться с автором по всем интересующим вопросам можно через его Интернет-ресурс http://prutzkow.com. С этого же Интернет-ресурса можно загрузить примеры, приведенные в учебнике, в электронном виде.