-1

我一直在想这个问题,为什么private在 Java 中定义一个包中的类是不可能的,就像我们在 in 中定义它的方式namespace一样.Net

假设ds我的 Java 项目中有一个包。我在这个包的名称Stack和内部有两个类。Queue这两个类都需要使用另一个名为ListNode. ListNode只有包中的其他类才需要ds它,并且它不应该暴露给ds包外的类。

我可以将其定义ListNode为内部类。但是在这种情况下,我应该在StackQueue类中定义它,它也是多余的。是否有任何设计模式可以解决这个问题?如果不是,请至少有人解释一下为什么这在 Java 中是不可能的!

4

2 回答 2

3

您可以查看包私有类。 文档

如果你从你的类中省略了 public/private/protected 它只能被同一个包中的其他类访问

于 2015-04-21T03:07:36.430 回答
2

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

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        

这里

于 2015-04-21T03:27:01.953 回答