次の問(1.〜3.)を解いてレポートを作成せよ。
第1章 p.6 問 1.5.2
(参考: Point.java,
ColorPoint.java)
DeepPointクラスは、このプリントで定義されたPointク ラスを継承し、新しいフィールドint depthを持っている。 printも再定義されていて、 depthが 5の DeepPointは“(((((11, 19)))))”のように括弧が 5重 になって出力される。注: テスト用のmainメソッド(DeepPointTest.java)DeepPointクラスを定義せよ。特に depthが 1 〜 10の値に制限されるように setDepth(及び getDepth)を定義せよ。depthフィールドの値は setDepthメソッドのみが変更できるようにすること。 (setDepthメソッドに 0以下または 11以上の値が引数として渡されたときは 無視するようにせよ。つまり、 DeepPointクラスの外からは、どうやってもdepthの値は 1〜10以外にはできないようにせよ。)
public class DeepPointTest {
public static void main(String args[]) {
Point p = new Point(10, 20);
p.move(1, -1);
p.print();
System.out.println();
DeepPoint dp = new DeepPoint(20, 30, 5);
dp.move(1, -1);
dp.print();
System.out.println();
dp.depth = 20; // コンパイル時にエラーになることを確認してコメントアウトしておくこと
dp.setDepth(8);
Point[] pts = new Point[2];
pts[0] = p; pts[1] = dp;
int i;
for (i=0; i<2; i++) {
pts[i].moveAndPrint(10, 10);
System.out.println();
}
}
}
その(“dp.depth=20”の行をコメントアウトしたときの)出力例:
(11, 19) (((((21, 29))))) (11, 19)(21, 29) ((((((((21, 29))))))))((((((((31, 39))))))))
第2章 p.4 問 2.1.2
円(などの図形)が(等速で)斜めに動いて 上下左右の壁にぶつかったとき、跳ね返るようなアプレットを書け。
第A章 p.9 問 A.4.4
(参考 Pphttpd.java)
アクセスしたときの(サーバ側の)時刻を表示する Webページを配信する (偽)HTTPサーバプログラムを書け。
(Servletではなく、Socketの作成を自前で行ない、 単独でサーバとして動作するプログラムを作成する。)
プログラムにはできるだけコメントもいれること。
ソースコード、実行中の画面のハードコピーを Word(もしくはOpenOffice Writer, TeXなど)文書にまとめて、A4用紙に印刷したものもレポートボックスに提出すること。
以上の注意が守られていれば、最小限の長さのものでよい。
作成した Javaのソース(.java)ファイル、HTMLファイル、 Wordファイル(ファイル名: report.doc または report.docx、Word以外のソフトで作成した場合は PDFファイルでファイル名: report.pdf)などはすべて、 アップロードページ からオンライン提出する。(report.doc, report.docx, report.pdfはどれかひとつを提出して下さい。) (授業用ページのパスワード発行は このページで 行なって下さい。)
アプレットの場合は appletviewerで実行できることを必ず確認しておくこと。
アプリケーションの場合は javaで実行できることを 確認しておくこと。
自分用のコピーを必ず保存しておくこと。
締切は、12月11日(金)18時30分