2次元の点を表す Point2D と、それを継承した3次元の点を表す Point3D を実装しよう。
- Point2D.java に、x座標とy座標を扱うクラスを実装する。
- Point3D.java に、Point2Dを継承してz座標を追加したクラスを実装する。
- LMSで配布された PointMain.java を使って動作を確認する。
PointMain.java は修正・変更しないこと。
課題2(コーディング レベル2)
2次元の点を表す Point2D と、それを継承した3次元の点を表す Point3D を実装しよう。
extends Point2DPoint3Dは、Point2Dが持つx座標とy座標の機能を受け継ぎ、z座標に関するフィールドとメソッドを追加します。
| 種類 | 宣言 | 役割 |
|---|---|---|
| フィールド | private double x | x座標を格納 |
| フィールド | private double y | y座標を格納 |
| コンストラクタ | Point2D(double x, double y) | xとyを初期化 |
| メソッド | double getX() | xの値を返す |
| メソッド | void setX(double x) | xへ値を設定 |
| メソッド | double getY() | yの値を返す |
| メソッド | void setY(double y) | yへ値を設定 |
| メソッド | double getDistance() | 原点からの距離を返す |
| メソッド | String toString() | (x, y) を返す |
| 種類 | 宣言 | 役割 |
|---|---|---|
| 継承 | extends Point2D | Point2Dを継承 |
| フィールド | private double z | z座標を格納 |
| コンストラクタ | Point3D(double x, double y, double z) | 親のx・yと自身のzを初期化 |
| メソッド | double getZ() | zの値を返す |
| メソッド | void setZ(double z) | zへ値を設定 |
| メソッド | double getDistance() | 原点からの距離を返す |
| メソッド | String toString() | (x, y, z) を返す |
private にしているPoint2D を継承している> javac -encoding utf8 Point*.java > java PointMain p2 = (2.0, 3.0) |p2| = 3.605551275463989 p3 = (2.0, 3.0, 4.0) |p3| = 5.385164807134504
public class Point2D {
private double x;
private double y;
public Point2D(double x, double y) {
// フィールドx、yを引数で初期化する
}
public double getX() {
// フィールドxの値を返す
}
public void setX(double x) {
// フィールドxへ引数xの値を設定する
}
public double getY() {
// フィールドyの値を返す
}
public void setY(double y) {
// フィールドyへ引数yの値を設定する
}
public double getDistance() {
// thisと原点との距離を返す
}
public String toString() {
// 座標の文字列表現「(x, y)」を返す
}
}
public class Point3D extends Point2D {
private double z;
public Point3D(double x, double y, double z) {
// スーパークラスのコンストラクタでx、yを初期化する
// フィールドzを引数で初期化する
}
public double getZ() {
// フィールドzの値を返す
}
public void setZ(double z) {
// フィールドzへ引数zの値を設定する
}
public double getDistance() {
// thisと原点との距離を返す
}
public String toString() {
// 座標の文字列表現「(x, y, z)」を返す
}
}
// 3つのJavaファイルを同じフォルダに置いて実行
javac -encoding utf8 Point*.java
java PointMain