Ответ 1
В дополнение к тому, что было сказано Марко Топольником, есть факт, что если JLabel
должен был иметь статический член с тем же именем в будущем, простая перекомпиляция JLabel.java
не вызовет вызов код, знакомый с константой, существующей в этом модуле. Вместо того, чтобы перекомпилировать код, он все равно с удовольствием использовал бы Component.CENTER_ALIGNMENT
, несмотря на то, что исходный код ссылался на него.
В последней ссылке обязательно указывается статический член Component
по имени CENTER_ALIGNMENT
, тогда как первый будет ссылаться на элемент либо в Component
, либо в любом подклассе до JLabel
, если имя переопределяется в любом из них позже.
В случае использования статической функции или переменной-члена, если более поздняя версия подкласса также объявляет переопределенную, значение косвенного доступа изменится даже без перекомпиляции. Все это может быть немного гипотетичным, но все равно хорошо подумать.