経緯
プログラマー30歳定年説は遠い昔の話しで、マネジメントより技術が重宝される時代になってきたのを肌で感じている今日この頃です。
そんな中、JavaSilverを受験しギリギリ合格したのですが、引っ掛け問題が多くて気が狂いそうになったので、その部分についてナレッジを残そうと思います。
アクセス修飾子praivate
これを見た瞬間にコンパイルエラーを疑いましょう。
自分のクラス以外からはアクセス不可の修飾子です。めんどくさそうなロジックほど、実はあっけなくコンパイルエラーと判断できる場合が多いですpub
パッケージが分かれている
わざわざパッケージが分かれているヤツもあやしいです。アクセス修飾子の効き方にフォーカスしている問題です。ここですべてpublicなら安心ですが、その他の場合は要確認です。それはコンパイルエラーになるケースでは?
継承の階層が深く、コンストラクターも独自記載あり
これだけであやしいです。サブクラスと同じものを親が持っていますか?
初期化をしていないローカル変数
これだけであやしいです。値がセットされないまま参照していませんか?
if文のあるケースで値がセットされ、elseとなるケースが存在しなくても、コンパイラーはここまで見てくれません。すなわち、elseに入ったときダメじゃんとなりコンパイルエラーとなるらしいです。
break; continueの直後に処理がある
これ一発アウトです。この処理は、通らないロジックになります。
(注)これ、けっこう気がつきません。普段こんなコーディングしないから脳内で変換されてしまいますね。すなわち、①条件分岐で判断し、②処理し、⓷処理をぬける。
と変換してしまう。