В Java учат, что переменные должны быть закрытыми, чтобы обеспечить лучшую инкапсуляцию, но как насчет статических констант? Это:
public static final int FOO = 5;
Результат будет эквивалентен этому:
private static final int FOO = 5;
...
public static getFoo() { return FOO; }
Но что лучше?