練習問題 解答
5.5 練習問題 解答
問1
① ○:メソッドの他にコンストラクタも定義できます。
② ×:コンストラクタもオーバーロードできます。
③ ×:オーバーロードの制約は、引数の型・個数・並びが違っていなければならない。
④ ○
⑤ ×:記述位置は必ず処理の先頭でなければならない。
問2
Books1.java
1 | package jp.co.f1.basic.ch05exercise; |
15 | Books1(String title, int price) { |
問3
③ 2つのコンストラクタが呼び出し合い、無限ループになっているから。
問4
Calc1.java
1 | package jp.co.f1.basic.ch05exercise; |
5 | public int addtion( int num1, int num2) { |
10 | public double addtion( double num1, double num2) { |
問5
① Calc2
② int
③ addtion(num1,num2)
④ double
⑤ addtion(num3,num4)
Practice0501.java
1 | package jp.co.f1.basic.ch05exercise; |
5 | public int addtion( int num1, int num2) { |
10 | public double addtion( double num1, double num2) { |
15 | public class Practice0501 { |
16 | public static void main(String[] args) { |
18 | Calc2 calc = new Calc2(); |
22 | System.out.println(num1 + " + " + num2 + " = " |
23 | + calc.addtion(num1, num2)); |
27 | System.out.println(num3 + " + " + num4 + " = " |
28 | + calc.addtion(num3, num4)); |
解説
Calc2クラスをオブジェクト化します。
生成したCalc2オブジェクト内のオーバーロードで定義しているメソッドaddtion()メソッドに、引数int型のnum1とnum2を与えて呼び出しています。int型2つの引数の足し算結果を画面に出力しています。
続いても生成したCalc2オブジェクト内のオーバーロードで定義しているaddtion()メソッドに引数double型のnum3とnum4を与えて呼び出しています。double型2つの引数の足し算結果を画面に出力しています。
③と⑤はオーバーロード機能により同じメソッド名でも、引数情報が「int型2つ」と「double型2つ」と違っています。その結果、引数情報に応じた整数型と浮動小数点型の足し算が正しく行われます。
NEXT>> 6 クラスメンバとインスタンスメンバ