日期:2014-05-20  浏览次数:20798 次

如何定义类
已知类point表示平面上的“点”。请以此类为父类定义一个名为“Line”的子类,他表示一条有两个端点的直线。只主要成员包括:

数据成员:两个端点的坐标(x ,y)直线的宽度w。

方法成员:move()移动直线,参数:两个端点的坐标:print()现实数据成员。


------解决方案--------------------
import java.Math.*;

public class Line extends Point{
Point point1;
Point point2;
int w;
 
public void move(){
w=Math.sqrt((point1.x-point2.x)^2+(point1.y-point2.y)^2)

}




}
------解决方案--------------------
3楼的代码能运行?自身包含自身,很明显的死循环。

这个题有两种设计思路(本人推荐第二种):

1. Line继承自Point:

2. Line组合Point:

------解决方案--------------------
3楼的代码能运行?自身包含自身,很明显的死循环。

这个题有两种设计思路(本人推荐第二种):

1. Line继承自Point:
Java code

//Point.java
public class Point {
  int x, y;
  public Point(int x, int y) {
    this.x = x;
    this.y = y;
  }
}

//Line.java
public class Line extends Point {
  int x1, y1, w;
  public Line(int startX, int startY, int endX, int endY, int width) {
    super(startX, startY);
    x1 = endX;
    y1 = endY;
    w = width;
  }
  public void move(int newStartX, int newStartY, int newEndX, int newEndY) {
    x = newStartX;
    y = newStartY;
    x1 = newEndX;
    y1 = newEndY;
  }
  public void print() {
    System.out.println("Line: x=" + x + "; y=" + y + "; x1="+ x1 +"; y1=" + y1 + "; w=" + w);
  }
}