Графические примитивы Построения графического интерфейса

Информац. системы

Критерии надежности
Задачи
Расчет характеристики
Типовые примеры
Отказы изделия
Аналит. определение
Постоянное резервир.
Резервирование замещением
Расчет надежности
Скользящее резервирование
Расчет показателей
Учебник JAVA
Базовые понятия
Объектно-ориентированное
программирование
Работа со строками и классами
Графические примитивы
Обработка событий в JAVA
Апплеты
Создание сетевых приложений
Сетевые средства в JAVA
Экспертные системы
Учебник Delphi
Компьютерные сети
Топология сетей
Адресация
Структура сети
Сетевые службы
Маршрутизаторы
Технологии ISDN
Протоколы маршрутизации
Модель OSI
Корпоративные сети
Стек протоколов TCP/IP
Коммутация каналов
Коммутация пакетов
Удаленный доступ
Система доменных имен
Моделирование
Основы кодирования
Теория информ. процессов
Обмен информацией
Количество информации
Энтропия
Кодирование
Квантование и дискретизация
Теорема Котельникова
Ошибки дискретизации
Учебник по FrontPage
Информационный подход
SQL язык запросов
Ос новные понятия
Выборка данных

Манипулирование данными

Создание базы данных
Устройство ПК
Архитектура ПК
Классификация элементов
Центральный процессор
Внешние устройства
Программное обеспечение

Базовые понятия языка Java

Классы-утилиты

Принципы построения графического интерфейса

Графические примитивы

Основные компоненты их размещение Обработка событий в JAVA

Апплеты, изображения и звук в JAVA

Подпроцессы, потоки ввода/вывода, сетевые средства

Введение в настраиваемые типы данных

Новая версия JDK - Java 2 Platform Standard Edition Version 5.0 - предоставляет программисту некоторый набор новых возможностей. Одной из таких возможностей являются настраиваемые типы данных. Программисты, которые работают на языке С++, привыкли использовать шаблоны классов и функций. Эта же возможность в Java 2 версии 5.0 называется созданием настраиваемого типа. С помощью таких типов данных можно разработать универсальный класс, автоматически обрабатывающий данные различных типов. Таким образом, разрабатывается один алгоритм обработки данных, который затем применяется без дополнительной доработки к различным типам данных.
Разберем принципы создания и использования настраиваемого класса на примере. Создаем настраиваемый класс.
class Gen<T>
{
T ob;
public Gen (T o) {ob=o;}
public T getOb() {return ob;}
public void showType(Graphics g, int x, int y)
{
g.setColor(Color.green);
g.drawString("Тип T "+ob.getClass().getName(),x,y);
}
}

Здесь Т - параметр типа. Это имя используется как заменитель действительного типа, передаваемого в класс Gen в качестве параметра. Далее имя Т будет использоваться в классе везде, где требуется переменная или параметр этого типа. Например, он используется для объявления переменной класса, в качестве параметра в конструкторе класса, а также как тип возвращаемого значения в методе getOb. Если при создании объекта будет передан тип String, то у переменной ob будет тип String. Таким образом, реальный тип данных определится только при создании объекта.
Создадим класс, который будет являться внешним для созданного настраиваемого класса Gen и будет демонстрировать работу с этим внутренним классом.
public class GenDemo extends Applet
{
Gen<Integer> iOb;
Gen<String> strOb;
public void init()
{
int i=Integer.parseInt(getParameter("intParam"));
iOb=new Gen<Integer>(i);
String s=getParameter("strParam");
strOb=new Gen<String>(s);
}

public void paint(Graphics g)
{
iOb.showType(g, 10,10);
strOb.showType(g, 30,10);
}
class Gen<T>
{
// объявление настраиваемого класса Gen
...
}
}
Итак, в апплет передается два параметра. Один из них - целое число, другой - символьная строка. Для хранения этих данных в классе GenDemo объявляются ссылки на объекты типов Gen<Integer> и Gen<String>. Типы данных Integer и String в данном случае являются параметрами настраиваемых типов. При создании первой ссылки параметру T класса Gen присваивается значение Integer. Это значит, что генерируется реализация класса Gen для работы с целыми числами и iOb является объектом именно этого класса. Во втором случае аналогичная работа проводится со значением типа String и объектом strOb. Далее при работе с объектом iOb везде, где упоминался тип Т в классе Gen используется тип Integer, а при работе с объектом strOb тип Т становится типом String.
При создании настраиваемых классов требуется иметь в виду следующее правило. При объявлении объекта настраиваемого типа данных аргумент типа, передаваемый классу как параметр, должен быть каким-либо классом. Использование в качестве аргумента типа стандартных типов данных, например, int или char, не разрешается. Если же возникнет такая необходимость, требуется использовать класс-оболочку, соответствующий нужному стандартному типу данных.

Математический анализ, лекции по физике Компьютерные сети