- •А Б СТРА К ТН Ы Е К Л А ССЫ , И
- •Абстрактны е классы
- •Свойства абстрактного класса
- •Предназначение абстрактны х классов
- •Абстрактны й метод
- •Влож енны е классы
- •Примеры классов
- •Классы -элементы классов
- •Локальны е классы
- •Анонимны е классы
- •Пример анонимного класса
- •Свойства внутренних классов
- •Создание объектов внутреннего класса
- •Создание объектов влож енны х статических
- •Доступ к объекту внеш него класса (this)из внутреннего
- •Имя ф айла с байт-кодом влож енного класса
- •Интерф ейсы
- •Использование интерф ейсов
- •Элементы интерф ейса
- •Поля интерф ейса
- •М етоды интерф ейса
- •Влож енны е классы и интерф ейсы -элементы
- •М нож ественное наследование интерф ейсов
- •Реализация интерф ейса
- •Реализация интерф ейсов и расш ирение класса
- •О ператор instanceofдля интерф ейсов
- •Частичная реализация интерф ейса
Пример анонимного класса
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 |