【はじめてのJava】識別子命名時の慣例【コラム】
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
コラム
コラムでは、本編の補足などをしていきます。
この記事では、【はじめてのJava】識別子【データ型と変数編】の補足として識別子命名時の慣例を紹介します。
なお、この記事の内容はJavaの資格試験で問われることはほとんどないため、資格試験対策の場合は本項目は読み飛ばしてください。
目次
識別子の慣例
識別子を命名する際、命名規則に従ってさえいれば自由に命名することが出来ると前述しました。
しかし、チームで作業をする場合、各々が好きな名前で識別子を命名してしまうと、記述した本人以外にとって読み辛いコードが出来上がってしまいます。
そこでチームで作業する際は、慣例としてチームごとの命名規則を追加して、コードの可読性を高めます。
チームごとの命名規則はプログラミング言語やプロジェクトごとに異なります。
本記事では識別子の慣例として有名なキャメルケースとスネークケースを簡単に紹介していきます。
キャメルケース
キャメルケースとは、複数の単語を組み合わせて命名する際に、単語の頭文字を大文字にする命名規則です。
各単語をスペースなしでつなげますが、頭文字が大文字なので単語と単語の区切れ目が区別できる命名規則です。
例)errorMessage, StringBuilder, ArrayList
error Messageのように、単語と単語がスペースで区切られてしまっているものは、キャメルケースではありません。
キャメルケースには、ローワーキャメルケースとアッパーキャメルケースがあります。
ローワーキャメルケース
キャメルケースのうち、最初の一文字を小文字から始める命名規則です。
Javaでは慣例としてメソッド名や変数名を定義する際に使用されることが多いです。
例)getName, errorMessage, productList
アッパーキャメルケース
キャメルケースのうち、最初の一文字を大文字から始める命名規則です。
Javaでは慣例としてクラス名を定義する際に使用されることが多いです。
例)StringBuilder, RuntimeException, ArrayList
スネークケース
識別子に複数の単語からなる名前を定義する際に、アンダースコア(_)で単語と単語をつなぐ命名規則です。
Javaではあまり利用されません。
例)send_message, my_first_html, MAXIMUM_CAPACITY
定数の命名規則
定数の識別子を定義する際は変数と区別するための全て大文字で記述するという命名規則です。
キャメルケースと組み合わせると単語の境目が分からなくなるため、通常はスネークケースと組み合わせます。
例)MAX_INDEX_NUMBER, UNKNOWN_ERROR_MESSAGE, MAXIMUM_CAPACITY
boolean型の命名規則
boolean型の変数や、boolean型の値を返すメソッドの命名規則については、他のデータ型と区別して特別な命名規則を採用している場合もあります。
boolean型の変数はやbooleanメソッドは対象の状態に応じて「true」と「false」を示す、つまり「yes」か「no」を示すことが多くあります。
そのため、boolean型の変数やboolean型を戻すメソッドの識別子には、その変数やメソッドが示す内容を識別子に定義します。
例)isEnabled(有効である), hasPermission(許可を持っている), canDriveCar(車を運転してよい)
このようにboolean型の変数やboolean型を戻すメソッドは「is~」「has~」「can~」という定義をすることがあります。
ポイント
識別子を定義する際は基本的にそれら変数やメソッドなどが示す意味や機能をそのまま英語に直訳したものが分かりやすくて良いでしょう。
今記事の内容に従って識別子を定義することで、識別子を読んだだけでそれらのソースコードの中での役割が分かります。
また、命名規則から変数やメソッドの判別もつけられるようになるため、コードの可読性は大きく高まります。
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編