Учебное пособие: Интерфейсы, обратные вызовы, внутренние классы

Все вложенные классы можно разделить на вложенные классы-члены класса (member classes), описанные вне методов, и вложенные локальные классы (local classes), описанные внутри методов и/или блоков. Локальные классы, как и все локальные переменные, не являются членами класса.

Классы-члены могут быть объявлены статическим модификатором static. Поведение статических классов-членов ничем не отличается от поведения обычных классов, отличается только обращение к таким классам. Поэтому они называются вложенными классами верхнего уровня (nestee tep-level classes), хотя статические классы-члены можно вкладывать друг в друга. В них можно объявлять статические члены. Используются они обычно для того, чтобы сгруппировать вспомогательные классы вместе с основным классом.

Все нестатические вложенные классы называются внутренними (inner). В них нельзя объявлять статические члены.

Локальные классы, как и все локальные переменные, известны только в блоке, в котором они определены. Они могут быть безымянными (anonymous classes).

Пример.

Листинг Вложенные классы

class Nested{

static private int pr; // Переменная pr объявленa статической

// чтобы к ней был доступ из статических классов А и АВ

String s = "Member of Nested";

// Вкладываем статический класс.

static class .А{ // Полное имя этого класса — Nested.A

private int a=pr;

String s = "Member of A";

// Во вложенньм класс А вкладываем еще один статический класс

static class AB{ // Полное имя класса — Nested.А.АВ

private int ab=pr;

String s = "Member of AB";

}

}

//В класс Nested вкладываем нестатический класс

class В{ // Полное имя этого класса — Nested.В

private int b=pr;

String s = "Member of B";

// В класс В вкладываем еще один класс

class ВС{ // Полное имя класса — Nested.В.ВС

private int bc=pr;

String s = "Member of ВС";

}

К-во Просмотров: 501
Бесплатно скачать Учебное пособие: Интерфейсы, обратные вызовы, внутренние классы