命名規則とキーワード

Revised: May/4th/2008; Since: July/17th/2005

Naming Rules

Java では変数、クラス、メソッドを始めとして、多くのものに識別するための名前をつける必要がある。この名前の事を識別子と呼ぶ。

識別子はほとんど自由に決められるが、次の点に注意する必要がある。

  1. 大文字と小文字を区別する。
  2. 1文字目は英字、$, _ の何れかとする。
  3. キーワードと重複しないようにする。
  4. false, true (boolean literal) は不可。
  5. null (null literal) は不可。
  6. 記号は、演算子/特殊文字は不可。
  7. 文字数は任意。
  8. 言語は任意。

キーワード

キーワードには次の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.Charaacterstaticメソッドが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
Characterのstaticメソッドの一部
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" のようにするのが一般的です。一方、 ' や *, - は含まれる文字として許されません。$ は、内部クラスを用いるときに区切り文字として使われるので許されますが、自分で命名する場合は紛らわしいので使わない方がよいでしょう。他、日本語をはじめとするマルチバイト文字も許されますが、現実的には、英数字と _ だけを用いるように推奨します。

Naming Convention

規則のほかに、ソースコードを記述するときの慣習(コンベンション)があります。これに従うことで、他の人が書いたソースコードが読みやすくなり、複数人が携わる開発の効率が飛躍的に高まります。個人の開発でも、過去に自分の書いたソースコードが読みやすことは、デバッグ効率などの問題から良い事です。

Convention には他にも多くの取り決めがあります。社内基準などのローカルなもののほか、 Sun Microsystems の公開している文書も参照すると良いでしょう。



Copyright © 2001-2008 SUGAI, Manabu. All Rights Reserved.