有没有办法在Java中定义一个只有同一包中的其他类才能访问的私有类?
我一直在思考这样一个问题:为什么在Java包中定义有没有办法在Java中定义一个只有同一包中的其他类才能访问的私有类?,java,oop,private,java-package,Java,Oop,Private,Java Package,我一直在思考这样一个问题:为什么在Java包中定义private类不像在命名空间中定义类那样是不可能的 假设我的Java项目中有一个ds包。在这个包中,我有两个名为Stack和Queue的类。这两个类都需要使用另一个名为ListNode的类ListNode仅为ds包中的其他类所需,不应暴露于ds包之外的类 我可以将ListNode定义为一个内部类。但是在这种情况下,我应该在Stack和Queue类中定义它,它也是冗余的。有什么设计模式可以解决这个问题吗?如果没有,请至少有人向我解释为什么这在Ja
private
类不像在命名空间中定义类那样是不可能的
假设我的Java项目中有一个ds
包。在这个包中,我有两个名为Stack
和Queue
的类。这两个类都需要使用另一个名为ListNode
的类ListNode
仅为ds
包中的其他类所需,不应暴露于ds
包之外的类
我可以将ListNode
定义为一个内部类。但是在这种情况下,我应该在Stack
和Queue
类中定义它,它也是冗余的。有什么设计模式可以解决这个问题吗?如果没有,请至少有人向我解释为什么这在Java中是不可能的 您可以查看包私有类。
如果从类中省略public/private/protected,则只有同一包中的其他类才能访问该类下表显示了每个修饰符允许的成员访问权限
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
Frompackage private=无访问修饰符