2015-09-08 2 views
3

Эй, ребята, я изучаю Java и меня что-то беспокоит, и учебник не объясняет это.Опуская публичный модификатор в java-методах

Я понимаю, что вы используете модификаторы для объявления методов внутри классов и всего. Но я неожиданно получил класс, объявленный как

static void(){ 
} 

Почему нет публичного или частного модификатора, и он все еще работает? Могу ли я избежать использования общедоступного модификатора везде или как это работает? Я понимаю, что static означает член класса и void, что он не возвращает значение. Но почему бы и не публичные или частные в этом отношении.

Благодаря

+2

Похоже, это было рассмотрено довольно подробно @ [В Java, какая разница между общедоступными, стандартными, защищенными и частными?] (Http://stackoverflow.com/questions/215497/in-java-whats-the -difference-between-public-default-protected-and-private) – CollinD

+0

См. java doc https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – Bikku

+0

Когда вы видите модификатор _no_ перед метод или переменная в классе, это означает, что уровень доступа по умолчанию имеет значение, называемое 'package private'. Это более ограниченное, чем 'protected', но менее ограниченное, чем' private'. Вот ссылка [link] (https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) на официальную диаграмму Oracle, показывающую это. –

ответ

3

Ради этого объяснения, термины «функции» и «методы» используются как взаимозаменяемые. Существует небольшая разница между ними, для получения дополнительной информации, обратитесь в Google.

методы в Java, которые явно не указать модификатор, по умолчанию пакет-частного, поэтому метод виден всем классам в том же пакете как класс, где объявлен метод.

Общественные функции могут быть отозваны для всех классов, которые имеют доступ к классу (т.е. всего вашему проекту) и частных методов могут быть отозваны только в классе метод был написан в. Существует также модификатор защищен , который указывает, что доступ к функциям может получить только класс, все его подклассы и классы в одном пакете.

«Почему это важно?», вы можете спросить. Хороший вопрос!

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

Инкапсуляция данных - важная парадигма в программировании, и эти модификаторы помогают вам достичь именно этого.

Смежные вопросы