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

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

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


public class Definition {

    List<Character> list;

    // Блок инициализации
    {
        list = new ArrayList<>();
        for (int i = 50; i <= 60; ++i) {
            char value = (char)(i * 2);
            list.add(value);
        }
        System.out.println("list: " + list);
    }
    
    // Конструктор
    Definition() {
        System.out.println("Constructor is called");
    }
    
    public static void main(String[] args) {
        new Definition();
    }
}
    
    /*
    list: [d, f, h, j, l, n, p, r, t, v, x]
    Constructor is called
    */
Методы и Инкапсуляция