- •А Б СТРА К ТН Ы Е К Л А ССЫ , И
- •Абстрактны е классы
- •Свойства абстрактного класса
- •Предназначение абстрактны х классов
- •Абстрактны й метод
- •Влож енны е классы
- •Примеры классов
- •Классы -элементы классов
- •Локальны е классы
- •Анонимны е классы
- •Пример анонимного класса
- •Свойства влож енны х классов
- •Создание объектов внутреннего класса
- •Создание объектов влож енны х статических
- •Доступ к объекту внеш него класса (this)из внутреннего
- •Имя ф айла с байт-кодом влож енного класса
- •Интерф ейсы
- •Использование интерф ейсов
- •Элементы интерф ейса
- •Поля интерф ейса
- •М етоды интерф ейса
- •Влож енны е классы и интерф ейсы -элементы
- •М нож ественное наследование интерф ейсов
- •Реализация интерф ейса
- •Реализация интерф ейсов и расш ирение класса
- •О ператор instanceofдля интерф ейсов
- •Частичная реализация интерф ейса
Пример анонимного класса
class T {}
T t = new T() { void m() {...}
}
t - переменная типа T, кот. ссылается на экземпляр анонимного класса, наследованного от T.
Свойства влож енны х классов
Не могут объявлять статических полей (кроме констант), методов и классов (но могут наследовать их.
Имеют доступ к элементам внешнего класса.
Имеют доступ к локальным переменным и параметрам метода (они должны быть объявлены как
Создание объектов внутреннего класса
(нестатические элементы классов)
Расширенный синтаксис оператора new
class A { class B {}
}
A a = new A();
A.B b = a.new B();
Создание объектов влож енны х статических
классов
class A {
static class B {}
}
A.B b = new A.B();
Доступ к объекту внеш него класса (this)из внутреннего
class A { private int x; class B {
int x = A.this.x;
}
}
Имя ф айла с байт-кодом влож енного класса
Для каждого класса компилятор (javac) создает отдельный файл класса.
Outer$Inner.class
Интерф ейсы
Определяют границы взаимодействия между объектами.
Определяют абстракцию, реализацию которой предоставляет имплементирующая интерфейс сторона.
Использование интерф ейсов
Класс может реализовывать интерфейс
Можно объявить интерфейсную переменную
Интерфейс может наследовать несколько других интерфейсов
Элементы интерф ейса
поля (public static final)
методы (public abstract)
интерфейсы (public static)
классы (public static)
Указанные модификаторы и спецификаторы можно не ставить.
Поля интерф ейса
константы (final)
статические (static)
публичные (public)
должны быть проинициализированы при объявлении