簡體   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