Кто возьмет на себя функции Friend в java как в C ++? - PullRequest
3 голосов
/ 21 января 2010

Кто возьмет на себя функции Friend в java как в C ++? Как это будет работать в Java?

Спасибо ..

Ответы [ 4 ]

8 голосов
/ 21 января 2010

Ближайшая вещь, которую Java имеет к друзьям C ++, - это модификатор доступа по умолчанию, также известный как защищенный пакет или закрытый пакет. Это разрешает доступ к членам только из других классов в том же пакете.

Это также лучшая причина для размещения классов в одном пакете, а не для группировки в подпакеты по функциональности.

7 голосов
/ 21 января 2010

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

0 голосов
/ 28 августа 2011

Функция Friend является недостатком концепции ООП, поскольку она используется для доступа к функции-члену извне. Вот почему он был удален из Java.

0 голосов
/ 21 января 2010

Скорее всего, ваш дизайн немного не в порядке. В действительности не должно быть необходимости иметь функцию друга, и поэтому Java не включила ее в свой язык. Функции должны находиться рядом с местом расположения используемых им данных, а если нет, то эти данные должны передаваться в функцию в качестве параметра. На мой взгляд, Friend Functions идут вразрез с основными идеями ОО-программирования. C ++ склонен разрешать вам создавать не OO-программы, даже если язык полностью поддерживает концепции, в которые верит OO-программирование.

Я бы рассмотрел изменение вашего дизайна, чтобы приблизить функциональность к месту, в котором находятся данные, тогда у вас действительно не будет этой проблемы. Однако это не всегда возможно, особенно если вы работаете с устаревшей системой. В этом случае вы должны учитывать классы адаптеров, методы получения и установки или параметры. Просто мои два цента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...