簡體   English   中英

類如何在Java中實例化?

[英]How do classes instantiate in Java?

我在JLS8 / 15.9.1遵循以下規則:

新標記之后的標識符必須明確表示可訪問的內部類,非抽象的,不是枚舉類型,以及主表達式或 ExpressionName 的編譯時類型的 成員

我無法想象最后一次限制意味着什么。 也許您可以舉例說明ExpressionNamePrimary表達式的編譯時類型的成員?

它說“如果類實例創建表達式是合格的”..那么..(你的報價)

所以,我猜是這種情況:

package test;

public class Test1 {
    public class Test3{

    }
}

並在另一個類中實例化它,如下所示:

package test;

import test.Test1.Test3;

public class Maker {

    public static void main(String[] args) {
    Test1 test1 = new Test1();
        Test3 test3 = test1.new Test3();    
    }

}

然后,

  1. 實例創建表達式是限定的: test1.new Test3() (test1.new, - 一個合格的new而不是一個不合格的new)
  2. 主要表達式是test1
  3. 主表達式的編譯時類型是Test1
  4. 新標記之后的標識符是Test3,它明確表示類Test3
  5. Test3是可訪問的,非抽象的,不是枚舉類型,並且是Test1的編譯時類型的成員,Test1是主表達式的編譯時類型。

請享用 :)

暫無
暫無

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

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