Новый пакет Java 1.1. Новые технологии по использованию классов.
В Java 1.1 существенно дополняются и расширяются набор пакетов и библиотек.
Java-… пакет предназначен для создания и использования встраивания программных компонент многокуратного использования.
Java.rmi - классы и интерфейсы для организации удаленного вызова методов.
Java.security - классы и интерфейсы, являющиеся фундаментальными абстракции элементов криптографии (открытые/закрытые ключи, сертификаты, подтверждение подписи, элементы шифрования и дешифрования сообщений, а также цифровые подписи.
Java.sql - JDBC (драйвер и интерфейс), а так же классы и интерфейсы, позволяющие java-программам формировать запросы и отправлять их в sql
Java.text - для организации многоязыковой поддержки Java, т.е классы для представления шрифтов и криптограмм алфавита, классы представления дат, времени, чисел и текстовых сообщений в том формате в часовом поясе которого запускается java программа. В связи с этим в java 1.1 добавляется возможность нестандартного использования классов и интерфейсов. При этом самым большим усовершенстваванием языка Java являются встроенные классы и интерфейса, которые можно определять в качестве членов других классов, подобно методам и переменным. При этом встроенные классы деляться на 4 группы:
1. встроенные класс и интерфейсы верхнего уровня
2. классы-члены
3. локальные классы
4. анонимные классы
Встроенные класс и интерфейсы верхнего уровня - данные классы являются совершенно такими же как и обычные классы, за исключением того, что для удобства использования они встроены в другой класс или интерфейс. Все подобные классы и интерфейсы должны объявляться с модификатором Static. Если учесть, что все интерфейсы по умолчанию Static, то в их определении писать модификатор не обязательно:
public class LinkedList {
public interface Linkable {
public Linkable getNext()
public void getNext (linkable
далее описывается класс, который реализует данный интерфейс. Имя встроенного интерфейса записывают следующим образом: сначала пишут имя
Если откомпилировать класс LinkedList при условии, что данный класс содержит только свое описание, то будет создано 2 файла байт-кода:
1. LinkedList.class - для основного класса
2. LinkedList$Linkable.class - байт-код для встроенного интерфейса.
Классы-члены
Особенности:
1. каждый экземпляр класса-члена внутренне связан с экземпляром класса, где класс-член определен или содержится
2. методы класса-члена могут неявным образом ссылаться напеременные этого класса, так же как и на переменные включающего класса, в том числе объявленных как privat
Классы-члены применяются вместо встроенных классов врехнего уровня там, где необходим доступ к переменным экземпляра включающего класса или где каждый экземпляр касса-члена должен быть определенным образом связан с экземпляром включающего класса. Такое соотвествие между классами членами и включающими классами в Java поддерживается автоматически.
Возвращаемся к примеру
Предположим, что в классе LinkedList необходимо реализовать циклическое обращения к элементам связанного списка с помощью интерфейса Enumeration
Данную возможность можно реализовать ,используя реестр встроенного класса. Элементы, которые не реализуются в данном примере остаются такими же как в предыдущем
import
public
public
Следующий метод возвращает объект Enumeration для данного объекта LinkedList при этом никакой из объектов LinkedList не передается методу в явном виде.
пример
Enumeration - класс-член, описывающий интерфейс LinkedList
Конструктор класса Enumeration неявно ссылается на переменную head
При компиляции класс-член Enumeration будет откомпилирован в файл байт-кода LinkedList$ Enumeration.class
Классы члены могут использовать переменные, методы и даже классы своего включающего класса, объявленного как private. Включающий класс может использовать закрытые переменные и методы тех классов, которые в него встроены (с версии Java 2.0)
