0

次のようなコードをよく見かけます。

X::y()->z();

これはメソッド y を呼び出す静的オブジェクトであり、y がオブジェクトを返した結果であり、このオブジェクトが z というメソッドを呼び出すのでしょうか?

ありがとうございました。

4

4 に答える 4

1

静的オブジェクトは を呼び出していませんyが、メソッドyはクラスで静的に呼び出されています。それを除けば、あなたは正しいです。

于 2013-10-08T09:56:50.133 に答える
0

静的メソッド呼び出しである場合とそうでない場合があります。呼び出しがインスタンス化されたクラス内から行われ、Xそのクラスの親である場合、その呼び出し非静的である可能性があります。

1 つ確かなことはX::y()、オブジェクトを返すことです。

于 2013-10-08T10:02:53.040 に答える
0

次のようになります。

class X {
  public static function y(){
    return new self();
  }

  public function z(){

  }
}
于 2013-10-08T09:57:53.330 に答える
0

オブジェクトXで静的メソッドy()を呼び出してから、 y()から返された結果のオブジェクトでz()メソッドを呼び出しています。

于 2013-10-08T09:58:30.377 に答える