private (приватный): члены класса доступны только внутри класса. Для обозначения используется служебное слово private. default, package-private, package level (доступ на уровне пакета): видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется. protected (защищённый): члены класса доступны внутри пакета и в наследниках. Для обозначения используется служебное слово protected...
В Java переменные, объявленные с модификаторами private или protected, не могут быть использованы непосредственно в интерфейсах (interfaces). Интерфейсы содержат только абстрактные методы, константы и методы по умолчанию (default methods), которые все являются public. Поэтому любая переменная в интерфейсе также должна быть объявлена как public и static и иметь значение, которое не может быть изменено. Например, следующий код корректно определяет интерфейс с публичной статической константой: public...