Tips

Java Gold SE7対策問題 – 問6
2015.10.31

Java Gold SE7対策問題 – 問6

Javaの認定資格「Oracle Certified Java Programmer, Gold SE 7」。通称JavaGoldのオリジナル問題を紹介していきたいと思います。

前回の解答

まずは、前回の解答から。

正解は「(3)」となります。

アクセス修飾子は公開範囲の広い順に「public→protected→デフォルト(指定なし)→private」となります。
publicとprivateは簡単に覚える事ができると思いますが、問題はprotectedとデフォルト(指定なし)です。
この順番と以下のキーワードを抑えておくと簡単に思い出すことができます。

  • 同一パッケージ内のクラスから利用可能
  • 継承したサブクラスから利用可能

protectedの方がアクセス範囲が広いわけですから、protectedは上記の2つを兼ね備えたアクセス修飾子になります。
逆に、デフォルト(指定なし)はアクセス範囲が狭いわけですので、上記の1つ目である同一パッケージからのみアクセス可能となります。

また合わせて、「アクセス修飾子にはデフォルト(指定しない)」というものも存在することを頭の片隅に入れておきましょう。
アクセス修飾子をつけることができるのは以下の4つです。

  • クラス
  • コンストラクタ
  • メンバ変数
  • メソッド

これらの前にアクセス修飾子がないときは「要注意」です。

では、もう1つアクセス修飾子に関わる問題をいきましょう。


問6

以下のプログラムの実行結果として正しいものを選んでください。
package techpjin;

public class Lesson6 {

	public static void main(String[] args) {
		SubClass1 s1 = new SubClass1();
		s1.method();

		SubClass2 s2 = new SubClass2();
		s2.method();
	}

}

class SuperClass{
	void method() {
		System.out.print("super class called. ");
	}
}

class SubClass1 extends SuperClass{
	void method() {
		System.out.print("sub class1 called. ");
	}
}

class SubClass2 extends SuperClass{
	public void method() {
		System.out.print("sub class2 called. ");
	}
}
  1. sub class1 called. sub class2 called.
  2. sub class1 called.
  3. sub class2 called.
  4. 何も出力されない
  5. コンパイルエラーが発生する
  6. 実行時エラーが発生する

解答・解説・問7はこちら

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search