为什么可以';我是否使用java.awt.geom.Point2D中的距离方法?
我无法从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
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
是一个子类,因此继承它。进一步阅读:。