Java言語入門 〜C言語を学んだ君へ〜
第1問解答
第1問解説
第12回の問題はオブジェクト指向編で学習してきた内容の総まとめ問題です。
クラス、継承、インタフェースを使ったプログラムでした。
指示してあったインタフェースを元にプログラムを作成していきます。
上の画像は指示してあったインタフェースの後に記述しました。
それでは解説していきます。
Printerクラスの作成
Printerクラスを作成するときにインタフェースPrintを実装します。
インタフェースを実装するときには
implements インタフェース名
です。メンバ変数は「public String Size」と指示があるのでそのまま使います。
コンストラクタでは、引数Sizeを受取り、Sizeを初期化するので、
thisキーワードを使って仮引数とメンバ変数を区別して初期化します。
また、指示にあるprint()メソッドでSizeを表示する必要があります。
System.out.println(Size);
と行います。ここでは分かりやすいように「印刷します」をつけました。
インタフェースを実行した時にインタフェースに記述されているメソッドは必ず書かなければなりません。
MultiPrinterクラスの作成
Printerクラスを継承し、Copy,Scannerインタフェースを実装します。
Javaでは、クラスの継承は1つしかできませんが、インタフェースはいくつでも実行することができます。
継承するときの記述方法は、
class クラス名 extends クラス名
でした。copy()、scan()メソッドは共に処理の記述のルールがないので自由に記述します。
コンストラクタがPrinterで準備してあるので、MultiPrinterクラスのコンストラクタで
superキーワードを使い呼び出します。
main()メソッド
main()メソッドでは指示通り順番に作成していきます。
まずは、MultiPrinterをインスタンス化する必要があります。
インスタンス化の方法は、
クラス名 インスタンス名 = new コンストラクタ(引数・・・);
です。
インスタンス化の時に指示でA4を引数とあるので("A4")として渡しています。
次に各メソッドを実行します。各メソッドの実行方法は、
インスタンス名.メソッド名()
でした。ここでは、インスタンス名をMPと作成していますので、
MP.print();、MP.copy()、MP.scan();と実行します。