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

Новый синтаксис для классов-членов в Java

При использовании классов членов, которые можно было использовать для получения явных ссылок на включающий экземпляр текущего экземпляра классов-членов. В общем случае синтаксис использовался следующий:

classname.this

classname - имя включающего класса

Классы-члены могут включать в себя другие классы-члены с любой глубиной вложения, при этом имена классов членов не должны совпадать.

Пример:

(this.name) - с

(c.this.name) - с

- с

- b

- a

Правильно использовать интерфейс к влож классов членам

+ определение метода Enumeration

В данном примере нигде не указывается каким должен быть экземпляр класса, соответствующего новому экземпляру Enumeration для явного указания данной информации в Java 1.1 определен новый синтаксис для оператора New при использовании классов-членов.

<conteiner>.new

container - выражение, которое определяется где определен класс-член

Соответственно для примера с классами a, b, c, которые вложены иерархически друг в друга могут использоваться следующим образом:

A a =new A();

AB b = a new B ();

ABC c = b new C ()

В выражениях new используются имена классов, экземпляры которых необходимо создать в сочетании именных экземпляров, где они будут содержаться. С появлением классов-членов возникает 2 иерархии, которые следуют учитывать для каждого класса-члена:

1. это иерархия, прослеживаемая от суперкласса до подкласса, где определены переменные, наследуемые классом членом.

2.иерархия вложенности, прослеживаемая от включаемого класса до вложенного класса, в котором определяются переменные, находящиеся в области видимости класса-члена.

эти 2 иерархии для классов-членов различны. Когда происходит конфликт между именами наследуемых переменных или методов и именами аналогичных элементов включающего класса Java требует явного указания класса, к которому относится вызываемая переменная или метод, если класс-член B наследует переменную х от класса А, где так же определена переменная х, то необходимо использовать конструкцию this.x Для ссылки на наследуемую переменную или a.This.x для ссылки на переменную включающего класса.

На классы-члены накладываются 2 важных ограничения:

1. классы-члены не может иметь имя, совпадающее с имененем любого включающего класса (не относится к переменным и методам)

2. классы-члены, как все встроенные классы не могут включать в себя статические элементы (переменные, методы и классы, объявленные как static) так как статические конструкции Java являются конструкторами верхнего уровня.

Локальные классы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]