平鍋です.
しばらくメール見れませんでしたので,まとめてコメントします.
> ローカル変数か、インスタンス変数(あるいはクラス変数)
> かの区別を明らかにする。
> あるいは
> プライベートかパブリックかの区別を明らかにする、
> というような目的で _ を頭あるいは末尾につける
> スタイルがとられてきた(あるいはとられている)と
> いうことですね。
> 上記アドバイスを受けての私の意見ですが、インスタンス
> 変数、クラス変数は、可視性を問わず _ を頭あるいは末尾
> につける、というのではどうでしょうか。
いいと思います.私は個人的には,_ など使ってメンバ変数を区別
することはありません.JDK のソースのスタイルに従っているためで
す.
しかし,これを行うと,格段に読みやすくなる,と言った人がいる
ので,試してみる価値はあるか,と思っています.書籍
Refactoring のコード例のスタイルですね.
又,"_"について蛇足ならが一言ですが,C/C++ に於いてこれを識
別子の先頭に付けるのは,ANSI 違反です.識別子先頭の _ は,処
理系(言語や標準ライブラリ)に予約されています.
# Java では関係ないです.
とはいっても,かなり広く行われている違反です._ を末尾に,と
いう案は,ここから(違反回避)来ていると思います.メンバに m_
を,というのは MS で行われているし,d_ を,というのも,書
籍,大規模C++ソフトウェアデザイン,で推奨されています.
> 可視性については、原則的にパブリックな変数は表れない
> (例外はあると思います)と思いますが、プロテクテッドは
> ありそうだというのが私の考えです。で、リファクタリングして
> いくとプロテクテッドが、プライベートになったり、その逆にな
> ったりすることが有り得るのではないか。ならば可視性の変
> 更によって名前が変わらないほうがいいのでは、、、と思うの
> ですがどうでしょう?これは、万が一パブリックな変数が出て
> きたとしても同じ理由から、インスタンス変数、クラス変数に
> は全て _ をつける、としたほうがいいと思いますが、どうでし
> ょう?
賛成です.
総合的なコメントとしては,「スタイル」はこれを議論しはじめる
と盛り上がるのですが,今回はこれで盛り上がることはやめ,ホソ
カワさんに「決めて」頂き,それに従う,というのがよいと思いま
す.
以上