java中是否存在关于friend函数行的任何内容? 我想在C++中实现一个关于FoeLoad函数的方法。我该怎么做?如果不需要,为什么java不需要它?请建议如何实现它。。作为一个样本: public class A {//some variables and methods..private and protected to be used by methods in Class B} public class B {}

java中是否存在关于friend函数行的任何内容? 我想在C++中实现一个关于FoeLoad函数的方法。我该怎么做?如果不需要,为什么java不需要它?请建议如何实现它。。作为一个样本: public class A {//some variables and methods..private and protected to be used by methods in Class B} public class B {},java,c++,friend-function,Java,C++,Friend Function,是的,有些东西确实存在。在同一个包中声明的Java类可以比私有成员更少地访问其包伙伴 这是java和C++之间的一个分歧点,你需要对java的方法有一个具体的了解,以避免在你的脚上自欺欺人。 < P> C++中的朋友实际上违反了面向对象的设计原则。这是一种方便,但如果你学究气十足,那就不是正确的方法 Java中更好的方法如上面的文章所建议的,即要么使用内部类,要么将它们放在同一个包中 希望有帮助。Java中没有friend函数。但是,如果您给出一个用例,就必须有一个变通方法。顺便说一句,我不喜欢

是的,有些东西确实存在。在同一个包中声明的Java类可以比私有成员更少地访问其包伙伴


<>这是java和C++之间的一个分歧点,你需要对java的方法有一个具体的了解,以避免在你的脚上自欺欺人。

< P> C++中的朋友实际上违反了面向对象的设计原则。这是一种方便,但如果你学究气十足,那就不是正确的方法

Java中更好的方法如上面的文章所建议的,即要么使用内部类,要么将它们放在同一个包中


希望有帮助。

Java中没有friend函数。但是,如果您给出一个用例,就必须有一个变通方法。顺便说一句,我不喜欢我的
朋友
访问我的
私人
成员。(双关语)可能的重复:不,它不是重复的。我在问一种在codeCan中实现它的方法,而不是访问私有成员。他们能吗?@Nishant,他们不能,但还有一件事:嵌套类和内部类可以访问最高级类的私有成员。@Sergey Tachenov我同意。而且,在C++中没有什么可以用<代码>朋友< /C>修改器来完成,不能用其他的东西在java中完成。我在这里指的是,在java中,没有一个关键字或机制可以给C++提供完全的功能,<代码>朋友< /C>。你需要根据你正在处理的用例来选择工具(如本答案中建议的工具或内部类或任何其他工具)。我只想用我的$0.02来衡量一下,并说允许你的朋友访问你的“个人空间”很容易滥用他们的系统(Java或C++),这不是一个好主意。在实践中,我很少看到交朋友的好理由,也看到很多可怕的虐待。这类修饰符应该从lex池中剔除。我不同意,正如我不同意Java中过度使用类使得它比其他语言更面向对象一样。特别是,
java.utils.Collections
与C库一样面向对象——独立函数。对于
朋友
,他们可以帮助实现OO所宣扬的一切。第一个想到的例子是引用计数的智能指针和弱指针。它们是相关类,它们需要访问相同的内部引用计数类型(以及构造期间的指针),而无需使用
friend
,您必须打开对内部类型和指向更多代码的指针的访问权限。如果您感兴趣,我们可以讨论如何实现
共享ptr
弱ptr
s,它们为什么需要访问彼此的详细信息,以及不使用
朋友
如何打开对更大代码库的访问。