繁体   English   中英

什么是java新手?功能或关键字

[英]what is java new? A function or keyword

据我所知,new是关键字而不是函数。

例如

A a = new A();

实例化A类型的对象a
关键字本身与任何对象无关。

相反,当我们在A公共内部B级时,我们打电话

B b = a.new B()

这里看起来new是B的属性而不是一个独立的关键字。

A.new是什么意思?

在这两种情况下, New都是关键字。 它是类实例创建表达式的一部分。

有两种形式: 不合格合格

不合格的表单以关键字“new”开头。

合格的表单以主要类开头,然后是“新”。 这允许创建内部类 - 非静态嵌套类,其中包含对外部类的实例的隐式引用。 限定表单提供了指定该实例的方法。

Java语言规范,第15.9节

非限定类实例创建表达式以关键字new开头。

无限制的类实例创建表达式可用于创建类的实例,无论该类是顶级(第7.6节),成员(第8.5节,第9.5节),本地(第14.3节)还是匿名类(第15.9.5)。

合格的类实例创建表达式以Primary开头。

限定类实例创建表达式允许创建内部成员类及其匿名子类的实例。

new是一个具有自己语法的关键字(正如您所注意到的)。 JLS 3.9

Java没有这样的功能。 它有方法,Java 8将添加更多功能特性。

它将是B b = a.new B(); 而new仍然只是一个关键字。 对象a的引用向编译器显示B是嵌套类。 http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

B b = A.new B(); // A should be an instance object not a class name,
                 // otherwise it's not a valid syntax

您正在创建一个类型B的对象,该对象可以访问实例A实例成员。

新的肯定是Java中的一个关键词。

这是新关键字语法的一部分。 正如您所呈现的那样,这有两种调用方式。 第二个用于在实例化内部类之前首先实例化外部类。

它确实看起来像是类的属性,但是你无法在Java中创建这样的属性。 因为“新”是关键词所以它不能用作财产。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM