addおよびGetContentPaneはメソッドネストされたメソッド
このコードはメソッドのメソッドにアクセスしますか?このコードは何をしていますか?
frame.getContentPane()。add(BorderLayout.SOUTH、b);
addおよびGetContentPaneはメソッドネストされたメソッド
このコードはメソッドのメソッドにアクセスしますか?このコードは何をしていますか?
frame.getContentPane()。add(BorderLayout.SOUTH、b);
メソッドはオブジェクトを返すことができます。そして、そのオブジェクトのメソッドを呼び出すことができます。
ローカル機能をサポートする言語があります。しかし、それらは外部からは見えません。
getContentPane()はコンテナを返し、addはコンテナクラスのメソッドの1つです。
したがって、frame.getContentPane()を実行すると、返されたContainerオブジェクトが取得され、そのオブジェクトのaddメソッドが呼び出されます。
そしてpublic class A {
public A f1() {
//Do something.
return this;
}
public A f2() {
//Do something.
return this;
}
:示されているコードで
A var = new A();
var.f1().f2().f1();
、それは「ネストされた方法」が、他のメソッドから返されたオブジェクトに対して呼び出されている方法ではありません。 (ちょうどあなたの情報については、Javaプログラミング言語で、ネストされた方法の概念はありません。)
次の行:
f.getContentPane().add(component);
は同等です:
Container c = f.getContentPane();
c.add(component);
ではなく2つのステートメントを2つの行に分ける場合、最初の例は1つの行でそれを実行します。
概念的には、これは何が起こっているかである。
f.getContentPane
方法はContainer
を返します。add
メソッドは、返されたContainer
で呼び出されます。これは、いくつかのビジュアルを持つように助けることがあります。
f.getContentPane().add(component); |________________| L returns a Container object. [Container object].add(component); |________________________________| L adds "component" to the Container.
これはあまりにも置換は数学でどのように動作するかとは違っていない - 式の結果は、式を評価し続けるために使用されます。
(8 * 2) + 4 |_____| L 8 * 2 = 16. Let's substitute that. 16 + 4 |____| L 16 + 4 = 20. Let's substitute that. 20 -- Result.