C#とJavaの命名規約について
プログラミングにおける命名規約とは
私は趣味でC#を使っています。しかし、会社の研修ではJavaを扱っています。2つの言語はほとんど同じためスムーズに書ける!
はずでした、
基本的な書き方は同じなのですが、変数名や関数名で躓いたのです。
皆さんは数値を文字列に変換したいとき、どのようにコードを書きますか?
- C#
int n = 0; string str = n.ToString();
int n = 0; String str = Integer.toString( n );
この違い分かりますか?色々ツッコみたいんですが、今回はメソッド名について触れます。
C#とJavaでToStringとtoStringの先頭文字の「T」が大文字と小文字で異なるんですよ!
それだけ?
そういわれてしまうと何とも言えないんですが(笑)
ただ先頭文字のため、エディタの予測候補がうまくいかなくなるんですよね。どっちかに揃えて欲しいなぁ
では、なぜ書き方が異なるのでしょうか、
これは、使っている命名規約が異なるためなんです。その前に、変数の名前について話しましょう。
そもそも変数の名前とは?
プログラミングでは、数値や文字列を入れておく変数(箱のようなもの)に名前を付けて識別します。なので自分一人で作っているときや、小さいプログラムであれば「a」とか「b」とか正直なんでもいいんです。
ですが、大量のコードになったり、チーム開発となるとそうはいきません。誰が見てもわかりやすい名前をつけないと問題が起こることがあります。
なので、分かりやすくするために、単語などを組み合わせて名前を付けます。
例えば、「データを送る」というメソッドを作ったときの名前は「データ → data」「送る → send」を組み合わせて
とします。これくらいならまだ読めますね。ですが、「初期値を設定する」というメソッドでは、「初期値 → firstvalue」「設定 → set」を組み合わせて
となります。ここまで長くなるともう読みにくいですよね。
では、それぞれの名前の単語の先頭文字を大文字にしてみましょう。
「SetFirstValue」
どうですか?読みやすくなりましたよね!
こうやって、変数名などを読みやすく工夫をしているんですね。
ここで出てくる命名規約
本題に戻りましょう。
さっき名前の付け方の話をしましたが、これだとJavaの「toString」の先頭文字が小文字なのでおかしくなります。
でもこれも正しいのです。
C#とJavaでは採用している命名法が異なるのですよ。それでは命名規約について紹介します。
- CamelCase
- 最初の単語はすべて小文字
- 以降の単語は先頭だけ大文字、それ以外は小文字 例:setFirstValue, sendData
- PascalCase
- 単語の先頭は大文字、それ以外は小文字 例:SetFirstValue, SendData
C#とJavaの命名規約の一部を表にしました。
C# | Java | |
---|---|---|
クラス | PascalCase | PascalCase |
メソッド | PascalCase | CamelCase |
ローカル変数 | CamelCase | CamelCase |
こうみると、メソッドだけ異なるのですね。
なので、メソッド名を付ける時や使うときは気を付けましょう。
最後に
ということで言語ごとの命名規約や変数の名前の付け方の話をしました。
今回はC#とJavaの2つを説明しましたが、他の言語がどうなっているかは是非調べてみてください。
ちなみに、変数などの名前の付け方を知りたい方はリーダブルコードを読んでみるといいと思います。私はまだ理解しきれていないですが(笑)
今回はこの辺で、ではまた!