|
第10回 クラスの機能(2) |
| 演習 |
| 以下のソースはDNumbersクラスを定義して、99.9を10個表示するプログラムである。 プログラムを打ち込んで、コンパイル・実行しなさい。 ソースファイル名は Ensyu1001.java とする。
<実行結果>
|
| <演習1>のプログラムで、コンストラクタのオーバーロードを行う。 引数で渡された値 v を10個作成・代入するコンストラクタ public DNumbers(double v){ ・・・・ を<演習1>の DNumbersクラスに追加して、以下のプログラムを動くようにしなさい。 青文字の箇所も追加しなさい。 ソースファイル名は Ensyu1002.java とする。
<実行例>
|
| <演習2>のDNumbersクラスに以下のコンストラクタを追加する。 引数の値 v を n 個作成・代入するコンストラクタ public DNumbers(double v, int n){ ・・・・ を /* ここに追加 */ のところに記述しなさい。 また、青文字の部分は<演習2>から追加している。 ソースファイル名は Ensyu1003.java とする。
<実行例>
|
| <演習3>までで作成した3個のコンストラクタは、他のコンストラクタを呼び出すことで記述を簡潔にできる。 下記のプログラムで /* this(???)を利用した記述に変更する */ のところを<演習3>から修正しなさい。 ソースファイル名は Ensyu1004.java とする。
<実行例>
|
| 以下のプログラムで DNumber2クラス のコンストラクタで任意の配列を設定できるようにする。 コンストラクタの引数で渡された配列から、配列の要素数を自動的に決定する。 /* (※1) */ と /* (※2) */ に適切な内容を埋めてプログラムが動くようにしなさい。 ソースファイル名は Ensyu1005.java とする。
<実行例>
|
| 以下のソースは、Sportsクラスを定義して、チームの人数と試合時間を処理するプログラムである。 メンバ変数は int person; // チームの人数(人) double time; // 試合時間(分) static int p_sum; // 全てのインスタンスのチーム合計人数 であり、 p_sum はクラス変数である。 コンストラクタは3個であり、 public Sports(int p, double t){ // 人数、時間を指定 public Sports(int p){ // 人数のみ指定 public Sports(){ // 指定なし のようにオーバーロードする。コンストラクタでは チーム人数の指定がない場合は 1人 試合時間の指定がない場合は 0.0分 をデフォルト値として設定する。 また、オブジェクト(インスタンス)を作成するごとに、チーム人数をクラス変数 p_sum に加算していくものとする。 下記の実行例は、サッカー、ラグビー、野球、テニスのオブジェクト(インスタンス)を作成し、実行した例である。 /* (※1) */ 〜 /* (※4) */ に適切な内容を埋めてプログラムが動くようにしなさい。 ソースファイル名は Ensyu1006.java とする。
<実行結果>
|
| 演習1〜演習6のプログラムソースの内容をTextファイルに記述して、Cerezo
から提出しなさい。 上記の内容をすべて1個のTextファイルにまとめ、ファイル名は [自分の学籍番号]+"_演習10.txt" (例:"5412016_演習10.txt"、"5412003_演習10.txt" など) のように保存してから提出すること。 提出物には学籍番号と氏名を必ず記載しておくこと。 <提出ファイルの作成例>
|