- 初期化メソッド
- イニシャライザ ―Initializer― とはフィールド等が持つ値の初期化を行うメソッドの事を指します。
- イニシャライザを作成しておいて、そのメソッドを呼び出せば初期化出来る様にします。
/**イニシャライザ*/
public void initialize() {
time = 0;
}
public void initialize() {
time = 0;
}
- 今回の例ではフィールドtimeを初期化しています。これをコンストラクタに組み込んでみましょう。
public SampleMain() {
initialize();
thread = new Thread(this);
thread.start();
}
initialize();
thread = new Thread(this);
thread.start();
}
- これでSampleMainが作られた時、timeは必ず初期化されます。
public void processEvent(int type, int param) {
int nKS = getKeypadState();
//ソフト1キー[キーボードではA]が押下された時
if ((nKS & 1 << Display.KEY_SOFT1) != 0) {
initialize();
}
//ソフト2キー[キーボードではS]が押下された時
if ((nKS & 1 << Display.KEY_SOFT2) != 0) {
//iアプリを終了
IApplication.getCurrentApp().terminate();
}
}
int nKS = getKeypadState();
//ソフト1キー[キーボードではA]が押下された時
if ((nKS & 1 << Display.KEY_SOFT1) != 0) {
initialize();
}
//ソフト2キー[キーボードではS]が押下された時
if ((nKS & 1 << Display.KEY_SOFT2) != 0) {
//iアプリを終了
IApplication.getCurrentApp().terminate();
}
}
- 他にも、processEvent()メソッドを上記の様に変更すれば"Soft1キー押下時に初期化される"という機能を持たせる事が可能です。
- イニシャライザは呼び出せば初期化出来るという手軽さがあります。これはイニシャライザを設ける最大のメリットだと言えるでしょう。
- また、今回の例だとフィールド1つを初期化しているだけなので余り有り難味は感じないかも知れませんが、
- イニシャライザは呼び出せば初期化出来るという手軽さがあります。これはイニシャライザを設ける最大のメリットだと言えるでしょう。
x = 120;
y = 120;
time = 0;
flag = 0;
:
:
y = 120;
time = 0;
flag = 0;
:
:
- この様に初期化したいフィールドが増えて来ると、態々その度に沢山の行を打ち込むのは非常に面倒です。
- 可読性を上げる為にも、イニシャライザは是非導入して下さい。