- •Учебно-методическое пособие
- •V курса заочной формы обучения автф
- •Предисловие
- •Глава 1. Основы программирования на java. Создание простейших приложений и апплетов в netbeans 7.0
- •Инструментальная среда разработки программ на Java
- •Использование среды NetBeans 7.0
- •Структура Java-программы
- •Переменные
- •Примитивные типы. Всего в Java определено восемь примитивных типов: int (4b), short (2b), byte (1b), long (8b), float (4b), double (8b), boolean (true, false), char (2b).
- •Модификаторы доступа. Модификаторы доступа используются для управления доступностью элементов класса из других частей программы (в других классах).
- •Наследование классов
- •Специальные переменные
- •Пакеты и импортирование Классы являются основными строительными блоками любой Java-программы. Пакеты содержат в себе наборы классов (а также исключения и интерфейсы).
- •Импортирование пакетов. Существует ряд способов доступа к классам в пакетах, основным из которых является импортирование пакета в начале программ:
- •Создание пакетов. Для создания пакета (т.Е. Добавления класса в пакет) в первой строке программы указывается следующее предложение:
- •Апплеты
- •События и их обработка
- •Апплеты двойного назначения
- •Практические задания
- •Вопросы для самопроверки
- •Глава 2. Обработка событий. Графика. Графика в Java
- •Цвет. Для задания текущего цвета используется метод setColor() класса Graphics. Создадим случайный цвет и установим его, g - объект Graphics:
- •Модель делегирования событий в Java 1.1
- •1. Пример обработки события с использованием реализации интерфейса.
- •2. Пример обработки события с использованием вложенных классов, наследующих классы-адаптеры.
- •3. Пример обработки события с использованием вложенного анонимного класса.
- •Графика 2d
- •Вероятностный подход
- •Практические задания
- •Вопросы для самопроверки
- •Глава 3: разработка графического интерфейса программы Библиотека графических компонент awt
- •Флажки (или переключатели). Язык Java поддерживает два типа флажков-переключателей: неисключающие (класс jCheckBox) и исключающие (класс jRadioButton).
- •Комбобоксы (или выпадающие списки). Класс jComboBox дает возможность создавать список элементов выбора, который всплывает на экране в виде меню.
- •Контейнеры
- •Менеджеры размещения компонентов
- •Практические задания
- •Вопросы для самопроверки
- •Глава 4. Классы-коллекции
- •Интерфейс Collection. Интерфейс Collection из пакета java.Util описывает общие свойства коллекций List и Set. Он содержит методы добавления и удаления элементов, проверки и преобразования элементов:
- •Классы, наследующие интерфейс List. Класс ArrayList очень похож на класс Vector, имеет тот же набор методов и может использоваться в тех же ситуациях.
- •Сравнение элементов коллекций.
- •Классы, создающие множества. Класс HashSet полностью реализует интерфейс Set и итератор типа Iterator. Класс HashSet используется в тех случаях, когда надо хранить только одну копию каждого элемента.
- •Практические задания
- •Вопросы для самопроверки
- •Глава 5. Многопотоковые приложения Процессы, потоки и приоритеты
- •Реализация многозадачности в Java
- •Создание подкласса Thread. При использовании этого способа для потоков определяется отдельный класс, например:
- •Применение анимации для мультизадачности
- •Состояние потока
- •Программирование движения объекта
- •Практические задания
- •Вопросы для самопроверки
- •Глава 6. Потоки данных. Работа с локальными файлами Организация ввода-вывода в Java
- •Классы потоков ввода-вывода
- •Иерархия классов потоков ввода-вывода
- •Консольный ввод/вывод. Для вывода на консоль используется метод println() класса PrintStream. Вместо System.Out.Println(), то вы можете определить новую ссылку на System.Out, например:
- •Каналы обмена информацией. В пакете java.Io есть четыре класса Pipedxxx, организующих обмен информацией между потоками - Thread.
- •Файловые диалоги. При работе с файлами часто требуются стандартные файловые диалоги. Библиотека Swing предлагает класс jFileChooser для реализации этого функционала.
- •Практические задания
- •Вопросы для самопроверки
- •Глава 7. Сетевые приложения «клент-сервер» Сетевые средства
- •Работа по протоколу tcp
- •Работа по протоколу udp
- •Практические задания
- •Вопросы для самопроверки
- •Глава 8. Generic-классы в java
- •Практические задания
- •Вопросы для самопроверки
Практические задания
Изучить особенности реализации сетевых приложений в Java.
Доработать программу, созданную в лабораторных работах № 2-6:
создать отдельное консольное приложение, которое будет играть роль TCP-сервера. Клиентом будет приложение, которое было создано в предыдущих работах;
TCP-сервер должен ожидать подключения клиентов и выдавать вновь подключенному клиенту список уже подключенных. Необходимо также внести изменения в интерфейс клиента, так чтобы в панели управления отображался список всех подключенных к серверу клиентов. При отсоединении клиентов или при подключении новых список должен обновляться;
запрограммировать специальное взаимодействие по TCP с другими клиентами через сервер по варианту;
добавить возможность серверу управлять клиентами по протоколу UDP. Пользователь вводит команду в консольное окно сервера, и сервер отправляет команду тому или иному клиенту. Команда задается вариантом. Адреса клиентов можно получить из установленных TCP-соединений, порт UDP не должен совпадать с портом TCP;
связь между клиентами осуществляется через сервер. Для действия необходимо предусмотреть элементы управления в интерфейсе или команду в консоле.
Вариант 1
TCP: Реализовать выбор из одного подключенного клиента N случайных объектов и поместить в текущую симуляцию.
UDP: Команда отключения клиента.
Вариант 2
TCP: Реализовать возможность отправить N случайных объектов из текущей симуляции другому подключенному клиенту.
UDP: Команда перезагрузки (отключения, а затем повтороного подключения) клиента.
Вариант 3
TCP: Реализовать возможность получения и установки настроек симуляции таких же как у одного из подключенных клиентов.
UDP: Команда отключения клиента.
Вариант 4
TCP: Реализовать возможность передачи своих настроек симуляции одному из подключенных клиентов.
UDP: Команда перезагрузки (отключения, а затем повтороного подключения) клиента.
Вариант 5
TCP: Реализовать возможность обмена всех объектов одного вида на объекты такого же вида из другого подключенного клиента (например, все легковые машины из одной симуляции переходят в другую, а все легковые машины, что были в той другой симуляции, переходят в первую).
UDP: Команда отключения клиента.
Вариант 6
TCP: Реализовать возможность обмена всех объектов одного вида на объекты другого вида из другого подключенного клиента (например, все менеджеры из одной симуляции переходят в другую, а все разработчики, что были в той другой симуляции, переходят в первую).
UDP: Команда перезагрузки (отключения, а затем повтороного подключения) клиента.
Вариант 7
TCP: Реализовать возможность скопировать и добавить в симуляцию все объекты одного из подключенных клиентов.
UDP: Команда отключения клиента.
Вариант 8
TCP: Реализовать возможность обменяться всеми объектами с одним из подключенных клиентов.
UDP: Команда перезагрузки (отключения, а затем повтороного подключения) клиента.
Вариант 9
TCP: Реализовать возможность синхронной остановки и запуска симуляции на текущем и одном из подключенных клиентов, т.е. при остановке или запуске симуляции выбранный клиент должен также остановить или запустить симуляцию.
UDP: Команда отключения клиента.
Вариант 10
TCP: Реализовать возможность синхронной установки вероятностей появления физических и юридических лиц на текущем и одном из подключенных клиентов, т.е. при установке этих параметров на выбранном клиенте должны выставиться такие же параметры.
UDP: Команда перезагрузки (отключения, а затем повтороного подключения) клиента.
