こんにちは、現役SEの「とも」です。
今回は、命名規則について説明します。
- 変数名や定数名、メソッド名やクラス名の付け方には、一般的な表記方法というものが存在します。
このような表記方法に則ってソースコードを記載することで、一貫性があり見やすいプログラムにすることができます。
コンパイルエラーとなる使用できない文字もありますので、合わせて説明しますね。
コンパイルエラーとなるもの
下記の条件に当てはまるとJavaのコンパイルエラーとなります。
- Javaの予約語(intなど、Javaにとって意味のある文字列)は使用できない
- 変数名の1文字目に数字を入れることはできない
- アルファベットと数字以外に使用できる文字は「ドル($)」と「アンダースコア(_)」以外使用できない
表記方法
まず前提として、名称はデータや用途が分かるように付けましょう。
これまのでサンプルは、aとかbとか適当な名前を付けていましたが、それぞれの意味はぱっと見で分からなかったと思います。
プログラムが簡単なうちはいいですが、少し規模が大きくなるとまったく分からなくなります。
変数名に意味が分かる文字列を付けたうえで、以下のキャメルケースやスネークケースといった表記方法を使うと良いです。
【キャメルケース】
文字列の最初は小文字で始まり、単語の区切りで大文字にする表記方法です。
「ロワーキャメルケース」とも呼ばれることがあります。
Javaの変数やメソッドでよく使われる表記です。
メソッドの詳細については後日、記事を書きたいと思います。
int total = 0; // 1単語の場合は小文字のみ
int totalValue = 0; // 2単語の場合は2単語目の先頭の文字を大文字にする
int maxTotalValue = 0; // 3単語以上も単語の先頭を大文字にする
先頭を大文字とする表記は、「アッパーキャメルケース」や「パスカルケース」と言われます。
Javaの場合、こちらはクラス名で利用されます。
クラスについても後日、記事を書きたいと思います。
class TestObject {
・・・
}
【スネークケース】
全て小文字または大文字で記載し、単語と単語の間はアンダースコア(_)で繋ぐ表記方法です。
小文字のスネークケースについては、昔はC++で良く見ましたが、個人的には最近見かけることはあまり無いです。
他の言語では分かりませんが、Javaではあまり使われていないと思います。
int total = 0; // 1単語の場合は小文字のみ
int total_value = 0; // 2単語の場合は単語間にアンダースコアを入れる
int max_total_value = 0; // 3単語以上も単語間にアンダースコアを入れる
大文字の表記は、Javaでは一般的に定数の表記で使用されています。
final int TOTAL = 0; // 1単語の場合は大文字のみ
final int TOTAL_VALUE = 0; // 2単語の場合は単語間にアンダースコアを入れる
final int MAX_TOTAL_VALUE = 0; // 3単語以上も単語間にアンダースコアを入れる
【ハンガリアン記法】
型が分かる文字を1文字先頭に記載する表記法です。
昔は良く見ましたが、現在は型に変数名が依存していることが良くないため、推奨されていません。
int iTotal = 0; // intのiを先頭に入れ、単語の先頭は大文字
int iTotalValue = 0;
int iMaxTotalValue = 0;
まとめ
一般的にはプロジェクトのコーディング規則にどのような表記をするのかが書いてあると思いますので、確認してみましょう。
個人でプログラムを作成する場合は、上記のような一般的な表記としておくと間違いないと思います。
これまで、なんとなく適当な変数名を付けていた方は、これを機会に一般的に使われている命名規則を付けるように習慣づけるといいと思います。
私もこれまでのサンプルで適当な名前の変数名を付けてきましたが、ここからは一般的な表記方法に則って記載したいと思います。