Revised: May/4th/2008; Since: July/17th/2005
Java では変数、クラス、メソッドを始めとして、多くのものに識別するための名前をつける必要がある。この名前の事を識別子と呼ぶ。
識別子はほとんど自由に決められるが、次の点に注意する必要がある。
$, _ の何れかとする。false, true (boolean literal) は不可。null (null literal) は不可。キーワードには次の50個が定義されている。
abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
これに false, true, nullの三つを加えると53個になる。
assertは、J2SDK 1.4 で追加されたアサーション構文のためのキーワードです。
記号が許される文字であるかどうかを調べるためには、char型のラッパー・クラスjava.lang.Charaacterのstaticメソッドがtrueを返すことで評価できます。
class JavaCharacter {
public static void main(String[] args) {
// 引数文字列を char 型配列に変換
char[] c = args[0].toCharArray();
// 配列の要素ごとに繰り返し
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + ": ");
// 一文字目に許されるか
boolean bln1 = Character.isJavaIdentifierStart(c[i]);
System.out.println("\t first: " + bln1);
// 含まれる文字に許されるか
boolean bln2 = Character.isJavaIdentifierPart(c[i]);
System.out.println("\t part: " + bln2);
}
}
}
C:\java>javac JavaCharacter.java
C:\java>java JavaCharacter "a$_1'?\=<>"
a: first: true
part: true
$: first: true
part: true
_: first: true
part: true
1: first: false
part: true
': first: false
part: false
?: first: false
part: false
\: first: false
part: false
=: first: false
part: false
<: first: false
part: false
>: first: false
part: false
-: first: false
part: false
*: first: false
part: false
static boolean |
isJavaIdentifierPart(char ch)
指定された文字をJava 識別子の最初の文字以外に使用可能かどうかを判定します。 |
static boolean |
isJavaIdentifierPart(int codePoint)
文字(Unicode コードポイント)を Java 識別子の最初の文字以外に使用可能かどうかを判定します。 |
static boolean |
isJavaIdentifierStart(char ch)
指定された文字を Java 識別子の最初の文字として指定可能かどうかを判定します。 |
static boolean |
isJavaIdentifierStart(int codePoint)
指定された文字(Unicode コードポイント)を Java 識別子の最初の文字として指定可能かどうかを判定します。 |
例えば、数字は、一文字目に許されませんが、含まれる文字としては許されます。数字で始まるクラス名にしたい場合は、 "_01MyClass" のようにするのが一般的です。一方、 ' や *, - は含まれる文字として許されません。$ は、内部クラスを用いるときに区切り文字として使われるので許されますが、自分で命名する場合は紛らわしいので使わない方がよいでしょう。他、日本語をはじめとするマルチバイト文字も許されますが、現実的には、英数字と _ だけを用いるように推奨します。
規則のほかに、ソースコードを記述するときの慣習(コンベンション)があります。これに従うことで、他の人が書いたソースコードが読みやすくなり、複数人が携わる開発の効率が飛躍的に高まります。個人の開発でも、過去に自分の書いたソースコードが読みやすことは、デバッグ効率などの問題から良い事です。
get()Getter, Manager, idgetCust(), PersistenceManager,
custIdCUST_IDConvention には他にも多くの取り決めがあります。社内基準などのローカルなもののほか、 Sun Microsystems の公開している文書も参照すると良いでしょう。