- •Основы программирования на языке java в среде eclipse
- •Ответственный за выпуск: в.И. Павловський, зав. Кафедрою информационных и компьютерных систем, канд. Техн. Наук, доцент.
- •2.1 Задание на лабораторную работу 19
- •1.2 Краткие теоретические сведения
- •7.3 Порядок выполнения работы 103
- •7.4 Содержимое отчета 103
- •7.5 Контрольные вопросы 104
- •Введение
- •1Лабораторная работа №1 Изучение среды разработки Eclipse
- •1.1 Задание на лабораторную работу
- •1.2.1Создание проекта
- •1.2.2Создание нового класса Java
- •1.3 Порядок выполнения работы
- •1.4 Содержимое отчета
- •Краткие теоретические сведения.
- •1.5 Контрольные вопросы
- •2Лабораторная работа №2 Основы языка Java
- •2.1 Задание на лабораторную работу
- •2.2 Краткие теоретические сведения
- •2.2.1Создание объектов
- •2.2.2Примитивные типы
- •2.2.3Числа высокой точности
- •2.2.4Уничтожение объектов
- •2.2.5Видимость имен
- •2.2.6Использование других компонентов
- •2.2.7Ключевое слово static
- •2.2.8Массивы
- •2.2.9Обработка ошибок с помощью исключений
- •2.3 Порядок выполнения работы
- •2.4 Содержимое отчета
- •2.5 Контрольные вопросы и задания
- •3Лабораторная работа №3 Объектная модель языка Java
- •3.1 Задание на лабораторную работу
- •3.2 Краткие теоретические сведения
- •3.3 Порядок выполнения работы
- •Краткие теоретические сведения.
- •4.2 Краткие теоретические сведения
- •4.2.1Классы дерева и узла
- •4.2.2Вопросы сокрытия реализации
- •4.2.3Пользовательский интерфейс
- •4.3 Порядок выполнения работы
- •4.4 Содержимое отчета
- •Краткие теоретические сведения.
- •4.5 Контрольные вопросы
- •5Лабораторная работа №5 Изучение основ объектно-ориентированного программирования на языке Java. Часть 2
- •5.1 Задание на лабораторную работу
- •5.2 Краткие теоретические сведения
- •5.2.1Классы деревьев и интерфейсы
- •5.2.2Рекурсивный проход по деревьям разных классов
- •5.2.3Расширение ранее созданных классов специфическими операциями пользователей
- •5.2.4Вопросы оптимизации кода
- •5.3 Порядок выполнения работы
- •5.4 Содержимое отчета
- •Краткие теоретические сведения.
- •5.5 Контрольные вопросы
- •6Лабораторная работа №6 Изучение коллекций Java и системы ввода-вывода
- •6.1 Задание на лабораторную работу
- •6.2 Краткие теоретические сведения
- •6.2.1Представление и реализация дерева на основе коллекций
- •В описании узла дерева необходимо создать и инициализировать объект класса список или набор сыновей, например
- •Количество сыновей узла дерева определяется следующим образом:
- •Элементу набора с индексом I выполняется путем получения массива из набора
- •6.2.2Представление и реализация дерева на основе ассоциативных массивов (карт отображений)
- •В описании узла дерева необходимо создать и инициализировать объект ассоциативный массив сыновей, например
- •Количество сыновей узла дерева определяется следующим образом:
- •6.2.3Доступ к коллекции или ассоциативному массиву через итератор
- •6.2.4Использование обобщений Java 5
- •В описании узла дерева необходимо создать и инициализировать коллекцию настраиваемый список, например
- •6.2.5Сериализация и десериализация дерева в файл
- •6.2.6Ввод и вывод в потоки со сжатием данных
- •6.3 Порядок выполнения работы
- •Краткие теоретические сведения.
- •Многопоточность;
- •РекомендУемая литература
- •7.2 Краткие теоретические сведения
- •7.2.1Многопоточность
- •7.2.2Процессы, потоки и приоритеты
- •7.2.3Приоритеты потоков в приложениях Java
- •7.2.4Реализация многопоточности в Java
- •7.2.5Функциональность класса Thread
- •7.2.6Реализация интерфейса Runnable
- •7.2.7Синхронизация потоков
- •7.2.8Синхронизация методов
- •7.2.9Блокировка потока
- •7.2.10Синхронизация доступа к совместно используемым данным.
- •7.2.11Избыточная синхронизация
- •7.2.12Вызов метода wait
- •7.2.13Документирование уровней безопасности
- •7.2.14Работа с графикой Графика 2d
- •Пространства координат
- •Режим рисования
- •Создание цвета
- •Основные методы рисования
- •Рисование фигур средствами Java2d
- •Класс BasicStroke
- •Класс GeneralPath
- •Классы GradientPaint и TexturePaint
- •7.3 Порядок выполнения работы
- •7.4 Содержимое отчета
- •Краткие теоретические сведения;
- •7.5 Контрольные вопросы
7.3 Порядок выполнения работы 103
7.4 Содержимое отчета 103
7.5 Контрольные вопросы 104
РекомендУЕМАЯ литература 105
Введение
Объектное и объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).
Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.
Объектно-ориентированное программирование в настоящее время является абсолютным лидером в области прикладного программирования (языки Java, C#, C++, JavaScript, ActionScript и др.). В то же время в области системного программирования до сих пор лидирует парадигма процедурного программирования, и основным языком программирования является язык C. Также существуют и другие парадигмы программирования: логическое (языки типа Prolog) и функциональное (языки типа Lisp, FP или Haskell) программирование.
Объектно-ориентированное программирование появилось уже много лет назад, но до сих пор занимает почетное место среди концепций написания программ. Несмотря на то что объектно-ориентированное программирование действительно помогает при создании сложных программных систем, важно помнить, что ООП не является ’’серебряной пулей’’, которая запросто справляется с чудовищем. Программирование по-прежнему является одной из наиболее трудных задач, взваливаемых на себя человеком. Чтобы стать профессионалом в программировании, необходимы талант, способность к творчеству, интеллект, знания, логика, умение строить и использовать абстракции и, самое главное, опыт — даже в том случае, когда используются лучшие средства разработки.
Данный лабораторный практикум помогает в получении опыта объектно-ориентированного программировнаия.
1Лабораторная работа №1 Изучение среды разработки Eclipse
Цель работы: Изучить основы разработки Java приложений с использованием инструментальной среды Eclipse. Изучить основные функциональные возможности Eclipse.
1.1 Задание на лабораторную работу
В ходе выполнения данной лабораторной работы необходимо ознакомиться с функциональными возможностями среды разработки Eclipse. Создать простейшее приложение, выводящее дату и время.
1.2 Краткие теоретические сведения
Среда разработки Eclipse является модульной средой разработки на основе программного ядра и интерфейсов для написания и подключения дополнительных модулей (плагинов, plugin). Таким образом, среда Eclipse может быть использована не только для написания приложений на языке Java, но также и для других целей, в зависимости от установленных плагинов. Обычно установка плагинов производится при помощи копирования файлов из дистрибутива плагина в соответствующие папки установочной директории Eclipse – features и plugins.
Рассмотрим основные понятия, применяемые в среде Eclipse:
Рабочая область (Workspace) – это фактически директория на диске, в которой хранятся различные файлы настроек, относящиеся к конкретному пользователю среды Eclipse. В любой момент времени пользователь работает в определенной рабочей области.
Проект (Project) – это логическое понятие, представляющее собой определенную единицу работы пользователя, способ группировки исходных текстов программы, набора библиотек, а также настроек компилятора. Для создания программ на языке Java используется проект с типом Java. При создании такого типа проектов необходимо обратить внимание на указание уровня совместимости JDK версии 5.0 (его можно настроить как глобально для всех проектов в рабочей области, так и для конкретного проекта при его создании). Данный уровень совместимости необходим для полноценной разработки Java-программ для компилятора версии 5.0, который будет использоваться в последующих лабораторных работах. В рабочей области может быть одновременно открыто множество проектов.
Представление (панель View) – это одно из окон в рабочей области, предназначенное для выполнения специфических задач при работе над проектом или проектами. Например, представление Package Explorer используется для просмотра иерархии пакетов в Java проекте, а представление Outline – для просмотра структуры класса, открытого в редакторе. Новые представления могут быть отображены с использованием меню Window->Show View. Как и во многих современных средах разработки представления можно помещать в любом месте оконного интерфейса программы, закреплять их, а также переводить в режим быстрого просмотра (Fast View). Режим быстрого просмотра включается выбором соответствующего пункта контекстного меню, которое появляется при нажатии правой клавиши мыши на заголовке соответствующего представления. Режим быстрого просмотра удобен тогда, когда большая часть времени проводится в работе с редактором исходного кода, а представления нужно изредка ненадолго открывать.
Перспектива (проекция, Perspective) – это способ группировки представлений для выполнения различных задач над одним и тем же проектом или набором проектов. Например, по умолчанию для Java-проектов используется перспектива с одноименным названием, удобная для редактирования исходного кода, а перспектива Debug используется в режиме отладки программ и содержит набор представлений, характерных для данного вида роботы. Пользователь может создавать свои собственные перспективы, а также модифицировать существующие.
Рабочий набор (Working Set) – этот элемент позволяет скрывать неиспользуемые ресурсы от пользователя, когда тот должен работать только над частью открытого проекта или проектов. Использование рабочих наборов позволяет повысить производительность труда за счет сокрытия лишней информации, что позволяет лучше сосредоточиться над решением определенных задач. Создать рабочий набор можно с помощью меню в представлении Package Explorer (иконка справа с изображением стрелки, направленной вниз). С помощью этого меню можно также снять любой рабочий набор, чтобы увидеть все доступные ресурсы. ВНИМАНИЕ! Если выбран определенный рабочий набор и в проект добавляется новый ресурс (например, новый пакет или класс) – он может быть скрыт после своего создания, поскольку не входит в текущий рабочий набор.
Среда Eclipse содержит множество различных функций, описание которых выходит за рамки кратких теоретических сведений, но знание, которых позволяет более продуктивно использовать ресурсы среды. Далее будут рассмотрены лишь некоторые аспекты функционирования. Добавление программных элементов в проект. Выполняется при помощи контекстного меню, вызываемого в представлении Package Explorer (естественно, это только один из множества способов, но он наиболее распространен).
Компиляция программ. Выполняется по умолчанию автоматически (это поведение можно изменить в меню Build). Таким образом, пользователю нет необходимости заботиться о компиляции приложения перед его запуском.
Запуск программы. Для запуска необходимо создать соответствующую конфигурацию запуска, которая включает в себя как имя класса, содержащего точку входа, так и различные параметры командной строки, а также виртуальной машины. Конфигурацию можно создать вручную с помощью меню Run->Run..., но гораздо проще создать ее автоматически, при помощи контекстного меню, вызываемого в редакторе (Run As->Java Application).
Внимание! Учтите, что класс должен содержать точку входа
public static void main(String[] args) |
для того чтобы его можно было запустить. Точка входа генерирует заготовку метода main() для запуска класса как приложения Java.
После создания конфигурации можно запускать приложение с помощью пиктограммы Run в панели инструментов (отладка запускается с помощью пиктограммы Debug, находящейся рядом). Весь вывод приложения будет поступать в представление Console.
Редактирование исходного кода. Eclipse предоставляет богатые средства для редактирования исходного кода, которые включают в себя подсветку синтаксиса, автодополнение кода, автогенерацию кода, а также множество других полезных функций. Автодополнение кода вызывается нажатием сочетания клавиш Ctrl+Пробел и позволяет быстрее писать код, используя только первые буквы набираемого выражения.
Автогенерация кода – это возможность автоматической генерации целых блоков кода из коротких аббревиатур. Для использования необходимо написать соответствующую аббревиатуру и нажать Ctrl+Пробел (после возможно придется выбрать один из вариантов и нажать Enter для выбора). Например:
main → public static void main(String[] args)
sysout → System.out.println()
Список всех аббревиатур можно просмотреть в настройках программы, кроме того, можно добавлять свои аббревиатуры и генерируемый по ним код. Автогенерация кода в Eclipse учитывает также контекст применения и пытается подставить соответствующие имена переменных, полей и методов в генерируемый код.
Меню Source позволяет автоматически генерировать целые последовательности кода, решающие определенные широко распространенные задачи, например создание конструкторов, методов доступа, переопределение методов суперкласса и т.д. Вызывается меню сочетанием клавиш Alt+Shift+S (либо через навигацию по системе меню).
Меню Refactor содержит целый ряд действий для выполнения рефакторинга (переработки) исходного кода. Рефакторинг – это процесс изменения исходного кода без изменения функциональности программы. Применяется для улучшения дизайна, а также удобочитаемости программ. Примером рефакторинга является переименование любых элементов кода в пределах всего проекта (или нескольких проектов), выделение блоков исходного кода в методы, выделение интерфейсов из классов и т.д. Вызывается меню рефакторинга с помощью сочетания клавиш Alt+Shift+T (или через навигацию по системе меню). Обратите внимание, что данное меню является контекстно-зависимым.
Автоматическое исправление ошибок – это средство, позволяющее пользователю выполнять некоторые распространенные действия по устранению ошибок в программах (синтаксических и лексических) в автоматическом режиме. Каждый раз, когда редактор указывает на ошибку, есть возможность выполнить одно из автоматических действий по ее исправлению, для этого необходимо установить курсор на источник ошибки и нажать Ctrl+1 (либо кликнуть на иконку ошибки в соответствующей строке). Например, когда в выражении используется необъявленная до этого переменная, есть возможность автоматически добавить ее объявление, а также провести ряд других действий. Помимо исправления ошибок данная функциональность может быть использована и в других случаях, например для инвертирования условий в условных операторах или переименования идентификатора, все зависит от контекста применения. Рассмотренные выше возможности среды Eclipse требуют детального самостоятельного изучения в процессе выполнения лабораторной работы.
