# Java理解度確認テスト2 試験時間 20分 --- ## クラスの基礎 以下のようなクラスが定義されている。 ~~~Java class Person { private String name;// ① // ② public Person() {} // ③ public String getName() { return name; } // ④ public void setName(String name) { this.name = name; } } ~~~ ### 設問 1−1 メンバー変数、インスタンス・メソッド、コンストラクタはそれぞれどれか? 組み合わせとして正しいものを1つ選択せよ。 --- ### 選択肢 1-1 1. メンバー変数①/インスタンス・メソッド②/コンストラクタ③,④ 2. メンバー変数①/インスタンス・メソッド③、④/コンストラクタ② 3. メンバー変数②/インスタンス・メソッド③、④/コンストラクタ① 4. メンバー変数①/インスタンスメソッド②、③、④ --- ### 設問 1-2 設問 1-1のクラスを使用する以下のコードがある。 ~~~Java class Main { public static void main(String[] args) { Person p = new Person(); [1]_____________________; // <=こにコードを埋める System.out.println(p.getName()); } } ~~~ 以上のコードを実行した場合に、文字列"John"を表示させたい場合、 [1]に挿入すべきコードを一つ選択せよ。 #### 選択肢 1-2 1. `new Person("John");` 2. `p.name = "John;` 3. `p.setName("John");` 4. `p.setNmae('John');` --- ## Staticメンバー ### 設問 1-3 以下のようなコードがある。 ~~~Java class Test { static int count = 0; public void print() { System.out.println("count = " + count); } } class Main { public static void main(String[] args) { Test a = new Test(); Test b = new Test(); a.count = 1; b.print(); } } ~~~ プログラムを実行した結果は以下のどれになるか? #### 選択肢 1-3 --- 1. コンパイルエラーが起きて、実行できない 2. 「0」が表示される 3. 「1」が表示される 4. 実行時にエラーが発生する --- ## メソッドのオーバーロード ### 設問 1-4 以下のようなコードがある。 ~~~Java class Test { void print() {} void print(int i) {} void print(String s) {} } ~~~ 上記のクラスにメソッドprint()のオーバーロード・メソッドを追加したい。 次のうち、メソッドのオーバーロードとして正しい記述はどれか? #### 選択肢 1-4 --- 1. void print2() {} 2. float print(float f) {} 3. String print() {} 4. void print(int i, int j) {} --- ## コンストラクタ ### 設問 1-5 以下のクラスが定義されている ~~~Java class Test { public Test() {} // ① public Test(String s) {} // ② // ③ public void print() {} // ④ public void print(String s) {} } ~~~ 以下のうちコンストラクタを示している組み合わせを選択せよ。 #### 選択肢 1-5 --- 1. ① 2. ② 3. ①及び② 4. ③及び④ --- ### 設問 1-6 以下のようなクラスが定義されている。 ~~~Java class Test { private String name = "test"; public Test(String name) { this.name = name; } public void print() { System.out.println("name = " + name); } } ~~~ 以下のコードを実行した場合の結果として正しいものを選択せよ。 ~~~Java class Main { public static void main(String args[]) { Test a = new Test(); a.print(); } } ~~~ #### 選択肢 1-6 --- 1. コンパイルエラーが発生し、動作しない 2. 「name=test」が表示される 3. 何も表示されない 4. 実行時エラーが発生する --- ### 設問 1-7 以下のようなクラスが定義されている。 ~~~Java class Test { private String name = "test"; public void print() { System.out.println("this is " + name + "."); } public void setName(String name) { this.name = name; } } ~~~ 以下のコードを実行した場合の結果として正しいものを選択せよ。 ~~~Java class Main { public static void main(String[] args) { Test t = new Test(); t.print(); } } ~~~ #### 選択肢 1-7 --- 1. コンパイルエラーが発生し実行できない 2. 「this is test.」が表示される 3. 「this is .」が表示される 4. 実行時エラーが発生し、何も表示されない --- ## 抽象クラス ### 設問 1-8 抽象クラスを定義する。 ~~~Java // ① abstract class Test {} // ② class Test { public Test() {} void methodA(); } // ③ class Test { abstract Test() { System.out.println("test"); } } // ④ class Test { abstract void print(); } // ⑤ abstract class Test { abstract void print(); void methodA() {} } ~~~ 抽象クラスの定義方法として、正しい記述の組み合わせを以下から選択せよ。 #### 選択肢 1-8 --- 1. ②及び④ 2. ①及び④ 3. ②及び③ 4. ①及び⑤ --- # クラスの継承 ### 設問 1-9 以下のようなクラスSuperA, SuperBが定義されている。 ~~~Java class SuperA {} class SuperB {} ~~~ 既存のクラスから継承を使って新しいクラスSubCを定義する場合、 正しい記述を以下から一つ選択せよ。 #### 選択肢 1-9 --- 1. class SubC : SuperA 2. class SubC extends SuperA {} 3. class SubC extends SuperA, SuperB {} 4. class SubC implements SuperB {} --- ## インターフェースの基本 ### 設問 1-10 以下のようなコードがある。 ~~~Java interface MyInterface { void test1(); // ① String test2() { return "test"; } // ② String getName(); // ③ private test3(); // ④ } ~~~ 上記の①〜④のうち、interfaceのメソッド定義として誤っているものを選択せよ。 #### 選択肢 1-10 --- 1. ② 2. ①と④ 3. ①と③ 4. ②と④ ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up