Порядок объявления членов класса в Java

Введение
Любой начинающий Java-программист рано или поздно задаётся вопросом о правильном (общепринятом) порядке размещения членов класса: полей, конструкторов, методов и так далее.
В книгах по Java такую информацию в структурированном и законченном виде, да ещё и с обоснованием выбора позиции для каждого члена — практически не найти. В руководствах от топовых компаний эта информация либо неполная, либо вообще отсутствует.
Ситуацию усугубляет тот факт, что не существует единого стандарта, описывающего чёткий порядок размещения элементов класса: в каждой компании он может быть своим, хотя в большинстве пунктов похожим. Java также не накладывает никаких ограничений на этот порядок: можно размещать конструкторы в конце класса, методы — в начале, а поля — в середине. Однако эта "гибкость" только усложняет ситуацию.
Кто-то может предложить обратиться за эталонным примером к классам стандартной библиотеки Java, так как её авторы наверняка знают, как правильно всё разместить. Но нужно понимать, что библиотека создавалась тысячами людей на протяжении 30 лет, и не каждый разработчик использовал стандартный стиль форматирования и именования, а также порядок размещения членов класса. В результате библиотека Java отличается большим разнообразием стилей, что почему-то никого не беспокоит.
  1. Порядок членов в классе
Хочу поделиться с вами своим порядком объявления членов класса, который вы можете использовать в своих проектах.
1
Начало класса
  • информация о лицензии
  • указание пакета
  • статический импорт
  • не статический импорт
  • комментарии к классу
  • объявление класса
2
Поля
  • комментарии к полям
  • константы (static final)
  • переменные класса (static)
  • final-поля
  • переменные экземпляра
  • поля дополнительно распределяются по модификаторам доступа
3
Блоки инициализации
  • комментарии к блокам
  • статический блок
  • не статический блок
4
Конструкторы
  • комментарии к конструкторам
  • порядок размещения конструкторов зависит от числа принимаемых ими аргументов: от меньшего к большему
  • конструкторы дополнительно распределяются по модификаторам доступа
5
Методы
  • комментарии к методам
  • геттеры/сеттеры
  • обычные методы (бизнес-логика)
  • переопределенные методы
  • порядок методов зависит от порядка их вызовов
  • методы дополнительно распределяются по модификаторам доступа
6
Дополнительные классы
  • комментарии к классам
  • Nested классы
  • Inner классы
  • Enum
Распределение по модификаторам доступа означает, что члены класса в рамках своего объявления, следует размещать в порядке увеличения ограничений, накладываемых модификаторами:
  • public
  • protected
  • package private (без модификатора)
  • private
Заключение
Из статьи вы узнали про порядок размещения членов в классе. Это прикладная информация поможет вам писать предсказуемый и понятный для других программистов код. Следуя предлагаемым правилам, вы практикуете общепринятые стандарты, что делает ваш код более профессиональным.
Автор: Чимаев Максим
Оцените статью, если она вам понравилась!