[英]Why can't I use distance method from java.awt.geom.Point2D?
我不能從 Point2D 使用distance()
。 請幫我修復我的代碼,謝謝!
import java.util.Scanner;
import java.awt.geom.Point2D.Double;
public class TestPoint2D {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter point 1");
double x1 = input.nextDouble();
double y1 = input.nextDouble();
System.out.print("Enter point 2");
double x2 = input.nextDouble();
double y2 = input.nextDouble();
Point2D p1 = new Point2D(x1, y1);
Point2D p2 = new Point2D(x2, y2);
System.out.println(p1.distance(p2));
}
}
正如Point2D 文檔所說:
這個類只是存儲二維坐標的所有對象的抽象超類。 坐標的實際存儲表示留給子類。
所以需要使用Point2D.Double或Point2D.Float來初始化對象。
所以這個初始化Point2D
代碼有效:
Point2D p1 = new Point2D.Double(x1, y1);
Point2D p2 = new Point2D.Double(x2, y2);
這個“問題”是因為Point2D
是一個抽象類。 如果您有疑問,可以在此處查看工作原理。 但是,要將其與“Point2D 問題”聯系起來,請檢查第一段,您會更好地理解。
抽象類:是一個受限制的類,不能用於創建對象(要訪問它,它必須從另一個類繼承)。
這正是問題(無法創建對象)和解決方案(從另一個類繼承)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.