ちょっとだけ気になったこと
同パッケージ内の他の class の static 定数の参照
通常、他の class の static 定数(final 変数)を参照する場合は class名.定数名 ですが同パッケージ内にある他の class の static 定数を参照する場合は class 名の指定がなくてもコンパイルエラーにならない。
動作確認した java のバージョン
$ java -version java version "1.6.0_17"
優先順位に注意
下の v1 と v2 の結果は?
public class test { public static void main(String[] argv) { int y = 2; int v1 = 5 + (y % 4) == 0 ? 3 : 5; int v2 = 5 + ((y % 4) == 0 ? 3 : 5); System.out.println("v1 = " + v1); System.out.println("v2 = " + v2); } }
int v1 = 5 + (y % 4) == 0 ? 3 : 5;
は
int v1 = (5 + (y % 4)) == 0 ? 3 : 5;
と同じなので、v1 と v2 は、当然、結果が違う。
$ java test v1 = 5 v2 = 10
boolean をビット演算子で更新
ある条件で boolean を true に更新する時
private boolean b; .. void checkData(int x) { .. b |= x == 3; .. } .. checkData(3); ..
if 文を使わないで boolean をビット値のように |= で true に更新できる。