Java コンストラクタとオーバーロードに関する練習問題を選択式で作成しました。
問題数はこれからどんどん増やす予定です。
選択肢をクリックすると下のほうに、正解/不正解と簡単な解説が表示されます。
主な項目
このページの練習問題で出題するおもな項目は以下の通りです。
- インスタンス
- コンストラクタ
- オーバーロード
コンストラクタとオーバーロードに関する選択問題
- 問題文1
- 解答1
- 解答2
- 解答3
- 解答4
- 解答5
- 解答6
- 解答7
- 解答8
- 解答9
- 解答10
次の問題へ
答えおよび解説1
問題
- インスタンスに関する説明として正しい説明を選んでください
- コンストラクタに関する説明として正しい説明を選んでください
- コンストラクタに関する説明として正しい説明を選んでください
- ABCのコンストラクタを定義する際の正しい記述を選んでください
- オーバーロードに関する説明として正しい説明を選んでください
- void method()のメソッドが定義されている場合、オーバーロードとなるメソッド定義を選んでください
選択肢
- 同一インスタンスかどうかを比較する場合は比較演算子「==」を利用する
インスタンス変数名が異なれば、必ず別のインスタンスとなる
A a = new A();
A b = a;
上記記述ではbにはインスタンスaの複製が代入される
インスタンス変数は宣言時、フィールドもしくはローカル変数に関係なく、自動的にnullが代入される - コンストラクタ定義時はクラス名以外の名称を指定できる
コンストラクタ定義時は必ず引数を一つ以上指定する必要がある
コンストラクタを定義する際は戻り値を指定できる
コンストラクタを定義しなかった場合、デフォルトコンストラクタが自動的に生成される - コンストラクタはオーバーロード可能である
クラス定義時は必ずコンストラクタを定義する必要がある
コンストラクタはインスタンス生成後、いつでも呼び出して実行できる
コンストラクタにはアクセス修飾子を付加できない - void ABC(){}
abc(){}
ABC(){}
void abc(){} - オーバーロードは戻り値の型を変更することで同一名のメソッドを定義することができることを指す
「void method(int a, int b)」と「void method(int c, int d)」が定義されている場合、オーバーロードとして定義できる
「void method(int a, int b)」と「void method(int b, int a)」が定義されている場合、オーバーロードとして定義できる
オーバーロードとしてメソッドを定義する場合は、引数の型、数、型の並び、のいずれかが異なる必要がある - int method()
double method()
void method(String str)
void method()
解答
- インスタンスから別インスタンスへ代入した場合は、同じインスタンスを参照することになります。また、基本データ型同様、ローカル変数の場合、宣言のみでは自動的に初期値は設定されません。
- コンストラクタはクラス名と同一の名称を利用し、メソッドと異なり戻り値は利用できません。また、コンストラクタを作成しなかった場合、デフォルトコンストラクタが自動生成されます。
- コンストラクタはインスタンス生成時にのみ実行されます。オーバーロードは可能です。また、アクセス修飾子も付加できます。
- コンストラクタはクラス名と同一名となります。また、戻り値はvoidも含め指定することができません。
- オーバーロードは引数の型、数、型の並び、のいずれかが異なる必要があり、変数名が異なっていても型や並びが同一であればオーバーロードと見なされません。
- オーバーロードは引数が異なる必要がある為、戻り値が異なっていても引数が同じであればオーバーロードにはなりません。
答え
- 1
- 4
- 1
- 3
- 4
- 3