Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我是否使用java.awt.geom.Point2D中的距离方法?_Java - Fatal编程技术网

为什么可以';我是否使用java.awt.geom.Point2D中的距离方法?

为什么可以';我是否使用java.awt.geom.Point2D中的距离方法?,java,Java,我无法从Point2D使用距离()。请帮我修改代码,谢谢 import java.util.Scanner; 导入java.awt.geom.Point2D.Double; 公共类TestPoint2D{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); 系统输出打印(“输入点1”); double x1=input.nextDouble(); double y1=input.nextDouble(); 系统输出打印(“输入点2”); double

我无法从Point2D使用距离()。请帮我修改代码,谢谢

import java.util.Scanner;
导入java.awt.geom.Point2D.Double;
公共类TestPoint2D{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
系统输出打印(“输入点1”);
double x1=input.nextDouble();
double y1=input.nextDouble();
系统输出打印(“输入点2”);
double x2=input.nextDouble();
double y2=input.nextDouble();
点2D p1=新点2D(x1,y1);
点2dp2=新点2d(x2,y2);
系统输出打印ln(p1.距离(p2));
}
}
比如说:

此类只是存储二维坐标的所有对象的抽象超类。坐标的实际存储表示形式留给子类

因此,您需要使用或初始化对象

因此,初始化
Point2D
的代码可以工作:

point2dp1=新的Point2D.Double(x1,y1);
点2dp2=新点2d.Double(x2,y2);
这个“问题”是因为
Point2D
是一个abtract类。如果您有疑问,可以检查工作原理。但是,要将其与“Point2D问题”联系起来,请检查第一段,这样您会更好地理解

抽象类:是一个受限制的类,不能用于创建对象(要访问它,必须从另一个类继承)


这正是问题(无法创建对象)和解决方案(从另一个类继承)

您所说的“我不能使用distance()”是什么意思。当您尝试这样做时会发生什么?它说,“Point2D类型的方法距离(Point2D)是未定义的。”声明:该类只是存储2D坐标的所有对象的抽象超类。您应该使用的实现。那么,您的意思是公共双距离(Point2D pt)是一种抽象方法,即使它的签名中不包含“abstract”关键字?抱歉问了个愚蠢的问题,我是个新手
Point2D
是一个抽象类。因此,您不能实例化它。您需要使用这个抽象类的实现,
Point
,您可以实例化它。之后,您可以像以前一样使用距离(…)。因为此方法是在
Point2D
中定义的,
Point
是一个子类,因此继承它。进一步阅读:。