Tips

Java Silver 練習問題19

Java Silver 練習問題19

Java Silverに関する問題を出題していきます!

問題1
次のプログラムをコンパイル、実行した結果として正しいものはどれか。

[java] public class Sample {
int i = 10;
public static void main(String[] args) {
System.out.println(i);
}
}
[/java]
  1. 「10」と表示
  2. 何も表示されない
  3. コンパイルエラー
  4. 実行時エラー
  5. 1~4以外
解答はここをクリック!

【解答 3:コンパイルエラー】

2行目の変数iはインスタンス変数なので、インスタンス化しないと呼び出すことはできません。

 

 

問題2

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

[java] public class Sample {
String str = new String("hello");
public static void main(String[] args) {
System.out.println(str);
}
}
[/java]
  1. 「hello」と表示
  2. 何も表示されない
  3. コンパイルエラー
  4. 実行時エラー
  5. 1~4以外
解答はここをクリック!

【解答 3:コンパイルエラー】
こちらも問題1と同様コンパイルエラーになります。
理由も同じです。
Stringオブジェクトはインスタンス化されていますが、これは関係ありません。
インスタンス化が必要なのはインスタンス変数を持っているクラスです。
「new Sample().str」とすれば呼び出すことができます。

 

 

問題3

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

[java] public class Sample {
double d1 = 3.14;
double d2;
public static void main(String[] args) {
Sample obj = new Sample();
System.out.println(obj.d1 + obj.d2);
}
}
[/java]
  1. 「3.14」と表示
  2. 「0」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 1:「3.14」と表示】
double型の変数d2に値が代入されていません。
しかしインスタンス変数はローカル変数と違い、自動で初期化されます。
doubleの場合は0.0が初期値として入ります。

 

 

問題4

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

[java] public class Sample {
static Integer i1;
Integer i2;
public static void main(String[] args) {
Sample obj = new Sample();
obj.i2 = new Integer(10);
System.out.println(i1 + obj.i2);
}
}
[/java]
  1. 「10」と表示
  2. 「0」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 5:実行時エラー】
NullPointerExceptionが発生します。
原因はInteger型のオブジェクトi1にあります。
オブジェクト参照型の値はnullで初期化されます。
したがって、null + 10 を演算しようとしているため実行時エラーとなります。

 

 

問題5

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

[java] public class Sample {
public static void main(String[] args) {
Dog pochi = new Dog("ポチ");
System.out.println(pochi.name);
}
}

class Dog {
String name;
Dog(String n) {
name = n;
}
}
[/java]

  1. 「ポチ」と表示
  2. 何も表示されない
  3. コンパイルエラー
  4. 実行時エラー
  5. 1~4以外
解答はここをクリック!

【解答 1:「ポチ」と表示】
コンストラクタの問題です。
コンストラクタに”ポチ”という文字列が渡され、インスタンス変数に代入しています。
メソッドや変数の呼び出し方に問題はありません。

 


前回の問題  次の問題

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

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search