もくじ
クラスの基礎 練習問題(前半)
今回の練習問題は第4章の初め(4-1)からメソッド(4-4)までの内容となっています。オブジェクト指向およびクラスの基礎的な問題になっています。
workフォルダ内にexamフォルダを作成し、examフォルダ内にファイルは保存してください。(階層→c:\work\exam)
【Java】クラスの基礎 練習問題
以下のプログラム内の???部分を埋めて、プログラミングを行ってください。どのようなプログラムを記述するのかは下記の表およびコメントを参考にしてください。examフォルダ内に「Test001.java」「Exam0001.java」で保存してください。
保存後、「Exam0001.java」をコンパイルおよび実行を行ってください。
クラス名 | |||
---|---|---|---|
Test001 | |||
フィールド名 | 型 | 初期値 | |
number | int | なし(宣言のみ) | |
name | String | なし(宣言のみ) | |
メソッド名 | 戻り値の型 | 引数 | 処理内容 |
method01 | void | なし | 「method01()が実行されました」を表示する |
method02 | void | なし | 「method02()が実行されました」を表示する |
method03 | void | なし | 「method03()が実行されました」を表示する |
method04 | void | なし | 「method04()が実行されました」を表示する |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//???の部分を表の指示を参考に埋めてください class Test001{ //フィールド ??? ; ??? ; //メソッドの基礎問題 void method01(){ System.out.println("method01()が実行されました"); } ??? method02(){ System.out.println("???"); } ??? ???(){ System.out.println("method03()が実行されました"); } ??? ???(){ System.out.println(???); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class Exam0001{ public static void main(String[] args){ /* 以下のプログラミングを記述します ①Test001クラスからインスタンスを生成します (インスタンス名はt) ②①で作成したインスタンスを利用して各種メソッドを呼び出します */ Test001 t = new Test001(); t.method01(); t.???(); t.???(); t.???(); } } |
実行結果
C:\work\exam>javac Exam0001.java
C:\work\exam>java Exam0001
method01()が実行されました
method02()が実行されました
method03()が実行されました
method04()が実行されました
【Java】クラスの基礎 メソッドの引数
先ほど作成した「Test001.java」「Exam0001.java」のプログラムを以下の指示のように修正してください。
上書き後、「Exam0001.java」をコンパイルおよび実行を行ってください。
Test001クラスの修正指示(メソッドの追加)
クラス名 | |||
---|---|---|---|
Test001 | |||
メソッド名 | 戻り値の型 | 引数 | 処理内容 |
param01 | void | int x | 「〇を受け取りました」を表示する |
param02 | void | double x | 「〇を受け取りました」を表示する |
param03 | void | String x | 「〇を受け取りました」を表示する |
param04 | void | int x , double y | 「〇と□を受け取りました」を表示する |
param05 | void | int x , int y | 「〇と□を掛け算すると△となります」を表示する |
param06 | void | double x , double y | 「〇と□を割り算すると△となります」を表示する |
param07 | void | int x , String y | xをnumberフィールド、yをnameフィールドに代入する |
※〇は引数x、□は引数y、△は演算結果が表示されるように記述してください
※param07()では出力は行いません
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/* メソッドの引数に関する問題です 以下のメソッドを追加してください 但し???の部分は表を参考に埋めてください */ void param01(int x){ System.out.println(x + "を受け取りました"); } void param02(???){ System.out.println(??? + "を受け取りました"); } void param03(???){ System.out.println(??? + "を受け取りました"); } void param04(???){ System.out.println(??? + "と" + ??? + "を受け取りました"); } void param05(???){ System.out.println(??? + "と" + ??? + "を掛け算すると" + (x * y) + "となります"); } void param06(???){ System.out.println(??? + "と" + ??? + "を割り算すると" + ??? + "となります"); } void param07(???){ number = x; ??? = ???; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* 以下のようにメソッドの呼び出しを追加します 但し???の部分は表を参考に埋めてください param02()の引数>1.584 param03()の引数>"プログラム" param04()の引数>5と4.1 param05()の引数>5と4 param06()の引数>5.2と4.3 param07()の引数>199と"言語" */ t.param01(3); t.???(???); t.???(???); t.???(???); t.???(???); t.???(???); t.???(???); |
実行結果(メソッド追加後)
C:\work\exam>javac Exam0001.java
C:\work\exam>java Exam0001
method01()が実行されました
method02()が実行されました
method03()が実行されました
method04()が実行されました
3を受け取りました
1.584を受け取りました
プログラムを受け取りました
5と4.1を受け取りました
5と4を掛け算すると20となります
5.2と4.3を割り算すると1.2093023255813955となります
※param07()のメソッドは実行しても出力はされません
【Java】クラスの基礎 メソッドの戻り値
先ほど作成した「Test001.java」「Exam0001.java」のプログラムを以下の指示のように修正してください。
上書き後、「Exam0001.java」をコンパイルおよび実行を行ってください。
Test001クラスの修正指示(メソッドの追加)
クラス名 | |||
---|---|---|---|
Test001 | |||
メソッド名 | 戻り値の型 | 引数 | 処理内容 |
re01 | int | なし | 100をreturnする |
re02 | double | なし | 20.5をreturnする |
re03 | String | なし | “戻り値”をreturnする |
re04 | int | なし | フィールドnumberの値をreturnする |
re05 | String | なし | フィールドnameの値をreturnする |
re06 | int | なし | 1から10までを乗算した結果をreturnする |
re07 | int[] | なし | 配列をreturnする |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
/* メソッドの戻り値に関する問題です 以下のメソッドを追加してください 但し???の部分は表を参考に埋めてください */ int re01(){ return 100; } ??? ???(){ return ???; } ??? ???(){ return ???; } ??? ???(){ return ???; } ??? ???(){ return ???; } ??? ???(){ int result = 1; for(int i = 1; i <= 10; i++){ ??? *= i; } return ???; } ??? ???(){ int[] array = {8,3,7,1,4,11}; return ???; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/* メソッドの呼び出しを追加します 但し???の部分は表を参考に埋めてください */ System.out.println(t.re01()); System.out.println(t.???()); System.out.println(t.???()); System.out.println(t.???()); System.out.println(t.???()); System.out.println(t.???()); int[] re_array = t.???(); System.out.println(re_array[???] + "," + re_array[???]); |
C:\work\exam>javac Exam0001.java
C:\work\exam>java Exam0001
method01()が実行されました
method02()が実行されました
method03()が実行されました
method04()が実行されました
3を受け取りました
1.584を受け取りました
プログラムを受け取りました
5と4.1を受け取りました
5と4を掛け算すると20となります
5.2と4.3を割り算すると1.2093023255813955となります
100
20.5
戻り値
199
言語
3628800
7,4
【Java】クラスの基礎 メソッドまとめ
先ほど作成した「Test001.java」「Exam0001.java」のプログラムを以下の指示のように修正してください。
上書き後、「Exam0001.java」をコンパイルおよび実行を行ってください。
Test001クラスの修正指示(メソッドの追加)
クラス名 | |||
---|---|---|---|
Test001 | |||
メソッド名 | 戻り値の型 | 引数 | 処理内容 |
divi | double | double x , double y | xとyを除算し、returnする |
check | boolean | String x , String y | xとyの文字列を比較し、booleanをreturnする |
sum | int | int[] array | 引数で受け取った配列内の値を全て加算した結果をreturnする |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* メソッドの引数に関する問題です 以下のメソッドを追加してください 但し???の部分は表を参考に埋めてください */ ??? divi(???){ return x / y; } ??? check(???){ return x.equals(y); } ??? sum(???){ int result = 0; //引数で受け取った配列内のデータをループ処理を行い加算してください return ???; } |
1 2 3 4 5 6 7 8 9 |
/* 以下のプログラムを追加してください */ //divi()の引数>10.84と5.2 System.out.println(???); //check()の引数>"Java"と"java" System.out.println(???); //int[]型の配列を作成し、5,2,3,8,1,9,3,3,5のデータを保存してください ???; //sum()の引数は作成した配列とします System.out.println(???); |
C:\work\exam>javac Exam0001.java
C:\work\exam>java Exam0001
method01()が実行されました
method02()が実行されました
method03()が実行されました
method04()が実行されました
3を受け取りました
1.584を受け取りました
プログラムを受け取りました
5と4.1を受け取りました
5と4を掛け算すると20となります
5.2と4.3を割り算すると1.2093023255813955となります
100
20.5
戻り値
199
言語
3628800
7,4
2.0846153846153843
false
39