В общем, нам нужно рассмотреть только четыре части инициализации:

  • член
  • метод
  • специальный метод: конструктор
  • специальный член: статический член/блок

Способ понять/запомнить порядок инициализации:

  1. Для отдельного метода создан содержащийся внешний класс, иначе этот метод не может существовать. Поскольку внешний класс создан, это означает, что его конструктор уже был вызван. (Метод можно считать вызываемым последним. Для поддержки полиморфизма необходима техника позднего связывания, которая приводит к последнему в порядке инициализации.)
  2. Для конструктора должны быть доступны все значения членов. Таким образом, все члены должны быть инициализированы перед конструктором. (Можно рассматривать переменную-член как внутреннее свойство класса. Для создания класса значение каждого внутреннего свойства должно быть заранее подготовлено. Например, высота и вес является неотъемлемым свойством стола. В нашем физическом мире, чтобы сделать настоящий стол, сначала должны быть известны значения высоты и веса. В противном случае, как я могу создать указанный стол ?!)
  3. Для специального члена статический член его значение привязано к информации о типе, которая должна быть известна при определении класса. Таким образом, он должен стоять перед другими обычными членами.
  4. Чтобы гарантировать, что все члены должны быть подготовлены перед вызовом конструктора, член родительского класса, например. Член родительского класса public ,protected также должен быть подготовлен. Но это можно гарантировать только после вызова родительского конструктора. Таким образом, конструктор родительского класса должен вызываться до члена дочернего класса.
  5. Поскольку статическая часть привязана к классу, ее значение должно быть обеспечено как определение класса, даже до конструктора родительского класса, но после конструктора родительского класса. статическая часть, поскольку дочерняя статическая часть может вызывать статическую часть родительского класса для поддержки инициализации.
  6. Порядок инициализации родительского класса также рекурсивно контролируется указанными выше правилами.