Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
module 2 ^^ / 03 Абстрактные классы, интерфейсы. Вложенные классы, анонимные, локальные..pptx
Скачиваний:
18
Добавлен:
14.04.2015
Размер:
101.47 Кб
Скачать

Пример анонимного класса

class T {}

T t = new T() { void m() {...}

}

t - переменная типа T, кот. ссылается на экземпляр анонимного класса, наследованного от T.

Kolesnikov D.O. SED KNURE

11

Свойства внутренних классов

Не могут объявлять статических полей (кроме констант), методов и классов (но могут наследовать их.

Имеют доступ к элементам внешнего класса.

Имеют доступ к локальным переменным и параметрам метода (они должны быть объявлены как final).

Kolesnikov D.O. SED KNURE

12

Создание объектов внутреннего класса

(нестатические элементы классов)

Расширенный синтаксис оператора new

class A { class B {}

}

A a = new A(); A.B b = a.new B();

Kolesnikov D.O. SED KNURE

13

Создание объектов влож енны х статических

классов

class A {

static class B {}

}

A.B b = new A.B();

Kolesnikov D.O. SED KNURE

14

Доступ к объекту внеш него класса (this)из внутреннего

class A { private int x; class B {

int x = A.this.x;

}

}

Kolesnikov D.O. SED KNURE

15

Имя ф айла с байт-кодом влож енного класса

Для каждого класса компилятор (javac) создает отдельный файл класса.

Outer$Inner.class

Kolesnikov D.O. SED KNURE

16

Интерф ейсы

Определяют границы взаимодействия между объектами.

Определяют абстракцию, реализацию которой предоставляет имплементирующая интерфейс сторона.

Kolesnikov D.O. SED KNURE

17

Использование интерф ейсов

Класс может реализовывать интерфейс

Можно объявить интерфейсную переменную

Интерфейс может наследовать несколько других интерфейсов

Kolesnikov D.O. SED KNURE

18

Элементы интерф ейса

поля (public static final)

методы (public abstract)

интерфейсы (public static)

классы (public static)

Указанные модификаторы и спецификаторы можно не ставить.

Kolesnikov D.O. SED KNURE

19

Поля интерф ейса

константы (final)

статические (static)

публичные (public)

должны быть проинициализированы при объявлении

Kolesnikov D.O. SED KNURE

20