戻る

Simple, Open, Share

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

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 株式会社開成