在java中,谁会像在C++中一样扮演朋友函数的角色呢?它在java中是如何工作的?
谢谢..
发布于 2010-01-21 18:50:11
与C++朋友最接近的是缺省访问修饰符,也称为包保护或包私有。这只允许从同一包中的其他类访问成员。
这也是将类放在同一个包中,而不是根据功能分组到子包中的最好理由。
发布于 2010-01-21 18:50:01
Java中没有友元函数的概念。您最好的选择是了解Java是如何实现visibility - package-private (默认)的,您可能会对此特别感兴趣-- here's a quick tutorial
发布于 2010-01-21 19:04:12
很有可能你的设计有点不对劲。确实不应该有一个朋友函数,这就是为什么Java没有在它的语言中包含它的原因。函数应该紧挨着它使用的数据所在的位置,如果不是,那么该数据应该作为参数传递到函数中。在我看来,友元函数违背了面向对象编程的主要思想。C++倾向于允许您创建非OO程序,即使该语言完全支持OO编程所信奉的概念。
我会考虑修改你的设计,使功能更接近数据所在的位置,这样你就不会有这个问题了。但是,这并不总是可行的,特别是当您正在使用遗留系统时。在这种情况下,您应该考虑适配器类、getter和setter或参数。这只是我的两个观点。
https://stackoverflow.com/questions/2111940
复制相似问题