类如何在Java中实例化?

爪哇人

我遇到了JLS8 / 15.9.1中的以下规则

新令牌后的标识符必须明确表示可访问,非抽象,不是枚举类型的内部类,以及Primary表达式或ExpressionName的编译时类型的成员

我无法想象最后的限制意味着什么。也许您可以举一个ExpressionName表达式的编译时类型成员的示例

Pradyumna

它说“如果类实例创建表达式是合格的” ..那么..(您的报价)

所以,我想是这种情况:

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,-一个合格的新而非非合格的新)
  2. 主要表达式是test1
  3. 主表达式的编译时类型为Test1
  4. 新令牌后的标识符为Test3,它明确表示类Test3
  5. Test3是可访问的,非抽象的而不是枚举类型,并且是Test1的编译时类型(主要表达式的编译时类型)的成员。

请享用 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章