Главная » Java » Вложенные интерфейсы Java

0

Вложенные интерфейсы всегда "статичны", хотя соответствующий модификатор, static, в соответствии с принятым соглашением, принято опускать. Они выступают в роли инструмента структурной организации взаимосвязанных типов. В нестатических вложенных классах, как правило, предусматриваются те или иные детали реализации. Интерфейсы же не вправе диктовать какие-либо правила реализации и поэтому не могут быть нестатическими.

 Строку метода deposit, в которой создается объект Action, можно бы]10 бы переписать в равноценной, но более строгой форме

lastAct = this.new Асtion("приход", amount);

Местo this в подобном случае может занять, если это необходимо, ссылка на любой другой объект класса BankAccount. Предположим, например, что нам потребовалось добавить в состав класса BankAccount новый метод, который предусматривает выполнение операции перевода суммы с какого-либо иного счета на текущий счет – в этом случае придется обеспечить изменение содержимого поля lastAct обоих объектов BankAccount, участвующих в операции

Обратите внимание, как создаваемый объект Action связывается с объектом BankAccount, на который указывает параметр other

Правила объявления внутренних классов аналогичны тем, которые приняты для традиционных классов, за исключением того, что внутренние классы не способны содержать статические члены, кроме полей вида f; nal stat; с, инициализируемых константами или постоянными выражениями. Доводы в пользу возможности объявления констант в составе внутренних классов те же, что и в случае интерфейсов, – классу удобно пользоваться собственными постоянными величинами.

Внутренние классы, как и обычные, способны расширять любые другие классы, реализовывать интерфейсы и выступать в роли объектов наследования. Вполне допустимо использовать в объявлении внутреннего класса и модификаторы final и abstract.

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии