第7~第11回で学習した内容をメインに演習問題を解いてもらいます。
もしわからない場合には、前のページに戻り必要な情報を調べてください。調べるのも勉強の1つです。
以下の指示に従ってプログラムを作成しなさい。
なお、ファイル名は「Ex12_01.java」とし、すべて1つのファイルで作成する。
1.プログラムで使うインタフェースは上の画像の通りである。
「print()メソッド」はメンバ変数の「Size」を表示すること
「copy()メソッド」、「scan()メソッド」の処理は自由である。
2. Printerクラスを作成
Printerクラスのデータは以下の通りである。
Printインタフェースを実装
メンバ変数 : public String Size;
コンストラクタ: Sizeを引数として受け取り、Sizeを初期化
3.MultiPrinterクラスを作成
MutliPrinterクラスのデータは以下の通りとする。
Copy、Scannerインタフェースを実装
Printerクラスを継承
4.main()メソッドの処理の順番は以下の通りとする
1.MultiPrinterをインスタンス化、引数として"A4"を渡す。
2.print()メソッドを実行
3.copy()メソッドを実行
4.scan()メソッドを実行
第12回の問題はオブジェクト指向編で学習してきた内容の総まとめ問題です。
クラス、継承、インタフェースを使ったプログラムでした。
指示してあったインタフェースを元にプログラムを作成していきます。
上の画像は指示してあったインタフェースの後に記述しました。
それでは解説していきます。
Printerクラスを作成するときにインタフェースPrintを実装します。
インタフェースを実装するときには
implements インタフェース名
です。メンバ変数は「public String Size」と指示があるのでそのまま使います。
コンストラクタでは、引数Sizeを受取り、Sizeを初期化するので、
thisキーワードを使って仮引数とメンバ変数を区別して初期化します。
また、指示にあるprint()メソッドでSizeを表示する必要があります。
System.out.println(Size);
と行います。ここでは分かりやすいように「印刷します」をつけました。
インタフェースを実行した時にインタフェースに記述されているメソッドは必ず書かなければなりません。
Printerクラスを継承し、Copy,Scannerインタフェースを実装します。
Javaでは、クラスの継承は1つしかできませんが、インタフェースはいくつでも実行することができます。
継承するときの記述方法は、
class クラス名 extends クラス名
でした。copy()、scan()メソッドは共に処理の記述のルールがないので自由に記述します。
コンストラクタがPrinterで準備してあるので、MultiPrinterクラスのコンストラクタで
superキーワードを使い呼び出します。
main()メソッドでは指示通り順番に作成していきます。 まずは、MultiPrinterをインスタンス化する必要があります。
インスタンス化の方法は、
クラス名 インスタンス名 = new コンストラクタ(引数・・・);
です。
インスタンス化の時に指示でA4を引数とあるので("A4")として渡しています。
次に各メソッドを実行します。各メソッドの実行方法は、
インスタンス名.メソッド名()
でした。ここでは、インスタンス名をMPと作成していますので、 MP.print();、MP.copy()、MP.scan();と実行します。
Copyright (C) 2011 ほぷしぃ. All Rights Reserved.