Java-无法解析构造函数
我是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
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约定