1

私はランキングと呼ばれるクラスを持っています。将軍、兵士、伍長、市長などの特定のランクがあります。

ここで、ランキングによってデフォルトに設定する必要があります。

  1. 兵隊
  2. 伍長
  3. 市長
  4. 全般的。

これはメンバーです:

private static char Ranks[]; // size 4

次のように、デフォルトでどこに設定できますか。

Ranks[0] = soldier;
Ranks[1] = corporal...

デフォルト値をどこに置くべきかよくわからないので、プログラムはデフォルトで兵士がランク[0]であることを認識します。コンストラクターに?メンバーに?

4

1 に答える 1

9

代わりに Enum を使用することをお勧めします。

Enum を使用してクラスに定数を指定してデフォルトを指定し、代わりに別のコンストラクター/セッターを使用することができます。

public enum Rank {
    SOLDIER, CORPORAL, MAYOR, GENERAL
}

...

public class MilitaryPerson {

    private static final Rank DEFAULT_RANK = Rank.SOLDIER;

    private Rank rank;

    public MilitaryPerson() {
        this.rank = DEFAULT_RANK;
    }

    public MilitaryPerson(Rank rank) {
        this.rank = rank;
    }

    // ...

}

別の (そしてより良い) 解決策は、構成ファイル (例: *.properties) にデフォルトのものを設定することです。

于 2013-04-14T00:26:44.637 に答える