Google検索エンジン

トップページ » Java複数クラス入門 » Oracle認定Javaプログラマ(OCJ-P)試験の練習問題(複数クラス編)


Oracle認定Javaプログラマ(OCJ-P)試験の練習問題(複数クラス編)

  • Oracle認定Javaプログラマ(OCJ-P)試験について

    Oracle認定Javaプログラマ(OCJ-P)試験と類似した形式で出題しています。 Javaの資格試験では、普段プログラミングする際に、あまり意識していないことからよく出題されます。 また、ケアレスミスを誘うような問題が出題されることがあります。

    管理人が考えた完全オリジナルの問題、参考書または実際の試験問題をアレンジした問題を掲載しています。 Oracle認定Javaプログラマ(OCJ-P)の取得を目指す方は、とにかく練習問題を解いて出題傾向に慣れておく必要があります。 参考書や問題集を別途購入して学習することをお勧めします。 IT系のベンダー資格と国家資格の一覧表はこちらからどうぞ!

    Javaプログラミング講座では、他のページにも練習問題を掲載しています。 興味がある方は、ロジックを考えるプログラミング練習問題(初級編)Java練習問題(キャスト編)Java資格試験の練習問題(メソッド編)にもチャレンジしてみてください。

    なお、回答はこのページの下段に掲載していますので、スクロールしすぎると回答が見えてしまいます。 ご注意ください。



    Java練習問題(複数クラス編)

    以下の問題1〜5を○×で回答してください。問題6以降は実行結果を回答してください。

    問題1.
    コンストラクタ名は、クラス名と同じにする必要がある。

    問題2.
    1つのクラスに、同じ名前のコンストラクタが複数あるとコンパイルエラーになる。

    問題3.
    1つのクラスに、同じ名前のコンストラクタとメソッドがあると、コンパイルエラーになる。

    問題4.
    コンストラクタは、戻り値を返すことができない。

    問題5.
    コンストラクタ内に「return;」を記述すると、コンパイルエラーになる。

    問題6.
    以下のプログラムの実行結果(表示される値)を回答してください。

    問題6.Javaプログラム
    class sampleA {
       public static void main(String args[]) {
          int num = 1;
          sampleB clsB = new sampleB( num );
          clsB.setValue( num );
          clsB.setValue( num + clsB.getValue() );
          int val = clsB.getValue();
          System.out.println(val);
       }
    }
    
    class sampleB {
       int test;
       sampleB(int x){
          test = x;
          test++;
       }
       void setValue(int y){
          test += y;
       }
       int getValue(){
          return test;
       }
    }
    

    問題7.
    下記プログラムの実行結果は、どのようになりますか?(A〜Eの中から1つ選択)
    A.画面に「う」と表示される。
    B.画面に「あう」と表示される。
    C.画面に「あいう」と表示される。
    D.コンパイルエラーになる。
    E.実行時エラーになる。

    問題7.Javaプログラム
    class sampleA {
       public static void main(String args[]) {
          sampleB clsB = new sampleB();
          System.out.print("う");
       }
    }
    
    class sampleB {
       sampleB() {
          showMsg1();
       }
       static void showMsg1() {
          System.out.print("あ");
          showMsg2();
       }
       void showMsg2(){
          System.out.print("い");
       }
    }
    

    問題8.
    下記プログラムの実行結果は、どのようになりますか?(A〜Dの中から1つ選択)
    A.画面に「classA」と表示される。
    B.実行時に8行目の「new sampleA()」で例外が発生する。
    C.画面にはなにも表示されず、正常終了する。
    D.コンパイルエラーになる。

    問題8.Javaプログラム
    class sampleA {
       void sampleA() {
          System.out.print("classA");
       }
    }
    class sampleB extends sampleA {
       public static void main(String args[]) {
          new sampleA();
       }
    }
    


    Java練習問題(複数クラス編)の回答

    問題1.○
    コンストラクタ名はクラス名と同じにする必要があります。

    問題2.×
    1つのクラスに、同じ名前のコンストラクタが複数存在してもコンパイルエラーになりません。 引数の個数や型が順番どおり全て一致している場合は、コンパイルエラーになります。 詳しくは、コンストラクタのオーバーロードをご覧ください。

    問題3.×
    コンストラクタ名と同じメソッド名を指定しても、コンパイルエラーになりません。

    問題4.○
    コンストラクタは、戻り値を返すことができません。 詳しくは、コンストラクタについてをご覧ください。

    問題5.×
    コンストラクタ内に「return;」を記述しても、コンパイルエラーになりません。 コンストラクタの処理が「return;」により終了するだけです。

    問題6.7
    実行結果として、「7」が出力されます。 クラス変数を使用していることに気がつけば、後は上から順にトレースするだけです。

    問題7.D
    コンパイルしようとすると、コンパイルエラーになり「static でない メソッド showMsg2() を static コンテキストから参照することはできません。」と表示されます。 静的(static)メソッドからは、自分のクラス内の静的(static)ではないメソッドを参照することはできません。 sampleBクラスのstaticを削除すると画面に「あいう」と表示されます。

    問題8.C
    8行目でクラスsampleAのインスタンスを生成すると、sampleAのデフォルトコンストラクタが呼び出されます。 2行目に記述されたメソッド「void sampleA()」は、戻り値の型が指定されていますので、コンストラクタではなく通常のメソッドです。 クラスsampleAのデフォルトコンストラクタはコンパイラによって自動生成されますが、生成されたデフォルトコンストラクタが画面出力を行うことはないため、画面には何も表示されずに正常終了します。



Java複数クラス入門
オンライン書店
  • ライブドアブックスを利用すると、わざわざ書店で本を探さなくてもインターネットで本を検索して購入することができます。
  • 注文してから、本が早く届くオンライン書店として定評があります。送料250円で、1500円以上のお買い上げで送料が無料です。
  • eBOOKOFF(イーブックオフ)は、コミック、書籍、CD、ゲーム、DVDなどを販売する日本最大級のオンライン中古書店です。
  • 全巻漫画.comは、日本最大級の古本全巻セット在庫量を誇るオンライン中古書店です。10,000以上の購入で送料が無料になります。
書籍の紹介
  • Java ポケットリファレンス
    Java ポケットリファレンス
    発売:2011/03/25
    定価:2,709円
    著者:高江 賢
    出版:技術評論社
    内容:ベーシックだけど忘れてしまいがちな情報をコンパクトなサイズに凝縮し、「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」特徴で現場に欠かせない1冊です。
  • プログラマが知るべき97のこと
    プログラマが知るべき97のこと
    発売:2010/12/18
    定価:1,995円
    著者:和田 卓人
    出版:オライリージャパン
    内容:世界中で活躍するプログラマによる97本のエッセイを収録した書籍です。プログラミングにおいてもっとも重要な事柄は何か、バージョン管理やテスティング、設計原則とコーディングテクニック、また腕を磨くための勉強法などについて、経験豊かなプログラマが自らの体験を踏まえて解説します。
  • 明解Java 入門編
    明解Java 入門編
    発売:2007/08/08
    定価:2,730円
    著者:柴田 望洋
    出版:ソフトバンククリエイティブ
    内容:丁寧な解説と適切なサンプルプログラム248編と、豊富で分かりやすい図表278点で、Javaの基礎から学習できます。Javaプログラミング初心者におすすめの一冊です。