繁体   English   中英

有什么方法可以在Java中定义一个私有类,只有同一包中的其他类才能访问它?

[英]Is there any way to define a private class in Java which only other classes in the same package can access it?

我一直在思考这个问题,为什么不能像在.Netnamespace中那样定义Java包中的private类,这是不可能的。

假设我的Java项目中有一个ds包。 我在该程序包中的StackQueue名称中有两个类。 这两个类都需要使用ListNode名称中的另一个类。 只有ds包中的其他类才需要ListNode ,并且不应将其暴露给ds包之外的类。

我可以将ListNode定义为内部类。 但是在这种情况下,我应该在StackQueue类中对其进行定义,并且它也是多余的。 有没有解决此问题的设计模式? 如果没有,请至少有人向我解释为什么在Java中无法做到这一点!

您可以查看包私有类。 docs

如果您在课程中省略了公共/私人/受保护的课程,则只能由同一软件包中的其他课程访问

下表显示了对每个修饰符允许的成员的访问。

Access Levels
Modifier    Class   Package Subclass    World
public       Y        Y        Y          Y
protected    Y        Y        Y          N
no modifier  Y        Y        N          N
private      Y        N        N          N        

这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM