据我所知new是一个关键字,而不是一个函数。
什么是java新的?一个函数或关键字
例如
A a = new A();
实例化一个类型A.
关键字的不与任何物体本身相关联的对象。
相反,当我们已经在公共内B类我们称之为
B b = a.new B()
这看起来像新的一样是B的财产,而不是一个独立的关键字。
A.new是什么意思?
据我所知new是一个关键字,而不是一个函数。
什么是java新的?一个函数或关键字
例如
A a = new A();
实例化一个类型A.
关键字的不与任何物体本身相关联的对象。
相反,当我们已经在公共内B类我们称之为
B b = a.new B()
这看起来像新的一样是B的财产,而不是一个独立的关键字。
A.new是什么意思?
New
是两种情况下的关键字。它是类实例创建表达式的一部分。
有两种形式:不合格和合格。
非限定格式以关键字'new'开头。
限定格式以主类开头,然后是“新”。这允许创建内部类 - 非静态嵌套类,它们持有对外部类实例的隐式引用。限定格式提供了一种指定该实例的方法。
从Java Language Specification, section 15.9:
不合格的类实例创建表达式开始与关键字new。
非限定类的实例创建表达式可以被用来创建一个类的实例,而不管类是否是一个顶级(第7.6节),构件(第8.5节,第9.5节),局部(§14.3)或匿名类(第15.9.5节)。
限定的类实例创建表达式以Primary为开头。
限定的类实例创建表达式允许创建内部成员类及其匿名子类的实例。
B b = A.new B(); // A should be an instance object not a class name,
// otherwise it's not a valid syntax
您正在创建B
类型的对象,将有机会获得实例A
的实例成员。
new
是一个关键字,它有自己的语法(如您已经注意到的)。请参阅JLS 3.9
Java没有这样的功能。它具有方法,Java 8将添加更多功能特性。
这将是B b = a.new B();
和新的仍然只是一个关键字。对象a的引用向编译器显示B是一个嵌套类。 http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
新是在Java确保一个关键词。
这是新的关键词语法的一部分。正如你所介绍的那样,这有两种调用方式。第二个用于在实例化内部类之前首先实例化外部类。
确实可能看起来像一个类的属性,但是你将无法在Java中创建这样的属性。由于“新”是关键词,因此不能用作属性。
这是一个关键字,根据定义。事实上,它可能出现在你想要的方法名称的地方并不会改变这一点。 – 2013-05-13 14:03:02
我想你的意思是'a.new B();'而不是'A.new B();' – 2013-05-13 14:03:37
http://stackoverflow.com/a/15759892/2031799 - 我已经回答了类似的问题。 – Mikhail 2013-05-18 10:19:39