构造函数Polygon(int [],int [],int)未定义

时间:2014-02-06 02:44:58

标签: java constructor polygon

我想弄清楚为什么这个程序告诉我构造函数未定义为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);

}
}

4 个答案:

答案 0 :(得分:0)

请定义构造函数

Polygon(int[] xp,int[] yp,int xLength){
     xpoints=xp;
     ypoints=yp;
}

您的代码中出现了一些问题 -

  1. 您已经在初始化您的成员元素,但仍尝试使用构造函数再次设置它们。

  2. 要调用init,您必须创建一个对象,然后使用init创建另一个对象。

  3. 像这样编码。

    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);
    }
}