
- •Амурский государственный университет Факультет математики и информатики
- •Допущено учебно-методическим объединением (умо) вузов
- •Методические указания к лабораторной работе
- •1. Простейшее приложение Hello
- •2. Структура Java-программы
- •2.1 Переменные
- •2.1.1 Примитивные типы
- •2.1.2 Ссылочные типы
- •2.2 Методы
- •2.3 Классы
- •2.3.1 Статические и динамические элементы (модификатор static)
- •2.3.2 Модификаторы доступа
- •2.3.3 Наследование классов
- •2.3.4 Специальные переменные
- •2.4 Пакеты и импортирование
- •2.4.1 Использование пакетов
- •2.4.2 Создание пакетов
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Простейший апплет Hello
- •1.1 Апплет Неllo, управляемый мышью
- •2. Простейший апплет HelloApplet, созданный Java Applet Wizard
- •2.1 Создание шаблона апплета HelloApplet
- •2.2 Исходные файлы апплета HelloApplet
- •2.3 Упрощенный вариант исходного текста апплета HelloApplet
- •3. Аргументы апплета
- •3.1 Передача параметров апплету
- •3.2 Апплет, принимающий параметры
- •3.4 Двойная буферизация графического изображения
- •4. События и их обработка
- •4.1 Обработчики событий от мыши и клавиатуры
- •4.2 Обработка событий
- •4.3 Апплет, обрабатывающий события
- •4.4 Устранение мерцания при выводе, двойная буферизация
- •5. Апплеты двойного назначения
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Рисование в окне
- •1.1 Графика
- •1.2 Цвет
- •1.3 Шрифты
- •1.4 Приложение FontsList
- •2. Обработка событий
- •2.1 Как обрабатываются события
- •2.2 События от мыши
- •2.3 Приложение LinesDraw
- •2.4 События от клавиатуры
- •2.5 Приложение KeyCodes
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Компоненты gui
- •2. Устройства или элементы управления
- •2.1 Кнопки
- •2.2 Флажки (или переключатели)
- •2.3 Меню выбора (или выпадающие списки)
- •2.4 Раскрывающиеся списки
- •2.5 Полосы прокрутки
- •2.6 Метки
- •2.7 Текстовые компоненты
- •3. Приложение AllElements
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Контейнеры
- •1.1 Панели
- •1.2 Окна
- •1.3 Рамки, фреймы
- •2. Менеджеры размещения компонентов
- •2.1 Типы менеджеров размещения
- •3. Поведение контейнера при наличии элементов управления
- •4. Приложение PanelsDemo1
- •5. Приложение PanelsDemo2
- •6. Приложение WindowsDemo
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Процессы, задачи и приоритеты
- •2. Реализация многозадачности в Java
- •2.1 Создание подкласса Thread
- •2.2 Реализация интерфейса Runnable
- •2.3 Применение мультизадачности для анимации
- •2.4 Апплет двойного назначения, реализующий интерфейс Runnable
- •3. Потоки (нити)
- •3.1 Состояние потока
- •3.2 Исключительные ситуации для потоков
- •3.3 Приоритеты потоков
- •3.4 Группы потоков
- •4. Приложение VertScroller
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Автономные приложения. Потоки данных. Работа с локальными файлами (2 часа) методические указания к лабораторной работе
- •1. Самостоятельные графические приложения
- •2. Потоки ввода-вывода в Java
- •2.1. Обзор классов Java для работы с потоками
- •2.2 Стандартные потоки ввода-вывода
- •2.3 Потоки, связанные с локальными файлами
- •2.3.1 Создание потоков, связанных с локальными файлами
- •2.3.2 Запись данных в поток и чтение их из потока
- •2.3.3 Закрытие потоков
- •2.3.4 Принудительный сброс буферов
- •2.3.5 Приложение StreamDemo
- •2.4 Потоки в оперативной памяти
- •3 Работа с локальной файловой система
- •3.1 Работа с файлами и каталогами
- •3.2 Приложение DirList
- •3.3 Произвольный доступ к файлам
- •3.4 Просмотр локальной файловой системы
- •3.5 Приложение FileDialogDemo
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Сетевые приложения: передача данных с использованием сокетов (2 часа)
- •1. Сокеты
- •2. Протокол tcp/ip, адрес ip и класс InetAddress
- •3. Потоковые сокеты
- •3.1 Создание и использование канала передачи данных
- •3.2 Конструкторы и методы класса Socket
- •3.3 Пример использования потоковых сокетов
- •4. Датаграммные сокеты (несвязываемые датаграммы)
- •4.1 Конструкторы и методы класса DatagramSocket
- •4.3 Пример использования датаграммных сокетов
- •5 Приложения ServerSocketApp и ClientSocketApp
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Связь по сети с помощью url (2 часа) методические указания к лабораторной работе
- •1. Универсальный адрес ресурсов url
- •2. Класс java.Net.Url в библиотеке классов Java
- •3. Использование класса java.Net.Url
- •3.1 Чтение из потока класса InputStream, полученного от объекта класса url
- •3.2 Получение содержимого файла, связанного с объектом класса url
- •4. Соединение с помощью объекта класса urlConnection
- •5. Приложение Diagram
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Создание и использование сервлетов (2 часа) методические указания к лабораторной работе
- •1. Как устроен сервлет
- •2. Вспомогательные классы
- •3. Запуск и настройка сервлетов
- •4. Сервлет example, принимающий параметры
- •5. Сервлет, обрабатывающий запросы на основе методов cet и post
- •6. Сервлет MyselfInfo
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Работа с базами данных, использование интерфейса jdbc(2 часа) методические указания к лабораторной работе
- •1. Написание апплетов, сервлетов и приложений jdbc
- •1.1 Соединение с базой данных
- •1.2 Применение интерфейса DatabaseMetaData
- •1.3 Посылка статичных sql-запросов
- •1.4 Посылка параметризированных и частовыполняемых sql-запросов
- •1.5 Выборка результатов
- •1.6 Применение интерфейса ResultSetMetaData
- •1.7 Доступ к хранимым функциям и процедурам
- •1.8 Применение выходных параметров
- •2. Обработка исключений jdbc
- •3. Отладка приложений jdbc
- •4. Сервлет, работающий с информацией из базы данных
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Приложение 1 java-файл простейшего апплета и html-документ со ссылкой на него
- •Приложение 2 java-файл апплета, принимающего параметры, и html-документ со ссылкой на него
- •Приложение 3 java-файл апплета, обрабатывающего простые события мыши, и html-документ со ссылкой на него
- •Приложение 4 java-файлы апплета двойного назначения и html-документ со ссылкой на него
- •Приложение 5 java-файлы апплета двойного назначения, обрабатывающего сообщения от мыши, и html-документ со ссылкой на него
- •Приложение 6 java-файл апплета двойного назначения, реализующего интерфейс runnable, и html-документ со ссылкой на него
- •Приложение 7 самостоятельное графическое java-приложение
2.4.2 Создание пакетов
Для создания пакета (т.е. добавления класса в пакет), просто используется следующее предложение в качестве первой строки программы (даже раньше предложения import) в исходном тексте программы:
package ИмяПакета
Содержимое пакета может хранится в одном или нескольких файлах. Каждый такой файл должен содержать только один общедоступный (public) класс. При компиляции этих файлов получающиеся в результате файлы с расширением .class будут помещены в каталоге, соответствующем имени пакета, все точки в котором будут заменены на символ /.
Уникальные имена.
Соглашение об именовании, используемое при создании пакетов, разработано таким образом, чтобы обеспечить уникальность имен пакетов при единообразии доступа к ним и не привести к конфликту имен. Все пакеты, которые создаются программистами и которые будут использоваться вне их организации, должны использовать имена Internet-доменов организации, записанные в обратном порядке, чтобы гарантировать уникальность имен.
Например, для того чтобы пакет хранился на сервере (домене) vvsu.ru и был широко доступен, при создании его надо снабдить именем домена, записанным в обратном порядке, например:
RU.vvsu.mypackage; // этот пакет уникальный
Как видно, первая часть уникального имени должна состоять из прописных букв, в оставшейся части используются строчные буквы.
Например, определим в пакете mypackage класс MyClass, тогда ссылка на него записывается следующим образом:
RU.vvsu.mypackage.MyClass;
В соответствии с соглашением об уникальности именования пакетов можно сразу сказать, что источником пакета mypackage является домен vvsu.ru. А так как только имена классов начинаются с прописной буквы, то очевидно, что MyClass - это класс, а не очередной уровень пакета mypackage.
Задания к лабораторной работе
Задание 1. Изучить основные понятия и термины Java.
Задание 2. Проверить и объяснить работу всех приложений, рассматриваемых в данной главе и отмеченных курсивом. Должны быть созданы следующие приложения Hello (пример 1), VarTypes (пример 2), NewClass (пример 3), TestMethods (пример 4), TestElements (пример 5), TestModificators (пример 6).
Задание 3. Дать ответы на контрольные вопросы.
Контрольные вопросы
Чем отличаются Java-приложения и Java-апплеты?
Какие основные составные части должны присутствовать в каждой Java-программе, их функции (назначение)?
Что такое первичный класс приложения? Какой обязательный метод он должен содержать?
Какие существуют виды переменных Java, чем они отличаются друг от друга?
Какие примитивные типы определены в Java, особенности булевского типа?
Что называется процессом реализации ссылочного типа?
Что делает конструктор класса? Должен ли он обязательно явно присутствовать в объявлении класса?
Какие существуют виды ссылочных типов?
Что такое типы, определенные пользователем?
Что такое стандартные типы, определенные пользователем?
В чем особенности строковых переменных?
Чем массивы Java отличаются от массивов других языков, их преимущества?
Как переменные различных видов передаются в качестве параметров методам?
Как ведут себя строковые переменные при передачи их в качестве параметров?
Что такое совмещение методов?
Что такое элементы класса и элементы экземпляра класса, чем они отличаются друг от друга? Как нужно указывать, что переменная или метод является элементом класса, а не экземпляра?
Для чего используются модификаторы доступа? Какие существуют модификаторы доступа, как они ограничивают доступ к элементам?
Что позволяет делать процесс наследования?
Что такое суперкласс и подкласс?
Что такое повторное использование кода?
Какие заранее определенные переменные содержит каждый класс Java?
Что можно сделать при помощи переменной this? Что можно сделать при помощи переменной super?
Что такое скрытие переменной, затемнение переменной и замещение метода?
Как импортировать классы из пакетов?
Как использовать явные ссылки на классы из пакетов?
Как добавить класс в пакет?
ЛАБОРАТОРНАЯ РАБОТА № 2.
СОЗДАНИЕ ПРОСТЕЙШИХ АППЛЕТОВ (4 часа).