質問: 次の1のWebページでは、クラスとメソッドとの区切れをString.substring()のように「.」で表しています。 次の2のWebページでは、クラスとメソッドとの区切れをjava.lang.String#substringのように「#」で表しています。 1のように「.」で表すのは、ソースと同様にということだと思います。 2のように、ソース以外の文章の中で、クラスとメソッドとの区切れを「#」で表す由来は、何でしょうか。 1 Javaの部分文字列取得の基本「String.substring()」を覚えよう! 2 java.lang.String#substringの心配事を調べた
回答: `String.substring()` と書くとスタティックメソッドであるかのように見えるので、それを避けるため別の記号が用いられるようになったのだと思います。 (別の記号として`#`が用いられるのは、int32_tさんの回答の通りJavadocコメントで馴染みがあったから、でしょうか(参考 1,2)) > > 1のように「.」で表すのは、ソースと同様にということだと思います。 > > > と書かれていますが、インスタンスメソッドである`substring`が実際にその形でソースコード中に表れることはありません。 他方、スタティックメソッドは`String.valueOf()`のように`.`が用いられることが多いように思われます。`#`区切りの表現はあまり見かけません。