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

Досрочный выход из цикла (оператор break)

Выполнение цикла можно прервать, если внутри тела цикла вызвать оператор break. После выполнения оператора break произойдет моментальный выход из цикла (не будет окончена даже текущая итерация). Управление передастся оператору, следующему за циклом.

  1. Внутрішні класи, анонімні класи- властивості й мета застосування , особливості синтаксису . Класи- адаптери.

Внутрішній клас – це клас визначений в тілі іншого класу.

class A  {            ....            class B            {            ....            } .... } Клас B є класом, який оголошений в тілі класу A. Клас A є зовнішнім по відношенню до В класом.

Навіщо внутрішні класи? З якою метою вони використовуються?

  • внутрішні класи можуть бути прихованими іншими класами пакету (з точки зору безпеки);

  • внутрішні класи дозволяють уникати колізій імен (наприклад, вкладений клас Vector не входить в суперечку із зовнішнім класом, який має таку саму назву);

  • внутрішні класи дозволяють покращити структуризацію коду, оскільки можна звернутися з вкладеного класу до членів (навіть приватних) зовнішнього класу;

  • внутрішні класи інтенсивно використовуються при реалізації стандартних інтерфейсів Java

Вкладений клас може:

  • бути визначений за допомогою специфікатора private (зазвичай стосовно класу такого оголошення роботи не можна), що забороняє будь-який доступ до нього за межами зовнішнього класу,

  • звертатись до нестатичних членів зовнішнього класу,

  • бути визначеним із специфікатором static (зазвичай стосовно класу такого оголошення роботи не можна), що призводить до того, що з цього класу не можна звернутись до нестатичних членів зовнішнього класу,

  • мати назву,

  • не мати назви (анонімний вкладений клас),

  • бути локальним – визначений в блоці (методі або іншому блоці, наприклад, в блоці оператора if),

  • звертатись до локальних змінних (якщо локальний клас чи змінна визначені зі специфікатором final).

Анонимный класс (anonymous class) - это локальный класс без имени.

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

class Clazz {      Clazz(int param) { }        public static void main(String[] args) {          new Clazz(1) { }; // правильное создание анонимного класса          new Clazz() { }; // неправильное создание анонимного класса      }  }   

Так как анонимный класс является локальным классом, он имеет все те же ограничения, что и локальный класс.

Использование анонимных классов оправдано во многих случаях, в частности когда:

  • тело класса является очень коротким;

  • нужен только один экземпляр класса;

  • класс используется в месте его создания или сразу после него;

  • имя класса не важно и не облегчает понимание кода.

Класс адаптер обеспечивает пустую реализацию всех методов в интерфейсе прослушивания событий.

Адаптеры полезны когда надо принимать и обрабатывать только некоторые события.

FocusListener - FocusAdapter

KeyListener - KeyAdapter

MouseMotionAction - MouseMotionAdapter

WindowListener, WindowStateListener, WindowFocusListener - WindowAdapter

Адаптеры содержат реализацию соответствующих интерфейсов.

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