当前位置: 首页 > 知识库问答 >
问题:

Java问题“无法实例化Point2D类型”

龙学
2023-03-14

我试图在java中使用Point2D类,我简单地不能创建一个对象。

导入java。awt。geom。点2D;导入java。util。扫描仪;

public class TestPoint2D {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("Enter point1's x-, y-coordinates: ");
        double x1 = input.nextDouble();
        double y1 = input.nextDouble();
        System.out.println("Enter point2's x-, y-coordinates: ");
        double x2 = input.nextDouble();
        double y2 = input.nextDouble();

        Point2D p1 = new Point2D(x1,y1);
        System.out.println("p1 is ")+ p1.toString();
        
    }

}

共有3个答案

罗乐意
2023-03-14

Point2D类定义了一个点,表示(x,y)坐标空间中的位置。

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

这些是Point2D的已知子类:Point, Point2D. Double, Point2D. Float

https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Point2D.html

        Point2D p1 = new Point2D().Double(x1,y1);
        System.out.println("p1 is ")+ p1.toString();
步浩壤
2023-03-14

Point2D是java包中的一个抽象类。awt。geom。点2D。对于抽象类,不能形成对象[为什么?]您必须检查您的导入语句,确保它不是从上述包导入类,而是尝试创建您定义的类的对象。

除此之外,println语句中还有编译错误,因为它缺少一个)括号。此代码未显示任何编译错误。

import java.util.Scanner;
// import java.awt.geom.Point2d // comment this out if it is present in import. 
public class Main {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("Enter point1's x-, y-coordinates: ");
        double x1 = input.nextDouble();
        double y1 = input.nextDouble();
        System.out.println("Enter point2's x-, y-coordinates: ");
        double x2 = input.nextDouble();
        double y2 = input.nextDouble();

        Point2D p1 = new Point2D(x1,y1);
        System.out.println("p1 is "+ p1.toString()); // compilator error : missing ) ; 
        
    }
}
class Point2D
{
    double x, y;

    public Point2D(double x, double y) {
        super();
        this.x = x;
        this.y = y;
    } 
    
}
柴瀚昂
2023-03-14

这不是实例化Point2D实例的方式。我相信你想要的Point2D. Double(双,双)构造函数。此外,您的print中有一个错别字。它应该是类似于

Point2D p1 = new Point2D.Double(x1, y1);
System.out.println("p1 is " + p1);
 类似资料:
  • 我试图将图像添加到数组中,但它给出了错误不能实例化类型Image j 原因会是什么?

  • 问题内容: 当我尝试运行此代码时: 我收到此错误: 我不明白为什么我无法实例化课程…在我看来似乎是对的… 问题答案: 是一个接口,因此您无法直接实例化它。您可以实例化一个具体的子类,例如:

  • 下面是我收到错误的代码(在“new”之后的第二个“Killer”处)。 这给我带来了不少麻烦,因为我看不出为什么基于Killer的构造函数,这个声明应该有效。 这是杀手班: 我知道这可能有一个简单的解决方案,但到目前为止,我还没有看到。

  • 当我试图运行我的脚本时,我收到以下错误

  • 这是我的黄瓜基类。 在运行这个基类之后,我看到下面的异常。

  • 问题内容: 我试图创建一个字符串集,其中填充了哈希表中的键,以便for- each循环可以遍历该Set并将默认值放入哈希表中。我仍在学习Java,但是我尝试做的方式不是有效的语法。有人可以演示这样做的正确方法,并解释为什么我的方法行不通,而他们的方法行得通。 问题答案: 不是类,而是接口。 因此,基本上可以仅实例类实现(,或) 例如 :