簡體   English   中英

當地內部階級的順序

[英]Order of local inner class

為什么本地內部類依賴於定義的順序。 例如,首先定義的本地內部類不能為第一個本地內部類之后定義的類創建對象。

`package inner;

public class OuterClass {
    class Inner1{
        Inner2 ic=new Inner2(); // No compilation error 

    }
    class Inner2 {
        Inner1 in=new Inner1();
    }

    public static void main(String[] args) {
        class A2{
            A1 a=new A1(); // Compilation error
        }
        class A1{
            int a1;
            A2 a=new A2();
        }
    }
}
`

這是因為A2和A1是本地類,並且根據Java語言規范 ,第6.3節聲明的范圍:

由塊(第14.2節)直接包含的本地類聲明的范圍是直接封閉塊的其余部分,包括它自己的類聲明。

由於范圍是直接封閉塊的其余部分,因此在聲明之前不能使用本地類。

內部類與其封閉類的實例相關聯,並且可以訪問封閉類的其他成員。

內部類是其封閉類的成員,而作為內部類實例的對象存在於外部類的實例中。

您可以查看嵌套類教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM