![](/img/trans.png)
[英]How to make a (private) class in java that is not visible to other classes in the same package?
[英]Is there any way to define a private class in Java which only other classes in the same package can access it?
我一直在思考这个问题,为什么不能像在.Net
的namespace
中那样定义Java包中的private
类,这是不可能的。
假设我的Java项目中有一个ds
包。 我在该程序包中的Stack
和Queue
名称中有两个类。 这两个类都需要使用ListNode
名称中的另一个类。 只有ds
包中的其他类才需要ListNode
,并且不应将其暴露给ds
包之外的类。
我可以将ListNode
定义为内部类。 但是在这种情况下,我应该在Stack
和Queue
类中对其进行定义,并且它也是多余的。 有没有解决此问题的设计模式? 如果没有,请至少有人向我解释为什么在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.