当前位置:  开发笔记 > 编程语言 > 正文

在Java中实现朋友(可用C++)功能

如何解决《在Java中实现朋友(可用C++)功能》经验,为你挑选了1个好方法。

好吧,让我们离开关于友谊是否打破封装的争论,并且实际上尝试优雅地提出一个连贯的设计.这是一个双重功能:

1)关于如何实施的一般问题:

   public class A 
   {
      friend class B;
   }

2)为什么我需要这个功能?我的一些类实现了Serializable接口.但是,我想在Derived类中使Serializable方法受到保护,这样我就不会将它们暴露给客户端(以及文档中的javadoc).但是,内部类应该能够访问它们.在java中解决这个问题的一般方法是什么?

注意:我正在使用当前C++标准中定义的友谊.

谢谢



1> Avi..:

一般的解决方案是使方法package-private(这是Java中的默认保护级别).这样,同一个包中的任何代码都可以访问它们,但不能访问外部代码.

Java不允许任意共享具有特定外部类的方法.

编辑:受保护的成员实际上不如包私有.如果您有受保护的成员,则可以从包外的派生类以及包内的任何类访问它们.这可能是您的问题的解决方案 - 在您要导出到的包中的另一个类中派生类.

通常,Java将包视为封装的主要模块.public/protected接口用于包外的类,默认保护级别允许在包内访问.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有