戻る

Simple, Open, Share

Home
トップページ 会社案内 Javaコーディング標準 開発系メモ Q&A

3、命名規則

(5) パッケージ名

“.” で区切られた文字.

JP.co.your.domainname.projectname junit.framework

(6) ファイル名

パブリックなクラス名は,コンパイラの規則により,ファイル名と同じでなければならな い(大文字小文字の区別を含めて).

(7) クラス名

先頭大文字.あとは区切りを大文字.

CapitalizedWithInternalWordsAlsoCapitalized

(8) 例外クラス名

最後を Exception としたクラス名.

ClassNameEndsWithException

(9) インターフェイス名

クラス名に同じ.
ただし,class と区別の必要があれば,最初にI を付ける.
INameOfInterface また,クラスにある能力を加えるミキシン(mix-in)的な利用の場合,その能力を示す形容 詞とし,-able を接尾にする.

例: Runnable,Clonabe, Serializable, …

(10) 実装クラス名

特に interface と区別の必要があれば,最後にImpl を付ける.
ClassNameEndsWithImpl

(11) 抽象クラス名

抽象クラス名に適当な名前が無いとき,Abstract から始まりサブクラス名を連想させる名 前を付ける.

AbstractBeforeSubClassName

(12) 定数(static final)

大文字を “_” でつないだもの.

UPPER_CASE_WITH_UNDERSCORES

(13) メソッド名

最初小文字で,あとは区切りを大文字.

firstWordLowerCaseButInternalWordsCapitalized()

(14) ファクトリメソッド(オブジェクトをnew するもの)

X newX()
X createX()

(15) コンバータメソッド(オブジェクトを別のオブジェクトに変換するもの)

X toX()

(16) 属性の取得メソッド

X x()
X getX() // JavaBeans でプロパティとして扱える(推奨)
boolean isEnabled() // JavaBeans でプロパティとして扱える(推奨)

(17) 属性の設定メソッド

void setX(X value) // JavaBeans でプロパティとして扱える(推奨)

(18) boolean 変数を返すメソッド

is + 形容詞,can + 動詞,has + 過去分詞,三単元動詞,三単元動詞 + 名詞.

boolean isEmpty() // JavaBeans でプロパティとして扱える(推奨)
boolean empty() // だめ!’空にする’という動詞的な意味に取れるため良 くない.
boolean canGet()
boolean hasChanged()
boolean contains(Object)
boolean containsKey(Key)

理由: if, while 文等の条件が読みやすくなる.またtrue がどちらの意味か分かりやすい.

(19) boolean 変数

形容詞,is + 形容詞,can + 動詞,has + 過去分詞,三単元動詞,三単元動詞 + 名詞.

boolean isEmpty boolean dirty boolean containsMoreElements

(20) 英語と日本語

すべての識別子の名前は英語を基本とし,
別に,日英対応用語辞書を作成してプロジェク トの全ライフサイクルでメンテナンスすること.

(21) 名前の対称性

クラス名,メソッド名を付ける際は,以下の英語の対称性に気を付ける.

add/remove
insert/delete
get/set
start/stop
begin/end
send/receive
first/last
get/release
put/get
up/down
show/hide
source/target
open/close
source/destination
increment/decrement
lock/unlock
old/new
next/previous

(22) ループカウンタ

スコープ(通用範囲)が狭いループカウンタ,イテレータに i, j, k という名前をこの順 に使う.

(23) スコープが狭い名前

スコープが狭い変数名は,型名を略したものを使って良い.

例: ServeletContext sc = getServletContext();

(24) 意味がとれる名前

変数名から役割が読み取れる名前を好め.

悪い例: copy(s1, s2)
良い例: copy(from, to) あるいはcopy(source, destination)

(25) 無意味な名前

Info, Data, Temp, Str, Buf という名前は再考を要する.

悪い例: double temp = Math.sqrt(b*b - 4*a*c);
良い例: double determinant = Math.sqrt(b*b - 4*a*c);

(26) 大文字小文字

大文字と小文字は別な文字として扱われるが,それのみで区別される名前を付けてはなら ない.

(27) その他

その他,プロジェクトによっては以下の命名則を用いる場合がある.

ローカル変数:
lower_case_with_underscore

private/protected 変数:
_prefixUnderscore もしくはsuffixUnderscore_

static private/protected 変数:
__twoPrefixUnderscores もしくはtwoSuffixUnderscores__

©2014 Powered by 株式会社開成