Есть ли способ объявить метод "дружественным" в Java? - PullRequest
3 голосов
/ 03 декабря 2009

Я знаю, что атрибуты могут быть установлены public, friendly или private, чтобы указать его видимость.

Есть ли способ объявить метод friendly? Я хочу, чтобы он был доступен только из объектов классов одного пакета.

Спасибо, новичок здесь: (.

Ответы [ 7 ]

8 голосов
/ 03 декабря 2009

Не вводя модификатор видимости, Java использует частную область пакета

Ознакомьтесь со следующей статьей

Редактировать: Как уже упоминалось в комментариях, нет способа пометить метод как "дружественный". Но для ваших нужд будет достаточно частного пакета.

8 голосов
/ 03 декабря 2009

Только не указывайте доступность - по умолчанию это «видимый пакет» или «доступ по умолчанию». К сожалению, нет способа сделать это явно.

Обратите внимание, что protected доступ не только связан с наследованием, но также включает другие типы в том же пакете. (Это всегда казалось мне немного странным, но не берите в голову.)

Подробнее см. В разделе Спецификация языка Java 6.6 .

4 голосов
/ 03 декабря 2009

Это возможно, просто пропустив public / private в объявлении вашего метода. Метод неявно общедоступен, но доступен только в том же пакете.

2 голосов
/ 03 декабря 2009

Да - не ставить никаких модификаторов. Просто

String myString;

Здесь вы можете увидеть семантику каждого модификатора видимости.

1 голос
/ 03 декабря 2009

В Java у вас есть публичный, защищенный, пакетный и приватный видимость. Видимость пакета также известна как значение по умолчанию, так как вы указываете его, пропуская другие ключевые слова.

1 голос
/ 03 декабря 2009

Просто ничего не говорите, по умолчанию это видимость пакета.

0 голосов
/ 03 декабря 2009

Если вы не укажете какой-либо модификатор доступа, тогда будет использоваться метод " package-private ", который звучит так, как вы хотите.

...