こんにちは、エンジニアのnecomimiです。
今回は先日合格した「Java Bronze SE(以下Bronze)」について勉強法や重要ポイントなどを解説していこうと思います。Bronzeに合格したいという方は必見の記事ですので、ぜひ参考にしていってください。
※この記事はBronzeに焦点を当てているため、Javaの基本的な文法は説明しておりません。
「Java Bronze SE」の概要
Bronzeは日本オラクル株式会社が実施している資格試験で、Javaプログラミングにおける基礎知識が備わっているかどうかを測るものです。この試験は、問題数60問で正答率が60%なので難易度はそこまで高いものではないです。ただ、試験時間が65分と短いため、問題を多く解き試験になれる必要があります。また、Javaの細かい仕様を聞かれることがあるので、何が問われやすいのかも把握することが重要になってきます。
押さえておくポイント
それではここからは分野別に出題傾向や重要ポイントを解説していこうと思います。(箇条書きで見づらくてすいません..)
データ宣言・使用
データの宣言・使用で注意すべき点は主に6点です。
1点目は基本データ型が扱える値の範囲です。特にbyteとshortはよく出題されるので押さえておきましょう。
byte : -128~127
short : -32768~32767
2点目は変数などの宣言規則です。変数やメソッド、クラスなどの名前には次のような決まりがあります。
・1文字目は英字、ドル記号、アンダースコア
・2文字目以降は数字も使用可能
3点目は配列の宣言方法です。配列の宣言は以下のようにも行うことができることを覚えておいてください。
int []a = new int[3];
4点目は変数のスコープです。宣言した変数の有効範囲がどこまでなのかを意識して問題を解きましょう。
5点目は変数の初期化です。main関数内の変数は明示的に初期化しなければなりませんが(配列の場合を除く)クラス内で定義した変数は自動的に初期化されます。
6点目はchar型についてです。charは文字を格納する型ですが符号なしの整数型として扱われます。ゆえに、int型などの整数型に代入することが可能です。
演算子と条件分岐
演算子と条件分岐で注意すべき点は5点あります。
1点目は前置・後置インクリメントの違いです。前置インクリメントは変数に1足してから処理を行い、後置インクリメントは処理を行った後に1を足します。
2点目はswitch文の評価結果の型です。switch文の評価結果の型にはlong型は指定できないので覚えておきましょう。
3点目は制御文の有効範囲です。Bronzeでは「{}」がついていない制御文がよく出題されます。この場合は次の一行のみが制御文の中身と判断されます。
4点目は制御文の条件式についてです。条件式にfalseをそのまま指定すると制御文内は絶対に実行されなくなるため、コンパイルエラーとなります。
5点目は拡張for文についてです。拡張for文のカッコ内で使用する変数は必ずカッコ内に定義する必要があります。
クラスとインスタンス
クラス・インスタンスで注意すべき点は3点あります。
1点目はコンストラクタについてです。コンストラクタは戻り値を指定しないので、戻り値が指定されたものはメソッドとして扱われます。メソッドやコンストラクタの名前だけで判断すると間違えてしまいます。また、コンストラクタにfinal修飾子は指定できません。
2点目はアクセス修飾子の指定についてです。特に覚えておきたいのはクラスに指定可能なアクセス修飾子です。クラスにはデフォルトかpublicしか指定できないので注意してください。また、finalが指定されたクラスやメソッドは継承やオーバーライドができなくなります。
3点目はインスタンスとstaticメンバ間のアクセスについてです。インスタンスメソッドはstatic変数(メソッド)にアクセスすることは可能ですが、staticメソッドはインスタンス変数(メソッド)アクセスすることはできません。ただし、インスタンスを生成すればstaticメソッドからでもインスタンス変数(メソッド)にアクセスすることが可能です。
継承
継承で注意すべき点は3点あります。
1点目はコンストラクタの継承です。クラスを継承した際は、暗黙的に親クラスのコンストラクタが実行されるため、親クラスで事前に引数なしのコンストラクタを定義しておく必要があります。
2点目はオーバーライドについてです。オーバーライドには、「戻り値の型は親クラスと同じものかそのサブクラスでなければならない」という規則があるので覚えておきましょう。また、非staticなメソッドをstaticなメソッドでオーバライドをすることはできません。(逆も同じです。)
3点目はthisとsuperです。thisやsuperはインスタンスを指すので、staticメンバから使用することはできません。また、コンストラクタではthis()やsuper()は先頭に記述する必要があります。
4点目はメソッドの呼び出しについてです。親クラスの型でインスタンスを生成した場合、親クラスで定義されているメソッドしか呼び出せません。(子クラスのメソッドを呼び出したい場合はキャストを行います。)
抽象クラス・インターフェース
抽象クラス・インタフェースで注意すべき点は2点あります。
1点目はインターフェースの修飾子についてです。インタフェースではメソッドにpublic abstract、変数にpublice static finalが暗黙的に付与されます。また、public以外の修飾子を指定するとコンパイルエラーになります。
2点目はimplementとextendsについてです。implementとextendsの両方を記述する場合はextendsを先に記述します。
ポリモフィズム
ポリモフィズムで注意すべき点は1点あります。
それはキャストについてです。親クラスのインスタンスを子クラスの型にキャストしようとすると、コンパイルエラーではなく実行時にエラーが発生するので注意してください。
その他
上記のような文法問題以外にもJavaそのものについての問題が必ず2~3問出題されます。よく出題される分野は次の通りです。
・Javaの特徴(OSの違いを気にせずプログラミングできる等)
・Java SE,EE,MEの使い分け
・JVMが行っていること
・コンパイル時、実行時のコマンド
今回は細かいところは説明しないので、詳しい内容はお手元にある参考書で確認してください。
その他にも以下のような点を注意しておく必要があります。
・importとpackageを両方記述する場合は、packageを先頭に記述する
さいごに
今回は「Java Bronze SE」の重要ポイントをまとめてみましたがいかがでしたでしょうか。試験の前日などに見返すと問題が解きやすくなると思うので、ぜひ活用していただけると幸いです。
コメント