Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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-无法解析构造函数_Java - Fatal编程技术网

Java-无法解析构造函数

Java-无法解析构造函数,java,Java,我是Java编程新手。我有三个类,分别是Main、Point和Rectangle。我可以使用Rectangle类中的所有构造函数,除了这个:Rectangle(点p,intw,inth)。Java编译器给出:“无法解析构造函数的矩形(Java.awt.Point,int,int)”错误。谢谢 以下是我的课程: Main.java import java.awt.*; import java.awt.Point; import java.awt.Rectangle; public class M

我是Java编程新手。我有三个类,分别是
Main
Point
Rectangle
。我可以使用
Rectangle
类中的所有构造函数,除了这个:
Rectangle(点p,intw,inth)
。Java编译器给出:“无法解析构造函数的矩形(Java.awt.Point,int,int)”错误。谢谢

以下是我的课程:

Main.java

import java.awt.*;
import java.awt.Point;
import java.awt.Rectangle;

public class Main {

    public static void main(String[] args) {
        Point originOne = new Point(5,10);   
        Rectangle rectOne = new Rectangle(originOne, 100, 200);
    }

}
Point.java

public class Point {
    public int x = 0;
    public int y = 0;
    //contructor
    public Point(int a, int b){
        x = a;
        y = b;
    }
}
Rectangle.java

public class Rectangle {
    public Point origin;
    public int width = 0;
    public int height = 0;

    //four contructors
    public Rectangle() {
        origin = new Point(0, 0);
    }
    public Rectangle(Point p){
        origin = p;
    }
    public Rectangle(int w, int h){
        origin = new Point(0,0);
        width = w;
        height = h;
    }
    public Rectangle(Point p, int w, int h) {
        origin = p;
        width = w;
        height = h;
    }

    // a method for moving the rectangle
    public void move(int x, int y) {
        origin.x = x;
        origin.y = y;
    }

    //a method for computing the area of rectangle
    public int getArea() {
        return width * height;
    }
}

你的答案相当简单。您导入了错误的导入,而不是导入
java.awt.Rectangle
,而是导入您自己的类

通过这样做:

import <nameOfTheProject>.Rectangle;
这显然取决于您的文件结构,但如果它位于子文件夹(子包)中,我希望:

import MyShapes.ShapesClasses.Rectangle;

如果您计划使用自己的Point类而不是Java.awt的Point类,这也适用于Point类

你的答案相当简单。您导入了错误的导入,而不是导入
java.awt.Rectangle
,而是导入您自己的类

通过这样做:

import <nameOfTheProject>.Rectangle;
这显然取决于您的文件结构,但如果它位于子文件夹(子包)中,我希望:

import MyShapes.ShapesClasses.Rectangle;

如果您计划使用自己的Point类而不是Java.awt的Point类,这也适用于Point类

您导入了
java.awt.Point
,它是JavaAWT工具包的现有类。如果要使用它,您需要导入自己的
Point
类(无论其完整的包名是什么)。您导入了
java.awt.Point
,它是java awt工具包的现有类。你需要导入你自己的
类(不管它的完整包名是什么)来使用它。请注意,a)包名不一定与Eclipse项目名匹配(事实上,按照惯例它们不匹配),b)它们应该都是小写的。哈哈,是的!没错,我忘了提到我个人在Eclipse的/src文件夹中创建了一个包,我将所有代码放在其中,这样我就可以区分自定义导入和Java导入。这没什么错,但是使用了“com…”前缀将与通常的Java约定更加一致,注意a)包名称不一定与Eclipse项目名称匹配(事实上,按照约定它们不匹配),b)它们应该都是小写的。哈哈,是的!没错,我忘了提到我个人在Eclipse的/src文件夹中创建了一个包,我将所有代码放在其中,这样我就可以区分自定义导入和Java导入。这没什么错,但使用“com..”前缀会更符合通常的Java约定