Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
08.06.2015
Размер:
841.73 Кб
Скачать

Результат работы приложения

41

Персистентнось

Способность объекта существовать во времени, переживая породивший его процесс

Для JavaBeans реализуется за счет сериализации

Все классы компонентов должны быть подготовлены к сериализации

Существуют механизмы сохранения состояния бинов в xml-формат

42

Упаковка в Jar

Класс компонента, вспомогательные классы, файлы помещаются в jar-архив

В файле манифеста при этом указывается дополнительная информация:

Name: beans/MyBean.class

Java-Bean: True

43

Добавление библиотек в палитру

44

Вложенные типы

© Составление, Будаев Д.С., Гаврилов А.В., 2013

Лекция 9.2

УНЦ «Инфоком» Самара

2013

План лекции

Понятие вложенного типа

Вложенные классы и интерфейсы

Внутренние классы

46

Синтаксически корректный код

class MyFirstClass {

public static void main(String[] args) { // ...

}

class MySecondClass { private int a, b;

public MySecondClass(int a, int b) { this.a = a;

this.b = b;

}

//...

}

}

47

Вложенные типы

Считаются частью внешнего типа, со всеми вытекающими правами

Позволяют представить тип в виде логически связанных структурных групп и контекстов

Простой и эффективный инструмент объединения семантики соотносимых объектов

48

Статические вложенные классы

Простейшая форма вложенного класса

Может использоваться любыми классами, обладающими соответствующими правами доступа

Классы, вложенные в интерфейсы, статичны по определению

class ClassA { int a = 10;

protected static class ClassB { int b = 15;

}

}

public class Test {

public static void main(String[] args) { ClassA.ClassB t = new ClassA.ClassB(); System.out.println(t.b);

}

}

49

Вложенные интерфейсы

Всегда статичны (модификатор static по умолчанию)

Доступ определяется доступом внешнего класса или интерфейса и модификаторами доступа

class ClassA {

public interface InterfaceB { //...

}

//...

public InterfaceB get() {

//...

}

}

public class Test {

public static void main(String[] args) { ClassA.InterfaceB t = (new ClassA()).get();

}

}

50