ホソカワです。
on 2000/07/19 12:10 PM, firo at firo@....jp wrote:
> 矢崎です。私も少しだけ議論に参加させてください。
>
> tetsuya@....jp さんwrote:
>
>>
>>>> インスタンス変数
>>>> 先頭文字を小文字、以降の単語の先頭を大文字、末尾に "_"
>>>> (ex: name_)
>>>>
>>>
>>> これは、privateの場合ですよね?
>>
>> private, protected です。
>> public の可視性は、「使わないはず」なので考慮していません:-)
>>
>>>> クラス変数
>>>> 先頭文字を小文字、以降の単語の先頭を大文字、末尾に "__"
>>>> (ex: count__)
>>>>
>>>
>>> これも。
>>
>> 同様だと思います。
>>
>
> このインスタンス変数やクラス変数の末尾に"_"をつける
> やり方って、一般的なのでしょうか?何故そうしなけれ
> ばならないか、ちょっと理由がわかりません。どなたか教
> えてください。
>
C から由来しているものだと思います。どこかで読んだような気がします。UNIX で
extern じゃないシステム変数や関数には、頭に "_" を付けています。つまり、"_"
がついているものはプライベートなものであると言うことです。これを受け継いで、
C++では、private 変数やメソッドの頭に "_" をつけるスタイルがあります。ところ
が、システムコードをC++で書いていると C++ のプライベート変数やメソッドと
UNIX のシステム変数、関数との区別がつかなくなってしまうので、末尾に"_"をつけ
るスタイルが出来たようです。
> もしとりたてて理由がなければ"_"はいらないのでは、
> というのが私の主張ですが、いかがでしょう。
>
> #私は、M.Fowlerが採用している、頭に"_"を付ける方法も、
> あまり好きではないのです。
>
C++ のスタイルを Java で使っているだけだと思いますので、止めてもいいと思いま
す。ただ、栗原さんも言っていましたが、案外便利ですよ。
private int x;
private int y;
public setXY(int x, int y) {
this.x = x;
this.y = y;
}
と
private int _x;
private int _y;
public setXY(int x, int y) {
_x = x;
_y = y;
}
どっちが好みですか?
> --
> 矢崎博英 firo@....jp
>
>
--
Kaoru Hosokawa
khosokawa@....com