Javaプログラミング初心者のためのページ -4ページ目

コンストラクタ:問題2

問題:以下のプログラムのコンパイル・実行結果として適切なものを選択しなさい。
A. コンストラクタ定義内で引数iに代入をしていないためコンパイルエラー。
B. 引数のないコンストラクタを定義していないためコンパイルエラー。
C. 正常に実行され、0と表示される
D. 正常に実行され、Aと表示される

class M {
    public static void main(String[] args) {
        A a = new A(0);
    }
}

class A{
    A(int i){
        System.out.println(i);
    }
}

















解答:
C. 正常に実行され、0と表示される

コンストラクタ:問題1

問題:以下のプログラムのコンパイル・実行結果として適切なものを選択しなさい。

A. メソッドA()の戻り値の型がvoidなので、コンパイルエラー
B. メソッドA()の戻り値の型がvoidなので、実行時に例外発生
C. 正常に実行され、Aと表示される
D. 正常に実行され、何も表示されない


public class M {
    public static void main(String[] args) {
        A a = new A();
    }

}

class A{
    void A(){
        System.out.println("A");
    }
}































解答:
D. 正常に実行され、何も表示されない

解説:
コンストラクタは、戻り値の型を指定しないため、
「void A()」はコンストラクタではなく、
単なるAという名前のメソッドを定義しています。
したがって、「new A()」としても何も表示されません。

基本データ型:char:問題6

問題:以下のプログラムの実行結果として適切なものを選択しなさい。

A. char型とString型は足し算できないため、コンパイルエラーになる
B. char型とString型は足し算できないため、実行時に例外が発生する
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
D. aとbが連結され、abが表示される

public class M {
    public static void main(String[] args) {
        char x = 'a';
        String y = "b";
        System.out.println(x + y);
    }
}





















解答:
D. aとbが連結され、abが表示される
解説:
System.out.println()の引数はx+yです。
String型を含む足し算は、文字列の連結を行います。