Ну, это не переменная, это метод - но да, вы должны сделать это, чтобы сделать метод публичным.Если вы этого не сделаете, он по умолчанию имеет доступ к пакету и не будет доступен из других пакетов.Вы должны решить для себя, должен ли какой-либо конкретный метод, который вы пишете, быть доступным только в пределах одного и того же класса (сделать его private
) для подклассов (сделать его protected
) для пакета (оставить значение по умолчанию; вы не можете указать пакетдоступ явно, к сожалению) или ко всему (сделайте это public
).
(Это небольшое упрощение модификаторов доступа, но это начало.)
Что касается почему это так - обычно вы должны ограничивать видимость, чтобы ваш тип раскрывал только те методы, которые действительно имеют смысл для концепции, которую он пытается инкапсулировать.У вас может быть намного больше частных методов, которые зависят от реализации и о которых внешний мир не должен знать или не заботиться.