クラス名の付け方・Javaソースコードの書き方

クラス名の付け方

名札

名前を示す・イメージ画像

クラス名を名詞にすると、クラスの役割を「分類している感じ」がします。よって、わかりやすいと思います。

例えばMIDIシーケンスを作成する、というクラスの名前について、
「作成する・Make」を「作る人・Maker」という名詞にして、名前を付けます。
例:
MidiSequenceMaker クラス。
「MIDIシーケンスを作る人」クラス。

動詞のメソッド名

クラス名を名詞にした場合、クラスのメソッド名を動詞にすると、クラス名とメソッド名が一つの文のように「まとまった感じ」になります。

次のようなメソッド名の場合、
saveMidiFile( … )メソッド。
「MIDIファイルを保存する」メソッド。

「クラス名とメソッド名の繋がり」は、次のようになります。
MidiSequenceMaker . saveMidiFile( … )
「MIDIシーケンスを作る人」が、「MIDIファイルを保存する」。

名詞(主語)+ 動詞(述語)となり、一つの「文のような感じ」がします。少し強引な意見かもしれませんが、「英語の一文のような感じ」となります。

※この見出しの記事は、2003年6月当時の記事になります。

クラス名にパッケージ名を含める事

もしもクラス名にパッケージ名を含めなくても、クラス名が表す意味がわかりやすい場合は、クラス名にパッケージ名を含めないほうが良い、と思います。

クラス名にパッケージ名を含めると、クラス名自身がパッケージ名の情報も持つことになります。
ですがそのように、クラス名自身がパッケージ名の情報も持つことについて、利点がある場合はそれほど多くないと思います。それほど意味はなく、単にクラス名が長くなっただけ、という場合が多いと思います。

名前の付け方の例

掲示板例として、掲示板プログラムのログイン処理をするクラス名について、名前の付け方を考えます。

「パッケージ名」で、「掲示板という情報」を示します。
「クラス名」で、「ログイン処理という情報」を示します。
次の2通りのクラス名を考えます。

クラス名その1board . LoginAction「掲示板」の「ログイン処理」
クラス名その2board . BoardLoginAction「掲示板」の「掲示板ログイン処理」

通常は(その1)の掲示板ログイン処理で、わかりやすいと思います。
(その2)のように、掲示板掲示板 …… という風に、繰り返す必要は少ないと思います。

よってログイン処理のクラス名に、掲示板というパッケージ名を示す単語Boardを含めず、LoginActionだけで良いと思います。

もしもプログラム中で、ログイン処理だけでなくて、「掲示板ログイン処理」という風に、掲示板を強調した書き方をしたい場合は、パッケージ名とクラス名を書けば良いと思います。
例:
board . LoginAction action = new board . LoginAction();

パッケージ名を含めている例

もちろんプログラムを書く人が、クラス名にパッケージ名を含めたほうが「わかりやすい」と判断した場合は、クラス名にパッケージ名を含めても良いと思います。

以下、クラス名にパッケージ名を含めている例です。

javax . servlet . http . HttpServletRequestサーブレットの「http」の「Httpサーブレットリクエスト」

※この見出しの記事は、2004年7月当時の記事になります。

サブクラス名の付け方

名前

名前を示す・イメージ画像

サブクラス名の付け方についてです。
サブクラス名の付け方の例として、サブクラス名を
「サブクラスの役割名 + スーパークラス名」
にすると、わかりやすいと思います。

名前の付け方の例

以下にサブクラス名の付け方について、例を書きます。

public class PostAction extends Action {
    ....
}

この場合、スーパークラス名はActionです。
このアクションという名称は、ユーザのマウス操作などに対する処理を行なうことを、示しています。
参考:java.awt.event.ActionListenerのActionと似ている、と思います。

サブクラスの役割名は、Postです。
これは、投稿(メッセージ投稿)という役割を示します。

サブクラス名を「サブクラスの役割名 + スーパークラス名」とすることによって、投稿に関係するマウス操作の処理を行なうクラスだろうと、推量できるでしょう。

参考:ここではPostという単語が、掲示板に「メッセージを投稿する事」を示すと考えました。ですが実際の英会話で、そうであるかどうか、よくわかっておりません。

※この見出しの記事は、2003年6月当時の記事になります。