私が理解しているように、 new はキーワードであり、関数ではありません。
例えば
A a = new A();
型 A のオブジェクト a をインスタンス化します。
キーワードは、それ自体はどのオブジェクトにも関連付けられていません。
逆に、A に public 内部クラス B がある場合は、B を呼び出します。
B b = a.new B()
ここでは、new は B のプロパティであり、独立したキーワードではないようです。
A.new とはどういう意味ですか?
私が理解しているように、 new はキーワードであり、関数ではありません。
例えば
A a = new A();
型 A のオブジェクト a をインスタンス化します。
キーワードは、それ自体はどのオブジェクトにも関連付けられていません。
逆に、A に public 内部クラス B がある場合は、B を呼び出します。
B b = a.new B()
ここでは、new は B のプロパティであり、独立したキーワードではないようです。
A.new とはどういう意味ですか?
New
どちらの場合もキーワードです。これは、クラス インスタンス作成式の一部です。
非修飾と修飾の 2 つの形式があります。
非修飾形式はキーワード「new」で始まります。
修飾された形式は、プライマリ クラスで始まり、次に 'new' です。これにより、内部クラス (外部クラスのインスタンスへの暗黙的な参照を保持する静的ではないネストされたクラス) を作成できます。修飾された形式は、そのインスタンスを指定する方法を提供します。
非修飾クラス インスタンス作成式は、キーワード 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
instance のインスタンス メンバーにアクセスできる型のオブジェクトを作成していますA
。
new は確かに Java のキーワードです。
これは新しいキーワード構文の一部です。あなたが提示したように、それには2つの呼び出し方法があります。2 つ目は、内部クラスをインスタンス化する前に、最初に外部クラスをインスタンス化するために使用されます。
クラスのプロパティのように見えるかもしれませんが、Java でそのようなプロパティを作成することはできません。「new」はキーワードであるため、プロパティとして使用できません。