如果仍然无法在包含类的外部访问它,则用Java声明一个私有内部类的成员的原因是什么?可以吗
public class DataStructure { // ... private class InnerEvenIterator { // ... public boolean hasNext() { // Why public? // ... } } }
如果InnerEvenIterator该类没有扩展任何类或实现任何接口,那么我认为这是无稽之谈,因为没有其他类可以访问它的任何实例。
InnerEvenIterator
但是,如果它扩展或实现了任何其他非私有类或接口,则是有意义的。一个例子:
interface EvenIterator { public boolean hasNext(); } public class DataStructure { // ... private class InnerEvenIterator implements EvenIterator{ // ... public boolean hasNext() { // Why public? // ... } } InnerEvenIterator iterator; public EvenIterator getIterator(){ return iterator; } }