2011-08-08 128 views
3

可能重複:
protected/public Inner Classes訪問修飾符的內部類

我相信這個問題已經被問過,但我沒能找到一個,所以我會問...

我很好奇私人(保護)和公共內部類之間有什麼區別。我能夠從使用外部類對象的包含類之外使用它們。

public class A{ 
    private class B{ 

    } 

    public static void main(String[] args){ 
    A a = new A(); 
    B b = a.new B(); 
    } 
} 
+0

是它允許在java中使用'a.new B()'? –

+1

@ Eng.Fouad:是的,這就是如何在Java中實例化非靜態內部類。 –

+0

還允許使用簡稱新A()。new B() –

回答

6

私有內部類仍然可以在定義它的類中訪問。

如果你有另一個類,B是不可見的:

public class C { 
    public static void main(String[] args){ 
    A a = new A(); 
    B b = new B(); // compile error 
    } 
} 
+0

哦,我明白了......謝謝! – Headshota

2

其實,你是A類還在裏面,因爲主要方法是類的靜態方法的