# Java中关于子类继承的一个实例问题（关于两点确定一条直线），感谢好心人士帮忙回答

1)定义两个Point对象p1，p2；
2)写出有参构造方法，传递两个对象值给p1，p2
3）为p1，p2写出setters，和getters方法
4）为Line写出一个getLength方法求直线中两点的长度
5) 为Line写一个ToString方法，方法如下所示：
public String toString() { return "Line [p1=" + p1 + ", p2=" + p2 + "]"; }

Point 类如下所示：
public class Point {
private int x, y;// x,y为点的坐标
//求两点之间的距离
public double distance(Point p1) {
return Math.sqrt((p1.x -this.x)(p1.x -this.x)+(p1.y-this.y)(p1.y-this.y));
}
public Point(int x, int y) {
super();
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Point() {
super();
x = y =0;
}
@Override
public String toString() {
return "Point [x=" + x + ", y=" + y + "]";
}
}

2
0 0 2 3
1 3 2 5

Line [p1=Point [x=0, y=0], p2=Point [x=2, y=3]]

Line [p1=Point [x=1, y=3], p2=Point [x=2, y=5]]

• 写回答

#### 1条回答默认 最新

• qq_51536474 2021-01-04 19:15
关注
``````import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner iScanner=new Scanner(System.in);

line line1=new line();
int b=iScanner.nextInt();
double[] a=new double[b];
int z[][]=new int[b][4];
for (int i = 0; i < z.length; i++) {
for (int j = 0; j < z[i].length; j++) {
int c=iScanner.nextInt();
z[i][j]=c;
}

}
for (int i = 0; i < z.length; i++) {
line1.p1=new Point(z[i][0],z[i][1]);
line1.p2=new Point(z[i][2],z[i][3]);
a[i]=line1.getLength(line1.p1,line1.p2 );
System.out.println(line1.toString());
System.out.printf("此线段的长度为：%.1f",a[i]);
System.out.println();
}

}
}
class Point {

int x;// x,y为点的坐标
int y;
//求两点之间的距离
Point p1,p2;
public double distance(Point p1) {
return Math.sqrt((p1.x -this.x)*(p1.x -this.x)+(p1.y-this.y)*(p1.y-this.y));
}
public Point(int x, int y) {
super();
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
@Override
public String toString() {
return "Point [x=" + x + ", y=" + y + "]";
}
public void setY(int y) {
this.y = y;
}
public Point() {
super();
x = y =0;
}

}
class line extends Point{

public double getLength(Point p1,Point p2)
{
return Math.sqrt((p1.x -p2.x)*(p1.x -p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}

public String toString() {

return "Line [p1=" + p1 + ", p2=" + p2 + "]";
}

}
``````

PTA以通过，欢迎关注我嗷~

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

• 已采纳回答 1月12日

#### 悬赏问题

• ¥15 Jenkins+k8s部署slave节点offline
• ¥15 微信小游戏反编译后，出现找不到分包的情况
• ¥15 如何实现从tello无人机上获取实时传输的视频流，然后将获取的视频通过yolov5进行检测
• ¥15 WPF使用Canvas绘制矢量图问题
• ¥15 用三极管设计一个单管共射放大电路
• ¥15 孟德尔随机化r语言运行问题
• ¥15 pyinstaller编译的时候出现No module named 'imp'
• ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
• ¥15 怎么把多于硬盘空间放到根目录下
• ¥15 Matlab问题解答有两个问题