我想弄清楚为什么这个程序告诉我构造函数未定义为Polygon。
这是我得到的例外:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The constructor Polygon(int[], int[], int) is undefined
at test.main(test.java:9)
类
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.geom.*;
public class Polygon extends Applet {
private int[] xpoints = { 0,-10, -7, 7, 10 };
private int[] ypoints = {-10, -2, 10, 10, -2 };
private Polygon poly;
public void init(){
poly = new Polygon(xpoints, ypoints, xpoints.length);
}
}
答案 0 :(得分:0)
请定义构造函数
Polygon(int[] xp,int[] yp,int xLength){
xpoints=xp;
ypoints=yp;
}
您的代码中出现了一些问题 -
您已经在初始化您的成员元素,但仍尝试使用构造函数再次设置它们。
要调用init,您必须创建一个对象,然后使用init创建另一个对象。
像这样编码。
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.geom.*;
public class Polygon extends Applet {
private int[] xpoints;
private int[] ypoints;
private Polygon poly;
Polygon(int[] xp,int[] yp){
xpoints=xp;
ypoints=yp;
}
static public void init(int[] xpoints,int[] ypoints){
poly = new Polygon(xpoints, ypoints);
}
}
答案 1 :(得分:0)
它表示你的Polygon类必须有一个适合
的构造函数new Polygon(xpoints, ypoints, xpoints.length);
请参阅http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
答案 2 :(得分:0)
你需要像这样创建一个构造函数:
public Polygon(int[] a, int[] b, int c){
//construct a new Polygon object with the parameters
}
现在你拥有它的方式只有Object
Polygon()
的默认构造函数。
答案 3 :(得分:0)
我认为问题是你的applet类已经隐藏了你想要使用的java.awt.Polygon
类。
解决的一种可能方法是更改applet类的名称:
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.geom.*;
public class PolygonApplet extends Applet {
private int[] xpoints = { 0,-10, -7, 7, 10 };
private int[] ypoints = {-10, -2, 10, 10, -2 };
private Polygon poly;
public void init(){
poly = new Polygon(xpoints, ypoints, xpoints.length);
}
}