Методы и инкапсуляция

Блоки инициализации. Порядок выполнения в enum

Для enum-классов сначала вызываются попарно динамический блок инициализации и конструктор, и только потом статические блоки инициализации.

Определение enum-класса начинается с его констант, которые инициализируются в статическом блоке инициализации, вызывая свой приватный конструктор.
Поскольку статические блоки инициализации выполняются в порядке их появления в коде, то любой статический блок, добавленный в описание enum-класса, выполнится после того, как будут созданы константы класса. ... Читать дальше »

Блоки инициализации. Порядок выполнения при наследовании

Порядок вызова конструктора и блоков инициализации у потомка и предка:
1. Вызываются все статические блоки инициализации по очереди от предка к потомку
2. Вызываются попарно динамические блоки инициализации и конструкторы по очереди от предка к потомку.

Статический блок инициализации родителя один для всех наследников. Выполняется только один раз. ... Читать дальше »

Блоки инициализации. Типы

Блоки инициализации бывают статическими и нестатическими (динамическими).
В статических блоках происходит инициализация статических переменных.
В нестатических блоках - все остальные.
В нестатических блоках можно инициализировать статические переменные, но это несколько снизит читаемость кода. ... Читать дальше »

Блоки инициализации

Блоки инициализации выполняются до вызова конструктора. Если для инициализации переменной нужно выполнить какие-либо вычисления, удобнее вынести это в блок инициализации, чтобы не загромождать конструктор. ... Читать дальше »

Лямбда-выражения

Лямбда-выражения работают только с функциональными интерфейсами - интерфейсами, содержащими только один абстрактный метод. ... Читать дальше »
1 2 »